OpenGL图像平移、旋转基本操作总结

本文介绍了在OpenGL中如何使用glTranslatef()和glRotatef()等函数实现图形的平移和旋转。文章强调了为了确保不同图形之间的变换独立性,应当如何正确使用glPushMatrix()和glPopMatrix()来管理变换矩阵堆栈。此外,还详细解释了复合变换的操作顺序及其对最终图形位置的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

           在OpenGL里面使用glTranslatef()、glRotatef()等函数可以图形的平移、旋转等。


1、在变换的时候都是对绘图坐标系进行的变换,所以在此坐标系中画的图都会被变换;如果要画两个图,但只想对第一个图进行变换,第二个图不变换或者进行不同的变换,这个时候就需要注意一点:在前一个图使用变换矩阵的时候加上:

glPushMatrix();
glTranslatef();

//绘图代码.........

glPopMatrix();

只有这样,第二个图才不会受到前一个变换的影响。


          2、复合变换

比如,用OpenGL画一个图,我想让他先饶Z旋转,然后沿X轴平移。这个时候就需要注意变换矩阵的顺序:

//先调用平移矩阵,然后调用旋转矩阵,与我们
//要看到的实际效果相反
glTranslatef(m_Rimage_Xoff,0.0f,0.0f);
 glRotatef(30.0f,0.0f,0.0f,1.0f);


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值