OpenGL从1.0开始--绘制二次曲面

类似规则多面体,GLUT可以绘制球面或其他三维的二次曲面对象,甚至能绘制一个茶壶。同样的这些函数分为两个版本:一个生产线框图,一个把曲面显示为一组填充多边形面片。这两个版本都是将曲面细分成小平面以逼近二次曲面。
主要代码和上一篇相同,我们来看看核心代码段。

glutWireSphere(r,nLongitudes,nLatitudes);//球面线框图,参数分别为半径,经纬度数目
glutSolidSphere(r,nLongitudes,nLatitudes);//球面实体图
glutWireCone(rBase,height,nLongitudes,nLatitudes);//圆锥线框图
glutSolidCone(rBase,height,nLongitudes,nLatitudes);//参数分别为锥底半径、锥高、经纬度数目
glutWireTorus(rCrossSection,rAxial,nLongitudes,nLatitudes);//环面
glutSolidTorus(rCrossSection,rAxial,nLongitudes,nLatitudes);//参数分别为圆半径、轴半径、经纬度数目
glutWireTeapot(size);//三次曲面茶壶
glutSolidTeapot(size);//参数为最大半径

GLU也可以生产一些二次曲面。

GLUquadricObj *spherel;//定义一个二次曲面对象
spherel=gluNewQuadric();//激活二次曲面绘制器
gluQuadricDrawStyle(spherel,GLU_LINE);//用线框模式绘制球面
gluSphere(spherel,r,nLongitudes,nLatitudes)://绘制二次曲面,参数为曲面对象、经纬度数目

类似地我们还可以用GLU绘制其他二次曲面。

gluCylinder(quadricName,rBase,rTop,height,nLongitudes,nLatitudes)://圆柱,参数为曲面对象、底部半径、顶部半径、高度、经纬度数目
gluDisk(ringName,rInner,rOuter,nRadii,nRings)://圆盘,参数为曲面对象,内环半径、外环半径、网格片数、同心环数

还有其他的函数就不再一一赘述了。我们下面看些示例结果。
球面:
这里写图片描述
圆锥:
这里写图片描述
圆柱:
这里写图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值