我写了这个程序,但我希望广场在更远处移动时改变大小。如何使用透视投影矩阵?
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