2009-09-21 2 views
1

Дорогие друзья, может ли кто-нибудь сказать мне, как показать одну картинку в GLCanvas, и с помощью мыши, как повернуть картинку в GLCanvas.I m новичок в этом jogl developmentement.Can u pls предоставит мне, как это сделать. Если возможно, мне некоторый фрагмент кода и некоторый справочный сайт, чтобы получить четкое представление о развитии jogl.Как повернуть изображение с помощью jogl?

приветствия, s.kumaran.

+0

Привет, вы решили? – elect

ответ

1

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

0

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

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

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

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

2

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