0

我已经使用以下两个教程在 java 中成功实现了轨迹球:

  1. http://nehe.gamedev.net/tutorial/arcball_rotation/19003
  2. http://www.java-tips.org/other-api-tips/jogl/arcball-rotation-nehe-tutorial-jogl-port.html

该轨迹球以屏幕中心为中心。现在,我希望将它放在屏幕上的任意位置。如何将中心逻辑合并到现有代码中?由于引入中心,鼠标坐标的规范化如何变化?

4

1 回答 1

1

这可以通过转换鼠标坐标轻松实现。当您像在第一个教程开始时那样变换鼠标坐标时,而不是仅仅将它们按照指定的范围变换到 -1..1,首先从要制作轨迹球的屏幕中心减去偏移量中心。因此,要使轨迹球中心向右 50 像素,中心上方 20 像素,请使用

MousePt.X  =  ((MousePt.X-50) /Width)*2)-1;
MousePt.Y  =  ((MousePt.X-20) /Height)*2)-1;
于 2011-11-10T20:34:04.240 回答