2009-09-21 91 views
1

亲爱的朋友们,有谁能告诉我如何在GLCanvas中显示一张图片,以及如何使用鼠标旋转GLCanvas中的图片。我是这个jogl开发的新手。您可以为我提供如何做到这一点。如果可能,请提供我使用了一些代码片段和一些参考站点来了解关于jogl开发的一个清晰的概念。如何使用jogl旋转图片?

关于, s.kumaran。

+0

嗨,你解决了吗? – elect 2015-08-07 13:28:39

回答

1

最简单的方法是使用图片对Quad进行纹理处理,然后将仿射变换应用到该Quad。渲染这个四边形会让你看到一个旋转的图片,你可以通过移动四边形的顶点来做任何变换。

0

我假设你正在绘制一个3D场景,并且想要改变它的方向,而不是让你想旋转的2D图像。

简短的回答是,它发生在两个部分。您需要将场景的方向存储为4x4矩阵(均匀矩阵 - 如果您不知道它是什么,请搜索它)。您首先需要编写代码,将鼠标拖动转换为4x4矩阵的变化。所以当拖动鼠标时,向矩阵施加适当的旋转或其他任何东西。

然后,您需要重绘场景,但使用新的变换4x4矩阵。使用glMatrixMode指定哪个矩阵(使用GL_PROJECTION或GL_MODELVIEW),然后像glMultMatrixf()一样操作适当的矩阵。

如果没有意义拿起关于如何旋转场景的OpenGL教程。 OpenGL和JOGL足够接近OpenGL中的方法在JOGL中工作。

2

要使用在Java中秋千使用的MouseListener的类TextureIO。然后显示在GLCanvas中的图像,创建使用gl.glBegin(GL.GL_POLYGON)多边形并加载纹理,则可以很容易地控制旋转通过简单地改变相机的位置或进行一些转换(在您的案例中为“gl.glRotate(angle,x-axis,y-axis,z-axis)”)在模型(即纹理多边形) - 查看矩阵。