创建二次几何体的学习笔记
来源:互联网 发布:于正 琼瑶 知乎 编辑:程序博客网 时间:2024/04/28 08:32
单独创建二次几何体并不是一件很难的事情,但是在一个工程里面把这些几何体利用变换的形式一起显示出来就没有那么容易了。
其中就是可以在int DrawGLScene(GLvoid) 这个函数里面直接利用switch()对不同的几何体进行选择。以下是nehe教程里面的函数
switch(object)
{
case 0:
glDrawCube(); //绘制立方体
break;
case 1:
glTranslatef(0.0f,0.0f,-1.5f);//绘制圆环 // Center The Cylinder
gluCylinder(quadratic,1.0f,1.0f,3.0f,32,32);// A Cylinder With A Radius Of 0.5 And A Height Of 2
break;
case 2:
gluDisk(quadratic,0.5f,1.5f,32,32);//绘制圆盘 // Draw A Disc (CD Shape) With An Inner Radius Of 0.5, And An Outer Radius Of 2. Plus A Lot Of Segments ;)
break;
case 3:
gluSphere(quadratic,1.3f,32,32); //绘制实心球体// Draw A Sphere With A Radius Of 1 And 16 Longitude And 16 Latitude Segments
break;
case 4:
glTranslatef(0.0f,0.0f,-1.5f);//绘制圆锥 // Center The Cone
gluCylinder(quadratic,1.0f,0.0f,3.0f,32,32);// A Cone With A Bottom Radius Of .5 And A Height Of 2
break;
case 5: //动态产生圆盘
part1+=p1; //part1圆盘的开始角度
part2+=p2; //part2圆盘的结束角度
if(part1>359) // 360 Degrees
{
p1=0;
part1=0;
p2=1;
part2=0;
}
if(part2>359) // 360 Degrees
{
p1=1;
p2=0;
}
gluPartialDisk(quadratic,0.5f,1.5f,32,32,part1,part2-part1);// A Disk Like The One Before
break;
};
然后用空格键控制几何体的变换 if (keys[' '] && !sp)
{
sp=TRUE;
object++;
if(object>5)
object=0;
}
if (!keys[' '])
{
sp=FALSE;
}
另外,在初始化的函数里面需要有一个指针
quadratic=gluNewQuadric();
gluQuadricNormals(quadratic, GLU_SMOOTH);
gluQuadricTexture(quadratic, GL_TRUE);
这样就是一个可以变换的二次几何体~
理解啦~~
- 创建二次几何体的学习笔记
- OpenGL学习三十二:二次几何体
- 二次几何体
- DX学习笔记(创建DX自带几何体)
- DX学习笔记(旋转的茶壶)DX自带几何体
- 第十三讲 二次几何体
- OpenGL--二次几何体
- 27.OpenGL--二次几何体
- Threejs学习笔记之五几何体
- OSG 学习第二天:几何体的绘制
- 【Qt OpenGL教程】18:二次几何体
- 【D3D11游戏编程】学习笔记十一:基本几何体绘制
- Java 二次学习-笔记整理
- [Java] 二次学习-笔记整理
- 二次规划算法学习笔记
- java的二次学习
- OSG学习:使用OSG中预定义的几何体
- Thressjs开发笔记之八创建、加载高级网格和几何体
- C++实现多线程安全的单体模式(Singleton)
- C++STL概览
- 数据库三范式
- os的进程调度(读书笔记)
- 查询时间SQL
- 创建二次几何体的学习笔记
- 优先级反转问题
- 数据结构1
- 后悔本科没学的东西
- keepalived.conf内容说明
- 优先级反转及解决办法
- dp+segtree _ fz2010_Let the light guide us
- rtmp深入研究
- poj 1946 Cow Cycling