我的練習如下: 在display()中添加一個drawLine方法。可能需要使用類似 的drawLine(GL gl,int x1,int y1,int x2,int y2) 現在使用線的方程式,繪製組成線的各個點從x1,y1到x2, y2在JOGL 中使用(例如)gl.glPointSize(1.0f); gl.glBegin(GL.GL_POINTS); 如果你已經有色點白色,並用以下預測OpenGL - 用點劃線
gl.glViewport(-250, -150, 250, 150);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluOrtho2D(-250.0, 250.0, -150.0, 150.0);
帶線的從點(0,0)的值(100,100)
然後你會看 像下面的圖片:
迄今,我創造我行事件監聽我的代碼如下:
import javax.media.opengl.*;
import javax.media.opengl.glu.GLU;
public class ThirdGLEventListener implements GLEventListener {
/**
* Interface to the GLU library.
*/
private GLU glu;
/**
* Take care of initialization here.
*/
public void init(GLAutoDrawable gld) {
GL gl = gld.getGL();
glu = new GLU();
gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
gl.glViewport(-250, -150, 250, 150);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluOrtho2D(-250.0, 250.0, -150.0, 150.0);
}
/**
* Take care of drawing here.
*/
public void display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
/*
* put your code here
*/
drawLine(gl, 0, 0, 100, 100);
}
public void reshape(GLAutoDrawable drawable, int x, int y, int width,
int height) {
}
public void displayChanged(GLAutoDrawable drawable,
boolean modeChanged, boolean deviceChanged) {
}
private void drawLine(GL gl, int x1, int y1, int x2, int y2) {
gl.glPointSize(1.0f);
gl.glBegin(GL.GL_POINTS);
// This is where the whole problem lies.
gl.glEnd();//end drawing of points
}
}
我的問題是,我不知道如何完成線方程的方法內的代碼。如果你能幫助我,我將不勝感激。我認爲其餘部分是正確的,我只需要找到如何在drawLine()方法內實現線方程。
這聽起來像是有史以來最糟糕的圖形編程作業。你應該做一些閱讀,它會很快顯現出來。 – 2012-03-14 04:34:44