opengl旋转曲面画立体图

来源:百度知道 编辑:UC知道 时间:2024/06/16 05:26:18
请问opengl用什么函数或方法可以使已知平面旋转得到一个立体图,比如让矩形旋转得到圆柱或圆环等;当然实际旋转的可能不是规则的矩形

opengl旋转的概念不是你这样的概念。

opengl旋转一样立体物体,这个物体只是变位置,变方向,不是变形状。
例如,转一个立体头像,开始,脸对着你,然后转动,左耳对着你,再转,后脑勺对着你,再转,右耳对着你。
例如,一架飞机,起伏升降翻腾飞行。

opengl画3维物体,需要有这个物体的外表面上的离散点,这些点组成微小的三角形或四边形或多边型。每个点的起始坐标是 xi,yi,zi;

你的矩形旋转得到圆柱或圆环等,其实是简单的圆柱或圆环面上的点的3维座标计算。例如,矩形 a*b 绕b边转:
x[i]=a*cos(w*t);y[i]=a*sin(w*t);z1[i]=b/2;z2[i]= -b/2;
w*t 离散为每5度一点,共转360度。你就得到了所有座标。圆柱面用画4边型的方法,做循环,上下两个圆用画3角形的方法做循环。

整个柱体要想在空间里抛上抛下,那就用与飞机,起伏升降翻腾飞行类似方法,调translate,rotate这种opengl函数变换。

期待OPENGL以后会增加LZ说的功能,目前还没有,你想画圆柱,就必须自己定点来画

现有的方法就是自己写个revolve 类, 计算旋转后各个面上的四边形/三角型vertex 的坐标