Qt+OpenGl 如何实现三维点的 平移旋转操作我现在可以分别实现 旋转、平移.一旦,旋转和平移交替操作就会回到屏幕中心.给个可以用的平移、旋转函数啊.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 22:45:41
Qt+OpenGl 如何实现三维点的 平移旋转操作我现在可以分别实现 旋转、平移.一旦,旋转和平移交替操作就会回到屏幕中心.给个可以用的平移、旋转函数啊.
Qt+OpenGl 如何实现三维点的 平移旋转操作
我现在可以分别实现 旋转、平移.一旦,旋转和平移交替操作就会回到屏幕中心.给个可以用的平移、旋转函数啊.
Qt+OpenGl 如何实现三维点的 平移旋转操作我现在可以分别实现 旋转、平移.一旦,旋转和平移交替操作就会回到屏幕中心.给个可以用的平移、旋转函数啊.
平移操作 调 函数 glTranslatef
glTranslatef(12.3,0.,0.); -- 沿x 平移12.3
glTranslatef(0.,34.5,0.); -- 沿y 平移34.5
glTranslatef(0.,0.0,67.8); -- 沿z 平移67.8
旋转操作调 函数 glRotated 或 glRotatef ,前者参数1是角度值 整型,后者是 float型.
glRotated(3,1,0,0); -- 绕 x 轴 转 3 度
glRotated(3,0,1,0); -- 绕 y 轴 转 3 度
glRotated(3,0,0,1); -- 绕 z 轴 转 3 度
这段程序画 三维空间的 NN 个点,每个点用一个边长c1的立方块表示,颜色由z值决定.
for (i = 0; i< NN ; i++)
{
glPushMatrix();
glTranslatef(x[i],y[i],z[i]);
(void) my_color(z_color(z[i]));
(void) glutSolidCube(c1);
glPopMatrix();
}; // end for i
-----------------
注意 平移和转动的顺序,顺序不同,最终结果的位置和状态可能不能同.
必要时,加 glPushMatrix(); glPopMatrix(); 保证它是自己所要的位置转换.