jogl,polygon作为自己的对象/类

时间:2014-09-06 01:18:19

标签: draw jogl polygons

我想在自己的类中绘制一个多边形作为自己的对象,而不是作为显示方法的一部分。我没有发现太多关于它的事情,希望有人可以帮助我。

public PolygonalGameObject(GameObject parent, double points[],
       double[] fillColour, double[] lineColour) {
   super(parent);

   myPoints = points;
   myFillColour = fillColour;
   myLineColour = lineColour;
}

public void drawSelf(GL2 gl) {

// TODO: Write this method

  gl.glMatrixMode(GL2.GL_MODELVIEW);
  gl.glLoadIdentity();

  gl.glBegin(GL2.GL_POLYGON);{
  for (int i = 0; i < myPoints.length; i += 2) {
      double x = myPoints[i];   
      double y = myPoints[i + 1];
      gl.glVertex2d(x, y);
  }
  }gl.glEnd();
}

GameObject在场景图/树中包含几个polygonGameObjects

我对此非常陌生(包括编程和图形),所以如果有人得到一些好的教程请发帖!

非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要使用当前的OpenGL上下文来绘制OpenGL的内容,这就是您需要在GLEventListener.display(GLAutoDrawable)中调用绘图方法的原因,在调用此方法期间,OpenGL上下文保证在此线程上是最新的。可以在没有GLEventListener的情况下使用JOGL,但是它更危险,特别是如果你是初学者并且浪费时间,因为它不会给予任何灵活性,而它会迫使你自己处理绘图的生命周期。使用GLEventListener并不会阻止您创建自己的类,只需在display()中直接或间接调用绘图方法。

如果您对JOGL有任何疑问,请在the official forum上询问。您也可以查看the wiki。你需要学习普通的OpenGL来使用JOGL,你可以阅读OpenGL Red Book。如果你对编程非常陌生,我认为你不应该从图形开始,你应该先从更简单的东西开始,以便在学习2D和3D计算机图形学原理之前学习Java编程的基本原理。