如何在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]);然后绘制,你试试
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
sd3655633
2008-11-18 · TA获得超过438个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:127万
展开全部
glRotated, glRotatef
如果你是说围绕自身轴旋转:先旋转,再平移
如果你是说围绕坐标轴旋转:先平移,再旋转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式