如何在OPENGL中让模型绕其中心点旋转?

如题,让鼠标向上或向下移动时,模型绕其X,Y中心平面进行旋转;让鼠标向左或向右移动时,模型绕其中心Z轴进行旋转。我的模型在绘制前是经过了一段距离的平移后建立的,使用的是透... 如题,让鼠标向上或向下移动时,模型绕其X,Y中心平面进行旋转;让鼠标向左或向右移动时,模型绕其中心Z轴进行旋转。
我的模型在绘制前是经过了一段距离的平移后建立的,使用的是透视投影,所以目前的旋转功能总是会产生斜向的一些坐标和角度偏移,请问如何让该模型围绕中心点旋转而不产生这些偏移?麻烦请给出详细代码和注释。
楼上这位朋友没有理解我的意思,单纯的旋转函数我是知道的,这里的问题是说:模型在透视投影下,运用旋转和移动都是围绕它在空间中的转轴和原点来操作的,我要达到的效果是模型绕自身的中心轴和中心点旋转平移,照上面两个函数操作出来的效果,模型在旋转的同时,根本无法保证模型不发生坐标偏移,你可以先自己试试。
展开
 我来答
tuming1986
推荐于2017-11-26
知道答主
回答量:7
采纳率:0%
帮助的人:6.9万
展开全部
先计算出物体的中心坐标pivot[3],所有点坐标(世界坐标)都减去pivot转化成物体坐标,再旋转,缩放,最后平移glTranslatf(pivot[0],pivot[1],pivot[2]);然后绘制,你试试
sd3655633
2008-11-18 · TA获得超过438个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:127万
展开全部
glRotated, glRotatef
如果你是说围绕自身轴旋转:先旋转,再平移
如果你是说围绕坐标轴旋转:先平移,再旋转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式