Java 如何在常规实施中更改轨迹球的中心?

Java 如何在常规实施中更改轨迹球的中心?,java,jogl,trackball,arcball,Java,Jogl,Trackball,Arcball,我使用以下两个教程成功地在java中实现了轨迹球: 此轨迹球位于屏幕中心。现在,我想把它放在屏幕上任何一点的中心。如何将中心逻辑合并到现有代码中?鼠标坐标的标准化如何因中心的引入而改变?这可以通过变换鼠标坐标轻松实现。当您像第一个教程开始时那样变换鼠标坐标时,不要只按照指定的范围-1..1变换鼠标坐标,而要先减去要使轨迹球位于屏幕中心的偏移量。因此,要使轨迹球中心向右50像素,中心上方20像素,请使用 MousePt.X = ((MousePt.X-50) /Width)*2)-1; M

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


  • 此轨迹球位于屏幕中心。现在,我想把它放在屏幕上任何一点的中心。如何将中心逻辑合并到现有代码中?鼠标坐标的标准化如何因中心的引入而改变?

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

    MousePt.X  =  ((MousePt.X-50) /Width)*2)-1;
    MousePt.Y  =  ((MousePt.X-20) /Height)*2)-1;