我寫了這個程序,但我希望廣場在更遠處移動時改變大小。如何使用透視投影矩陣?
package com.ncom.src;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import static org.lwjgl.util.glu.GLU.*;
import static org.lwjgl.opengl.GL11.*;
public class Main {
public void start() {
float y = 0;
try {
Display.setDisplayMode(new DisplayMode(800,600));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
while (!Display.isCloseRequested()) {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 800, 600, 0, 500000000, -500000000);
glMatrixMode(GL_MODELVIEW);
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glVertex3f(350, 250, y);
glVertex3f(350, 270, y);
glVertex3f(370, 270, y);
glVertex3f(370, 250, y);
glEnd();
Display.update();
y -= 20;
}
Display.destroy();
System.exit(0);
}
public static void main(String[] argv) {
Main quadExample = new Main();
quadExample.start();
}
}
不,我不在乎數學,它只是到處看,我沒有實際的代碼。如何對廣場進行深度繪製或「不在屏幕上」進行繪製? – 2013-04-09 10:12:03
@Dr_N:好的,通過了解數學。編程是將數學符號轉化爲編程語言源代碼的過程。從「代碼示例」中學習不會教你有趣的部分。特別是對於圖形來說,單個簡短的數學符號可能會擴展成一個充滿代碼的屏幕。 – datenwolf 2013-04-09 10:15:58
@datenwolf:你可以給我任何地方開始學習嗎?我真的不知道該去哪裏看看 – 2013-04-09 10:20:45