親愛なる友人、GLCanvas で 1 つの画像を表示する方法と、マウスを使用して GLCanvas で画像を回転させる方法を教えてください。この jogl 開発は初めてです。これを行う方法を教えてください。 jogl の開発について明確なアイデアを得るために、コード スニペットと参考サイトを参照してください。
よろしく、s.kumaran。
親愛なる友人、GLCanvas で 1 つの画像を表示する方法と、マウスを使用して GLCanvas で画像を回転させる方法を教えてください。この jogl 開発は初めてです。これを行う方法を教えてください。 jogl の開発について明確なアイデアを得るために、コード スニペットと参考サイトを参照してください。
よろしく、s.kumaran。
GLCanvas で画像を表示するには、gl.glBegin(GL.GL_POLYGON)を使用してポリゴンを作成し、クラス TextureIOを使用してテクスチャをロードします。次に、Java Swings で MouseListener を使用すると、画像の回転を簡単に制御できます (つまり、テクスチャポリゴン) 単純にカメラの位置を変更するか、Model-View マトリックスでいくつかの変換 ( "gl.glRotate(angle,x-axis,y-axis,z-axis) ") を実行します。
これを行う最も簡単な方法は、画像でクワッドにテクスチャを付けてから、そのクワッドにアフィン変換を適用することです。このクワッドをレンダリングすると、クワッドの頂点をシフトすることで、ほとんどすべての変換を実行できる回転画像が表示されます。
回転させたい 2D 画像を持っているのではなく、3D シーンを描いていて、その向きを変更したいと思っています。
簡単に言えば、それは 2 つの部分で行われるということです。シーンの方向を 4x4 マトリックス (均質マトリックス - よくわからない場合は検索してください) として保存する必要があります。最初に、マウスのドラッグを 4x4 マトリックスの変更に変換するコードを記述する必要があります。したがって、マウスが上にドラッグされたときに、適切な回転などをマトリックスに適用します。
次に、シーンを再描画する必要がありますが、新しく変換された 4x4 マトリックスを使用します。glMatrixMode を使用してどのマトリックスを指定し (GL_PROJECTION または GL_MODELVIEW を使用)、次に glMultMatrixf() のような関数を使用して適切なマトリックスを操作します。
それが意味をなさない場合は、シーンを回転する方法に関する OpenGL チュートリアルを選択してください。OpenGL と JOGL は十分に近いため、OpenGL のメソッドは JOGL で機能します。