Как повернуть картинку с помощью jogl? - PullRequest
1 голос
/ 21 сентября 2009

Дорогие друзья, может кто-нибудь сказать мне, как показать одно изображение в GLCanvas и с помощью мыши, как повернуть изображение в GLCanvas. Я новичок в этой разработке jogl. Можете ли вы предоставить мне, как это сделать. Если возможно предоставьте мне фрагмент кода и справочный сайт, чтобы получить четкое представление о разработке jogl.

С уважением, s.kumaran.

Ответы [ 3 ]

2 голосов
/ 31 января 2011

Чтобы отобразить изображение в GLCanvas, создайте многоугольник, используя gl.glBegin (GL.GL_POLYGON) и загрузите текстуру, используя Класс TextureIO . Затем с помощью MouseListener в Java Swings Вы можете легко управлять вращением изображения (т. е. текстурированного многоугольника), просто изменив положение камеры или выполнив некоторые преобразования ( "gl.glRotate (угол, ось x, ось y, ось z ) в вашем случае ") в матрице Model-View.

1 голос
/ 26 сентября 2009

Самым простым способом сделать это будет текстурирование четырехугольника с изображением, а затем применить аффинные преобразования к этому четырехугольнику. Рендеринг этого четырехугольника позволит вам увидеть вращающуюся картинку, которую вы можете сделать практически любым преобразованием, сдвинув вершины четырехугольника.

0 голосов
/ 07 октября 2009

Я предполагаю, что вы рисуете 3D-сцену и хотите изменить ее ориентацию, а не иметь 2D-изображение, которое вы хотите повернуть.

Короткий ответ: это происходит в двух частях. Вам необходимо сохранить ориентацию вашей сцены в виде матрицы 4х4 (однородная матрица - ищите ее, если вы не знаете, что это такое). Сначала вам нужно написать код, который переводит перетаскивание мышью в изменение матрицы 4x4. Поэтому, когда мышь перетаскивают, примените соответствующее вращение или что-либо еще к матрице.

Затем вам нужно перерисовать сцену, но с использованием новой преобразованной матрицы 4x4. Используйте glMatrixMode, чтобы указать, какую матрицу (используйте GL_PROJECTION или GL_MODELVIEW), а затем выполняйте функции, подобные glMultMatrixf (), для управления соответствующей матрицей.

Если это не имело смысла, возьмите учебник OpenGL о том, как вращать сцены. OpenGL и JOGL достаточно близки, чтобы методы из OpenGL работали в JOGL.

...