Как изменить центр трекбола при его регулярной реализации? - PullRequest
0 голосов
/ 07 ноября 2011

Я успешно реализовал трекбол в Java, используя два следующих урока:

  1. http://nehe.gamedev.net/tutorial/arcball_rotation/19003
  2. http://www.java -tips.org / другие-API-советы / JOGL / arcball-вращательно-Nehe-учебник-JOGL-port.html

Этот трекбол расположен по центру экрана. Теперь я хочу центрировать его в любой точке экрана. Как я могу включить центральную логику в существующий код? Как меняется нормализация координат мыши из-за введения центра?

1 Ответ

1 голос
/ 11 ноября 2011

Это может быть легко достигнуто путем преобразования координат мыши.Когда вы преобразуете координаты мыши, как вы это делали в начале первого урока, вместо того, чтобы просто преобразовывать их, как указано в диапазоне -1..1, сначала вычтите смещение из центра экрана, где вы хотите сделать трекбол.центр.Чтобы трекбол центрировался на 50 пикселей вправо и на 20 пикселей выше центра, используйте

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