Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在openGL中:如何在平面上移动对象(立方体)并保持曲面静止? #包括 #包括 GLfloat顶点[][3]={ {0.0,0.0,0.0},{0.0,0.4,0.0},{0.4,0.4,0.0},{0.4,0.0,0.0} }; GLfloat color[2][3]={{1.0,0.0,0.0},{0.0,1.0,0.0}; 无效董事会() { GL3F(0.0,0.0,1.0); glBegin(GL_线_环); glVertex3f(-0.8,-0.8,0.0); glVertex3f(-0.8,0.80,0.0); glVertex3f(0.80,0.80,0.0); glVertex3f(0.8,-0.80,0.0); 格伦德(); } void立方体() { glBegin(GL_线_环); GL3F(1.0,0.0,0.0); glVertex3fv(顶点[0]); glVertex3fv(顶点[1]); glVertex3fv(顶点[2]); glVertex3fv(顶点[3]); 格伦德(); } 无效显示() { glClearColor(1.0,1.0,1.0,1.0); 政府统计处(0,0600600),; glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位); 立方体(); 董事会(); glFlush(); } void mykey(int key,int x,int y) { 开关(钥匙){ 案例过量键左:GLTRANSTEF(-0.4,0.0,0.0);中断; 案例过量键右:GLTRANSTEF(0.4,0.0,0.0);中断; 案例过量键:GLTRANSTEF(0.0,0.4,0.0);中断; 案例过量键向下:GLTRANSTEF(0.0,-0.3,0.0);中断; } 再发现(); } void myinit() { glMatrixMode(GL_投影); glLoadIdentity(); 格洛托(02000400,-1,1); glMatrixMode(GLU模型视图); } int main(int argc,字符**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_单个| GLUT_RGB | GLUT_深度); glutInitWindowSize(600600); “你好”; glutDisplayFunc(显示器); glutSpecialFunc(mykey); glutMainLoop(); 返回0; }_Opengl - Fatal编程技术网

在openGL中:如何在平面上移动对象(立方体)并保持曲面静止? #包括 #包括 GLfloat顶点[][3]={ {0.0,0.0,0.0},{0.0,0.4,0.0},{0.4,0.4,0.0},{0.4,0.0,0.0} }; GLfloat color[2][3]={{1.0,0.0,0.0},{0.0,1.0,0.0}; 无效董事会() { GL3F(0.0,0.0,1.0); glBegin(GL_线_环); glVertex3f(-0.8,-0.8,0.0); glVertex3f(-0.8,0.80,0.0); glVertex3f(0.80,0.80,0.0); glVertex3f(0.8,-0.80,0.0); 格伦德(); } void立方体() { glBegin(GL_线_环); GL3F(1.0,0.0,0.0); glVertex3fv(顶点[0]); glVertex3fv(顶点[1]); glVertex3fv(顶点[2]); glVertex3fv(顶点[3]); 格伦德(); } 无效显示() { glClearColor(1.0,1.0,1.0,1.0); 政府统计处(0,0600600),; glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位); 立方体(); 董事会(); glFlush(); } void mykey(int key,int x,int y) { 开关(钥匙){ 案例过量键左:GLTRANSTEF(-0.4,0.0,0.0);中断; 案例过量键右:GLTRANSTEF(0.4,0.0,0.0);中断; 案例过量键:GLTRANSTEF(0.0,0.4,0.0);中断; 案例过量键向下:GLTRANSTEF(0.0,-0.3,0.0);中断; } 再发现(); } void myinit() { glMatrixMode(GL_投影); glLoadIdentity(); 格洛托(02000400,-1,1); glMatrixMode(GLU模型视图); } int main(int argc,字符**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_单个| GLUT_RGB | GLUT_深度); glutInitWindowSize(600600); “你好”; glutDisplayFunc(显示器); glutSpecialFunc(mykey); glutMainLoop(); 返回0; }

在openGL中:如何在平面上移动对象(立方体)并保持曲面静止? #包括 #包括 GLfloat顶点[][3]={ {0.0,0.0,0.0},{0.0,0.4,0.0},{0.4,0.4,0.0},{0.4,0.0,0.0} }; GLfloat color[2][3]={{1.0,0.0,0.0},{0.0,1.0,0.0}; 无效董事会() { GL3F(0.0,0.0,1.0); glBegin(GL_线_环); glVertex3f(-0.8,-0.8,0.0); glVertex3f(-0.8,0.80,0.0); glVertex3f(0.80,0.80,0.0); glVertex3f(0.8,-0.80,0.0); 格伦德(); } void立方体() { glBegin(GL_线_环); GL3F(1.0,0.0,0.0); glVertex3fv(顶点[0]); glVertex3fv(顶点[1]); glVertex3fv(顶点[2]); glVertex3fv(顶点[3]); 格伦德(); } 无效显示() { glClearColor(1.0,1.0,1.0,1.0); 政府统计处(0,0600600),; glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位); 立方体(); 董事会(); glFlush(); } void mykey(int key,int x,int y) { 开关(钥匙){ 案例过量键左:GLTRANSTEF(-0.4,0.0,0.0);中断; 案例过量键右:GLTRANSTEF(0.4,0.0,0.0);中断; 案例过量键:GLTRANSTEF(0.0,0.4,0.0);中断; 案例过量键向下:GLTRANSTEF(0.0,-0.3,0.0);中断; } 再发现(); } void myinit() { glMatrixMode(GL_投影); glLoadIdentity(); 格洛托(02000400,-1,1); glMatrixMode(GLU模型视图); } int main(int argc,字符**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_单个| GLUT_RGB | GLUT_深度); glutInitWindowSize(600600); “你好”; glutDisplayFunc(显示器); glutSpecialFunc(mykey); glutMainLoop(); 返回0; },opengl,Opengl,OpenGL是一种绘图API,而不是场景渲染器。你想改变什么吗?然后你必须重新画出整件事 #include<gl/glut.h> #include<stdio.h> GLfloat vertices[][3]={ {0.0,0.0,0.0},{0.0,0.4,0.0},{0.4,0.4,0.0},{0.4,0.0,0.0} }; GLfloat color[2][3]={ {1.0,0.0,0.0},{0.0,1.0,0.0}}; void board() {

OpenGL是一种绘图API,而不是场景渲染器。你想改变什么吗?然后你必须重新画出整件事

#include<gl/glut.h>
#include<stdio.h>

GLfloat vertices[][3]={
{0.0,0.0,0.0},{0.0,0.4,0.0},{0.4,0.4,0.0},{0.4,0.0,0.0} };

GLfloat color[2][3]={ {1.0,0.0,0.0},{0.0,1.0,0.0}};

void board()
{
    glColor3f(0.0,0.0,1.0);
    glBegin(GL_LINE_LOOP);
        glVertex3f(-0.8,-0.8,0.0);
        glVertex3f(-0.8,0.80,0.0);
        glVertex3f(0.80,0.80,0.0);
        glVertex3f(0.8,-0.80,0.0);
    glEnd();
}

void cube() 
{
    glBegin(GL_LINE_LOOP);
        glColor3f(1.0,0.0,0.0);
        glVertex3fv(vertices[0]);
        glVertex3fv(vertices[1]);
        glVertex3fv(vertices[2]);
        glVertex3fv(vertices[3]);
    glEnd();    
}

void display()
{
    glClearColor(1.0,1.0,1.0,1.0);
    glViewport(0,0,600,600);
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    cube();
    board();

    glFlush();
}

void mykey(int key,int x,int y)
{
    switch(key){
        case GLUT_KEY_LEFT:  glTranslatef(-0.4,0.0,0.0); break;        
        case GLUT_KEY_RIGHT: glTranslatef(0.4,0.0,0.0);  break;
        case GLUT_KEY_UP:    glTranslatef(0.0,0.4,0.0);  break;
        case GLUT_KEY_DOWN:  glTranslatef(0.0,-0.3,0.0); break;
    }

    glutPostRedisplay();
}


void myinit()
{
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,200,0,400,-1,1);
    glMatrixMode(GL_MODELVIEW);
}

int main(int argc,char **argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
    glutInitWindowSize(600,600);
    glutCreateWindow("hello");
    glutDisplayFunc(display);
    glutSpecialFunc(mykey);
    glutMainLoop();

    return 0;
}