本文概述
- JOGL内置基元
- Display()方法
- 基本线示例
OpenGL Primitive提供了各种内置参数, 可以根据这些参数绘制不同的形状。每个参数在图形中都有特定的作用。
JOGL内置基元 以下是JOGL支持的各种OpenGL内置参数:-
原始 | 描述 |
---|---|
GL_LINES | 它将每对顶点视为线段。 |
GL_LINES_STRIP | 连接线段组。 |
GL_LINES_LOOP | 将一组线段连接成一个循环, 即从头到最后, 然后再回到第一个。 |
GL_TRIANGLE | 三重态的每个顶点表现为一个独立的三角形 |
GL_TRIANGLE_FAN | 创建一组三角形的连接, 其中为在前两个顶点之后显示的特定顶点定义了每个三角形。 |
GL_TRIANGLE_STRIP | 将一组三角形相互连接。 |
GL_QUADS | 每组四个顶点的行为就像一个独立的四边形。 |
GL_QUAD_STRIP | 将一组四边形相互连接。 |
GL_POLYGON | 绘制单个凸多边形。 |
- 最初, 使用display()方法作为参数传递GLAutoDrawable接口的对象。
public void display(GLAutoDrawable drawable)
- 生成GL2接口的对象。
final GL2 gl = drawable.getGL().getGL2();
- 将该对象与glBegin()方法相关联, 并传递所需的原语类型作为其参数。
gl.glBegin (GL2.GL_LINES);
在这里, 我们提供GL_LINES原语。
- 现在, 使用glVeretex2d()方法绑定GL2对象, 并传递特定的坐标。
gl.glVertex2d(-0.60, 0.10);
gl.glVertex2d(0.60, 0.10);
- 通过调用glEnd()方法结束该行。
gl.glEnd();
基本线示例 在此示例中, 我们将学习如何使用基元绘制一条简单的线。
BasicLine.java
package com.srcmini.jogl;
import javax.media.opengl.*;
import javax.media.opengl.awt.GLCanvas;
import javax.swing.JFrame;
public class BasicLine implements GLEventListener { @Overridepublic void init(GLAutoDrawable arg0) {}@Overridepublic void display(GLAutoDrawable drawable) {final GL2 gl = drawable.getGL().getGL2();
gl.glBegin (GL2.GL_LINES);
gl.glVertex2d(-0.60, 0.10);
gl.glVertex2d(0.60, 0.10);
gl.glEnd();
}@Overridepublic void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4) { }@Overridepublic void dispose(GLAutoDrawable arg0) {}public static void main(String[] args) {final GLProfile gp = GLProfile.get(GLProfile.GL2);
GLCapabilities cap = new GLCapabilities(gp);
final GLCanvas gc = new GLCanvas(cap);
BasicLine bl = new BasicLine();
gc.addGLEventListener(bl);
gc.setSize(400, 400);
final JFrame frame = new JFrame ("JOGL Line");
frame.add(gc);
frame.setSize(500, 400);
frame.setVisible(true);
} }
输出:
文章图片