ProjectYZ
所属分类:OpenGL
开发工具:WINDOWS
文件大小:11308KB
下载次数:3
上传日期:2017-12-09 22:58:04
上 传 者:
flyin
说明: 绘制多排圆锥,每排颜色不同,且添加弹出式菜单,对圆锥进行操作
三维绘制
纹理映射
(draw cones with OpenGL)
文件列表:
Data (0, 2017-11-15)
Data\Cube.bmp (49220, 1998-01-04)
main.cpp (6677, 2017-11-16)
录像.wmv (11861889, 2017-11-16)
实验说明
实验目的与原理:
绘制多排圆锥,每排颜色不同,且添加弹出式菜单,对圆锥进行操作
实验关键代码:
1)园锥的绘制
glBegin( GL_QUADS);
double tt = 0.0;double dtt = 2*PI/nslice;
for (int j = 0; j <= nslice; ++j)
{
glNormal3f(1.0f, 0.0f, 0.0f);
glTexCoord2f( tt/(2*PI), 1.0); glVertex3f( 0.0f, 2.0f, 0.0f);
glTexCoord2f( tt/(2*PI), 0.0); glVertex3f( cos( tt)*1.0f, 0.0f, -sin( tt)*1.0f);
tt = tt + dtt;
}
glEnd();
利用回转线段的方法绘制圆锥面,并将纹理添加在改圆锥面上
2)添加菜单项
加入两个函数:
void TopMenu(int option)
{
switch (option)
{
case 1:
yrott = 0.2f;
break;
case 2:
yrott= -0.2f;
break;
case 3:
xrott = -0.2f;
break;
case 4:
xrott = 0.2f;
break;
case 5:
xrott = 0.0f;
yrott = 0.0f;
break;
case 6:
xrott = 0.0f;
yrott = 0.0f;
xrot = 0.0f;
yrot = 0.0f;
break;
}
}
void GenMenu()
{
glutCreateMenu(TopMenu);
glutAddMenuEntry("向右旋", 1);
glutAddMenuEntry("向左旋", 2);
glutAddMenuEntry("向后翻", 3);
glutAddMenuEntry("向前翻", 4);
glutAddMenuEntry("停止", 5);
glutAddMenuEntry("一键还原", 6);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
实验效果:
通过右键菜单,可以对圆锥进行旋转操作,同时也可以用方向键进行调整,具体见演示视频
实验环境:
Windows10 ***位 Visual Studio 2012
近期下载者:
相关文件:
收藏者: