Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.lwjgl.glfw.*;
- import org.lwjgl.opengl.GL;
- import static org.lwjgl.glfw.GLFW.*;
- import static org.lwjgl.opengl.GL11.*;
- import static org.lwjgl.system.MemoryUtil.*;
- public class cv07 {
- private int sirka = 800;
- private int vyska = 600;
- void pyramida(float r, float g, float b) {
- glColor3f(r,g,b);
- glBegin(GL_TRIANGLES);
- glVertex3f(1.0f, 0f, 1.0f);
- glVertex3f(0f, 2.0f, 0.0f);
- glVertex3f(-1.0f, 0f, 1.0f);
- glVertex3f(1.0f, 0f, -1.0f);
- glVertex3f(0f, 2.0f, 0.0f);
- glVertex3f(1.0f, 0f, 1.0f);
- glVertex3f(-1.0f, 0f, -1.0f);
- glVertex3f(0f, 2.0f, 0.0f);
- glVertex3f(1.0f, 0f, -1.0f);
- glVertex3f(-1.0f, 0f, 1.0f);
- glVertex3f(0f, 2.0f, 0.0f);
- glVertex3f(-1.0f, 0f, -1.0f);
- glEnd();
- glBegin(GL_QUADS);
- glVertex3f(1.0f, 0, -1.0f);
- glVertex3f(1.0f, 0, 1.0f);
- glVertex3f(-1.0f, 0, 1.0f);
- glVertex3f(-1.0f, 0, -1.0f);
- glEnd();
- }
- void vykresliGL() {
- glRotated(0.03,1,1,1);
- // glColor3f(1,1,1);
- // glBegin(GL_TRIANGLES);
- // glVertex3f(1f, 0f, 1.0f);
- // glVertex3f(0f, 2f, 0.0f);
- // glVertex3f(-1, 0f, 1.0f);
- //
- // glColor3f(0,0,1);
- // glVertex3f(1f, 0f, -1.0f);
- // glVertex3f(0f, 2f, 0.0f);
- // glVertex3f(1f, 0f, 1.0f);
- //
- // glColor3f(0,1,0);
- // glVertex3f(-1, 0f, -1.0f);
- // glVertex3f(0f, 2f, 0.0f);
- // glVertex3f(1f, 0f, -1.0f);
- //
- // glColor3f(1,1,0);
- // glVertex3f(-1, 0f, 1.0f);
- // glVertex3f(0f, 2f, 0.0f);
- // glVertex3f(-1f, 0f, -1.0f);
- // glEnd();
- //
- // glColor3f(1,0,0);
- // glBegin(GL_QUADS);
- // glVertex3f(1.0f, 0, -1.0f);
- // glVertex3f(1.0f, 0, 1.0f);
- // glVertex3f(-1.0f, 0, 1.0f);
- // glVertex3f(-1.0f, 0, -1.0f);
- // glEnd();
- pyramida(1, 0, 0);
- pyramida(0, 1, 0);
- //pyramida(0, 1, 0);
- //pyramida(0, 0, 1);
- }
- long window;
- GLFWErrorCallback errorCallback;
- GLFWKeyCallback keyCallback;
- void spusti() {
- try {
- init();
- loop();
- glfwDestroyWindow(window);
- keyCallback.free();
- } finally {
- glfwTerminate();
- errorCallback.free();
- }
- }
- void init() {
- glfwSetErrorCallback(errorCallback = GLFWErrorCallback.createPrint(System.err));
- if (!glfwInit())
- throw new IllegalStateException("Chyba pri inicializacii GLFW!!!");
- window = glfwCreateWindow(sirka, vyska, "UGR1", NULL, NULL);
- if ( window == NULL )
- throw new RuntimeException("Chyba pri vytvoreni GLFW okna!!!");
- glfwSetKeyCallback(window, keyCallback = new GLFWKeyCallback() {
- @Override
- public void invoke(long window, int key,
- int scancode, int action, int mods) {
- if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE)
- glfwSetWindowShouldClose(window, true);
- }});
- GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
- glfwSetWindowPos(window, (vidmode.width() - sirka) / 2, (vidmode.height() - vyska) / 2);
- glfwMakeContextCurrent(window);
- glfwSwapInterval(0);
- glfwShowWindow(window);
- GL.createCapabilities();
- }
- private static void gluPerspective(double fov, double aspect, double zNear, double zFar) {
- double fH = Math.tan(fov*Math.PI/360.0) * zNear;
- double fW = fH * aspect;
- glFrustum( -fW, fW, -fH, fH, zNear, zFar);
- }
- void loop() {
- glViewport(0,0,sirka,vyska);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(45.0f, (sirka/(1.0*vyska)), 0.1f, 100.0f);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glClearColor( 0.f, 0.f, 0.f, 1.f ); //Initialize clear color
- glShadeModel(GL_SMOOTH);
- glTranslatef(0f, 0.0f, -10.0f);
- glCullFace(GL_BACK); glEnable(GL_CULL_FACE);
- while ( !glfwWindowShouldClose(window) ) {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- vykresliGL();
- glfwSwapBuffers(window);
- glfwPollEvents();
- }
- }
- public static void main(String[] args) {
- new cv07().spusti();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement