Advertisement
LukacikPavel

cv 07 ugr

Nov 5th, 2018
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.89 KB | None | 0 0
  1. import org.lwjgl.glfw.*;
  2. import org.lwjgl.opengl.GL;
  3.  
  4. import static org.lwjgl.glfw.GLFW.*;
  5. import static org.lwjgl.opengl.GL11.*;
  6. import static org.lwjgl.system.MemoryUtil.*;
  7.  
  8. public class cv07 {
  9.     private int sirka = 800;
  10.     private int vyska = 600;
  11.    
  12.     void pyramida(float r, float g, float b) {
  13.         glColor3f(r,g,b);
  14.         glBegin(GL_TRIANGLES);
  15.         glVertex3f(1.0f, 0f, 1.0f);
  16.         glVertex3f(0f, 2.0f, 0.0f);
  17.         glVertex3f(-1.0f, 0f, 1.0f);
  18.        
  19.         glVertex3f(1.0f, 0f, -1.0f);
  20.         glVertex3f(0f, 2.0f, 0.0f);
  21.         glVertex3f(1.0f, 0f, 1.0f);
  22.        
  23.         glVertex3f(-1.0f, 0f, -1.0f);
  24.         glVertex3f(0f, 2.0f, 0.0f);
  25.         glVertex3f(1.0f, 0f, -1.0f);
  26.        
  27.         glVertex3f(-1.0f, 0f, 1.0f);
  28.         glVertex3f(0f, 2.0f, 0.0f);
  29.         glVertex3f(-1.0f, 0f, -1.0f);
  30.         glEnd();
  31.        
  32.         glBegin(GL_QUADS);
  33.         glVertex3f(1.0f, 0, -1.0f);
  34.         glVertex3f(1.0f, 0, 1.0f);
  35.         glVertex3f(-1.0f, 0, 1.0f);
  36.         glVertex3f(-1.0f, 0, -1.0f);
  37.         glEnd();
  38.     }
  39.    
  40.     void vykresliGL() {
  41.         glRotated(0.03,1,1,1);
  42.  
  43. //      glColor3f(1,1,1);
  44. //      glBegin(GL_TRIANGLES);
  45. //      glVertex3f(1f, 0f, 1.0f);
  46. //      glVertex3f(0f, 2f, 0.0f);
  47. //      glVertex3f(-1, 0f, 1.0f);
  48. //     
  49. //      glColor3f(0,0,1);
  50. //          glVertex3f(1f, 0f, -1.0f);
  51. //          glVertex3f(0f, 2f, 0.0f);
  52. //          glVertex3f(1f, 0f, 1.0f);
  53. //     
  54. //      glColor3f(0,1,0);
  55. //          glVertex3f(-1, 0f, -1.0f);
  56. //          glVertex3f(0f, 2f, 0.0f);
  57. //          glVertex3f(1f, 0f, -1.0f);
  58. //     
  59. //      glColor3f(1,1,0);
  60. //          glVertex3f(-1, 0f, 1.0f);
  61. //          glVertex3f(0f, 2f, 0.0f);
  62. //          glVertex3f(-1f, 0f, -1.0f);
  63. //      glEnd();
  64. //     
  65. //      glColor3f(1,0,0);
  66. //      glBegin(GL_QUADS);
  67. //      glVertex3f(1.0f, 0, -1.0f);
  68. //          glVertex3f(1.0f, 0, 1.0f);
  69. //      glVertex3f(-1.0f, 0, 1.0f);
  70. //          glVertex3f(-1.0f, 0, -1.0f);
  71. //      glEnd();
  72.        
  73.         pyramida(1, 0, 0);
  74.         pyramida(0, 1, 0);
  75.        
  76.         //pyramida(0, 1, 0);
  77.         //pyramida(0, 0, 1);
  78.        
  79.     }
  80.  
  81.     long window;
  82.     GLFWErrorCallback errorCallback;
  83.     GLFWKeyCallback   keyCallback;
  84.  
  85.     void spusti() {
  86.         try {
  87.             init();
  88.             loop();
  89.  
  90.             glfwDestroyWindow(window);
  91.             keyCallback.free();
  92.         } finally {
  93.             glfwTerminate();
  94.             errorCallback.free();
  95.         }
  96.     }
  97.  
  98.     void init() {
  99.         glfwSetErrorCallback(errorCallback = GLFWErrorCallback.createPrint(System.err));
  100.         if (!glfwInit())
  101.             throw new IllegalStateException("Chyba pri inicializacii GLFW!!!");
  102.  
  103.         window = glfwCreateWindow(sirka, vyska, "UGR1", NULL, NULL);
  104.         if ( window == NULL )
  105.             throw new RuntimeException("Chyba pri vytvoreni GLFW okna!!!");
  106.  
  107.         glfwSetKeyCallback(window, keyCallback = new GLFWKeyCallback() {
  108.             @Override
  109.             public void invoke(long window, int key,
  110.                     int scancode, int action, int mods) {
  111.                 if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE)
  112.                     glfwSetWindowShouldClose(window, true);
  113.            
  114.             }});
  115.  
  116.         GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
  117.         glfwSetWindowPos(window, (vidmode.width() - sirka) / 2, (vidmode.height() - vyska) / 2);
  118.  
  119.         glfwMakeContextCurrent(window);
  120.         glfwSwapInterval(0);
  121.         glfwShowWindow(window);        
  122.  
  123.         GL.createCapabilities();
  124.        
  125.     }
  126.  
  127.     private static void gluPerspective(double fov, double aspect, double zNear, double zFar) {
  128.         double fH = Math.tan(fov*Math.PI/360.0) * zNear;
  129.         double fW = fH * aspect;
  130.         glFrustum( -fW, fW, -fH, fH, zNear, zFar);     
  131.     }
  132.  
  133.    
  134.     void loop() {
  135.         glViewport(0,0,sirka,vyska);        
  136.  
  137.         glMatrixMode(GL_PROJECTION);
  138.         glLoadIdentity();
  139.         gluPerspective(45.0f, (sirka/(1.0*vyska)), 0.1f, 100.0f);      
  140.  
  141.         glMatrixMode( GL_MODELVIEW );
  142.         glLoadIdentity();
  143.  
  144.         glClearColor( 0.f, 0.f, 0.f, 1.f ); //Initialize clear color
  145.        
  146.         glShadeModel(GL_SMOOTH);
  147.         glTranslatef(0f, 0.0f, -10.0f);
  148.         glCullFace(GL_BACK); glEnable(GL_CULL_FACE);
  149.         while ( !glfwWindowShouldClose(window) ) {
  150.             glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  151.             vykresliGL();
  152.  
  153.             glfwSwapBuffers(window);
  154.  
  155.             glfwPollEvents();
  156.         }
  157.     }
  158.  
  159.     public static void main(String[] args) {
  160.         new cv07().spusti();
  161.     }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement