OpenGL, 如何用Mouse移动一个3维坐标的物体? HitTest, MouseMove

jyc_nj 2004-09-27 04:25:18
OpenGL, 如何用Mouse移动一个3维坐标的物体? HitTest到物体作好了.
MouseMove时,如何改成新的坐标值?
谢谢.
...全文
186 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gwcui 2004-09-29
  • 打赏
  • 举报
回复
OPenGL中有选择、拾取。
用起来比较方面
比坐标的暴力计算简单一些
可以用拾取。
jyc_nj 2004-09-28
  • 打赏
  • 举报
回复
谢谢楼上的,我也基本是这样作的,
不过对第2条,我是用gluUnProject(用glReadPixels得到深度), 发现返回的3D坐标是在观察平面上,而观察点离物体远, 我就用前后两次坐标的差,来作为物体新坐标的变化值,绝大部分情况效果很好,但有时候gluUnproject获得的3D坐标值会突然"飞掉",变成很大的值.不知道这是怎么回事.
syy64 2004-09-28
  • 打赏
  • 举报
回复
或者加一个整个场景的底面。
syy64 2004-09-28
  • 打赏
  • 举报
回复
“但有时候gluUnproject获得的3D坐标值会突然"飞掉",变成很大的值”:
原因有下:
1、你点在空的地方(无模型处);
2、场景缩得太小(应尽量放大场景);
解决办法:
程序加判断,x,y,z方向都控制在场景之内。
syy64 2004-09-27
  • 打赏
  • 举报
回复
1、通过选择模式,选上该物体;
2、将鼠标移动的平面坐标计算成场景的三位坐标;
3、根据鼠标景的三位坐标重新计算物体坐标;
4、重画该物体。

4,499

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧