关于opengl二维图形旋转的问题

我现在已经画好了一条直线,现在怎么以鼠标点击的一点为中心直线绕其旋转啊!急!期末作业啊!希望大家帮忙!是二维的!二维的我已经做好了呵呵原来书上有的!谢谢各位帮忙,能否给个... 我现在已经画好了一条直线,现在怎么以鼠标点击的一点为中心直线绕其旋转啊!急!期末作业啊!希望大家帮忙!是二维的!
二维的我已经做好了呵呵原来书上有的!谢谢各位帮忙,能否给个三维图形的旋转或者观察有3个视角的那种!
展开
 我来答
sl65agm
2010-12-24 · TA获得超过1383个赞
知道小有建树答主
回答量:734
采纳率:0%
帮助的人:586万
展开全部
可以先设置旋转矩阵,再左乘平移矩阵(平移到这个点的), 再用glloadmatrix即可。
当然你也可以用gltranslate + glrotate不过注意次序,这个用的是是惯性坐标
第二种方案
glLoadIdentity();
glTranslate(鼠标位置,注意windows和你的gl坐标之间的转换);
glRotate(0,0,z当前的选择角, 如果需要动画,就要不断跟新);
绘制直线

第一种方案: z为本帧动画中,直线绕自己中心旋转的角度
cos(z) -sin(z) 0 0
sin(z) cos(z) 0 0
0 0 1 0
0 0 0 1
乘以
1 0 0 直线中点x
0 1 0 直线中点y
0 0 1 0
0 0 0 1
让后取结果的转置矩阵,调用glLoadMatrix(),
最后再绘制直线即可
xuxinchao84
2010-12-30
知道答主
回答量:34
采纳率:0%
帮助的人:28.9万
展开全部
三维就不能以你鼠标的位置为中心旋转了,因为程序判断不了鼠标所在的深度,自然就确定不了鼠标的三维位置。但是可以让他绕一个固定的点旋转
glTranslatef(a, b, c);//将当前点(a,b,c)作为旋转中心
glRotatef(m_fxAngle, 1.0f, 0.0f, 0.0f);//绕x轴旋转,m_fxAngle为旋转角度
glRotatef(m_fzAngle, 0.0f, 0.0f, 1.0f);//绕z轴旋转,m_fzAngle为旋转角度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vogri81
2010-12-23 · TA获得超过221个赞
知道答主
回答量:284
采纳率:0%
帮助的人:208万
展开全部
其实一个三维的工作台就可以实现绘图功能,你把Z轴换成汽缸就可以了!市场上这样的成型产品也很多,原理也相识,你可以去了解一下雕刻机!硬件部分就这样,关键是软件部分的效果!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式