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
C语言中的OpenGL添加另一个对象_C_Opengl_Visual Studio 2017_Opengl Compat - Fatal编程技术网

C语言中的OpenGL添加另一个对象

C语言中的OpenGL添加另一个对象,c,opengl,visual-studio-2017,opengl-compat,C,Opengl,Visual Studio 2017,Opengl Compat,我需要帮助将另一个对象添加到我的“绘图”中。 在我的大学教师代码和谷歌的帮助下,我能够创建一个脸型 我想在脸上加一个微笑 如何向图形中添加其他形状 我试图在voidface()中添加如下内容: glVertex2f(100125); glVertex2f(400125); 这是C语言的代码: #包括 #包括 #包括 #包括 #包括 #包括 浮动计数器=200; 静态GLfloat自旋=0.0; 静态GLR=0.2; 静态GLG=0.9; 静态GLB=0.8; 浮点数carx=500,cary

我需要帮助将另一个对象添加到我的“绘图”中。
在我的大学教师代码和谷歌的帮助下,我能够创建一个脸型

我想在脸上加一个微笑
如何向图形中添加其他形状

我试图在void
face()
中添加如下内容:

glVertex2f(100125);
glVertex2f(400125);
这是C语言的代码:

#包括
#包括
#包括
#包括
#包括
#包括
浮动计数器=200;
静态GLfloat自旋=0.0;
静态GLR=0.2;
静态GLG=0.9;
静态GLB=0.8;
浮点数carx=500,cary=50,fr=0,fl=0,fo=0,fu=0,mx=0,my=0;
void initOpenGl()
{
glClearColor(0.0,0.0,1.8,0);//背景色
glMatrixMode(GL_投影);
glLoadIdentity();
gluOrtho2D(0,1500,0,500);
glMatrixMode(GLU模型视图);
}
空心眼(内角x,内角y)
{
浮动th;
glBegin(GL_多边形);
gl3f(0,0,0);
对于(int i=0;i<360;i++)
{
th=i*(3.1416/180);
glVertex2f(x+25*cos(th),y+20*sin(th));
}
格伦德();
}
空面()
{
GL()
计数器=计数器-0.03;
如果(fr>0)
carx+=fr;
如果(fl>0)
carx-=fl;
如果(fu>0)
cary+=fu;
如果(fo>0)
cary-=fo;
如果(mx>0)
carx+=mx;
如果(我的>0)
carx-=我的;
GLX(carx,cary,0.0);
glBegin(GL_多边形);//顶部
glVertex2f(100125);
glVertex2f(400125);
glVertex2f(400300);
glVertex2f(100300);
格伦德();
眼睛(165230);
眼睛(315230);
}
}
无效显示()
{
glClear(GLU颜色缓冲位);
glColor3f(0.5,0.9,0.33);//用于从背景中分离圆形对象的推送和弹出矩阵
面();
pa();
glutSwapBuffers();
glFlush();
}
无效鼠标(int按钮)
{
开关(按钮){
case GLUT_左按钮:mx=0.3;
打破
案例过量\右\按钮:my=0.2;
打破
违约:
打破
}
}
void keyFunc(无符号字符键,整数x,整数y)
{
开关(钥匙){
案例“w”:fu=0.3,fo=0,fr=0,fl=0;
打破
案例:fu=0,fo=0.2,fr=0,fl=0;
打破
案例“a”:fu=0.01,fo=0,fr=0,fl=0.2;
打破
案例“d”:fu=0.01,fo=0,fr=0.2,fl=0;
打破
案例“z”:fu=0,fo=0.2,fr=0,fl=0.2;
打破
案例“c”:fu=0,fo=0.2,fr=0.2,fl=0;
打破
违约:
打破
}
glutPostOverlayRedisplay();
}
int main(int argc,字符**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_双精度| GLUT_RGBA | GLUT_深度);
glutInitWindowSize(1500700);
glutInitWindowPosition(0,0);
glutCreateWindow(“Shai Goldenebrg”);
initOpenGl();
glutDisplayFunc(显示器);
glutMouseFunc(小鼠);
键盘功能(keyFunc);
glutIdleFunc(显示);
glutMainLoop();
返回0;
}
微笑的嘴是一种微笑。我建议使用a生成嘴巴。e、 g:

void嘴(int x,int y)
{
浮点数th、s、c;
glBegin(GLU三角带);
gl3f(0,0,0);
对于(int i=240;i<300;i++)
{
th=i*(3.1416/180);
c=cos(th);
s=sin(th);
glVertex2f(x+90*cos(th),y+100+90*sin(th));
glVertex2f(x+110*cos(th),y+100+110*sin(th));
}
格伦德();
}
void face()
{
// [...]
眼睛(165230);
眼睛(315230);
口腔(240150);
}