{"id":48,"date":"2015-03-22T12:41:35","date_gmt":"2015-03-22T11:41:35","guid":{"rendered":"http:\/\/liceocuneo.it\/grafica\/?page_id=48"},"modified":"2015-11-11T19:14:19","modified_gmt":"2015-11-11T18:14:19","slug":"animazione","status":"publish","type":"page","link":"https:\/\/liceocuneo.it\/grafica\/animazione\/","title":{"rendered":"Animazione"},"content":{"rendered":"<p><a href=\"https:\/\/liceocuneo.it\/grafica\/wp-content\/uploads\/sites\/43\/Scacchiera.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-49\" src=\"https:\/\/liceocuneo.it\/grafica\/wp-content\/uploads\/sites\/43\/Scacchiera.png\" alt=\"Scacchiera\" width=\"315\" height=\"335\" srcset=\"https:\/\/liceocuneo.it\/grafica\/wp-content\/uploads\/sites\/43\/Scacchiera.png 315w, https:\/\/liceocuneo.it\/grafica\/wp-content\/uploads\/sites\/43\/Scacchiera-282x300.png 282w\" sizes=\"auto, (max-width: 315px) 100vw, 315px\" \/><\/a><\/p>\n<p>La struttura di questa applicazione \u00e8 simile al triangolo, ma \u00e8 ora presente una semplice animazione: il rombo rosso si sposta verso destra alla pressione del tasto Start. La classe FPSAnimator viene\u00a0utilizzata per realizzare l&#8217;animazione;\u00a0il costruttore necessita di 3 parametri:<\/p>\n<p>FPSAnimator(GLAutoDrawable drawable, int fps, boolean scheduleAtFixedRate)<br \/>\nCreates an FPSAnimator with a given target frames-per-second value, an initial drawable to animate, and a flag indicating whether to use fixed-rate scheduling.<\/p>\n<p><strong>Main.java<\/strong><\/p>\n<pre>    GLWindow window;\r\n    FPSAnimator animator;\r\n    GLRenderer renderer;\r\n\r\n    public Main() {\r\n        initComponents();\r\n\r\n        window = GLWindow.create(new GLCapabilities(GLProfile.getDefault()));\r\n        window.setTitle(\"OpenGL prova - GLWindow\");\r\n        window.setSize(800, 600);\r\n        renderer = new GLRenderer();\r\n        window.addGLEventListener(renderer);\r\n        animator = new FPSAnimator(window, 60, true);\r\n    }<\/pre>\n<pre>    private void btnHideActionPerformed(java.awt.event.ActionEvent evt) {                                        \r\n        window.setVisible(false);\r\n    }                                       \r\n\r\n    private void btnShowActionPerformed(java.awt.event.ActionEvent evt) {                                        \r\n        window.setVisible(true);\r\n    }                                       \r\n\r\n    private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {                                         \r\n        animator.start();\r\n    }                                        \r\n\r\n    private void btnStopActionPerformed(java.awt.event.ActionEvent evt) {                                        \r\n        animator.stop();\r\n    }                                       \r\n\r\n    private void btnFullscreenActionPerformed(java.awt.event.ActionEvent evt) {                                              \r\n        window.setFullscreen(btnFullscreen.isSelected());\r\n    }<\/pre>\n<p><strong>GLRenderer.java<\/strong><\/p>\n<pre>    double a = 0.0;    \/\/ posizione iniziale del rombo\r\n\r\n    @Override\r\n    public void display(GLAutoDrawable drawable) {\r\n        GL2 gl = drawable.getGL().getGL2();\r\n\r\n        gl.glClear(GL2.GL_COLOR_BUFFER_BIT);\r\n\r\n        gl.glBegin(GL2.GL_QUADS);\r\n\r\n        \/\/ disegna i quadrati bianchi della scacchiera\r\n        gl.glColor3f(1, 1, 1);\r\n        for (int i = -4; i &lt; 4; i++) {\r\n            for (int j = -4; j &lt; 4; j++) {\r\n                if ((i + j) % 2 != 0) {\r\n                    gl.glVertex2d(i \/ 4.0, j \/ 4.0);\r\n                    gl.glVertex2d(i \/ 4.0 + 0.25, j \/ 4.0);\r\n                    gl.glVertex2d(i \/ 4.0 + 0.25, j \/ 4.0 + 0.25);\r\n                    gl.glVertex2d(i \/ 4.0, j \/ 4.0 + 0.25);\r\n                }\r\n            }\r\n        }\r\n\r\n        \/\/ disegna il rombo rosso\r\n        gl.glColor3f(1, 0, 0);\r\n        gl.glVertex2d(a - 0.1, 0.875);\r\n        gl.glVertex2d(a, 0.875 - 0.1);\r\n        gl.glVertex2d(a + 0.1, 0.875);\r\n        gl.glVertex2d(a, 0.875 + 0.1);\r\n\r\n        gl.glEnd();\r\n\r\n        a += 0.01;    \/\/ incrementa l'ascissa del rombo\r\n    }<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>La struttura di questa applicazione \u00e8 simile al triangolo, ma \u00e8 ora presente una semplice animazione: il rombo rosso si sposta verso destra alla pressione del tasto Start. La classe FPSAnimator viene\u00a0utilizzata per realizzare l&#8217;animazione;\u00a0il costruttore necessita di 3 parametri: &hellip; <a href=\"https:\/\/liceocuneo.it\/grafica\/animazione\/\">Continua a leggere<span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":40,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-48","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/pages\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":0,"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/pages\/48\/revisions"}],"wp:attachment":[{"href":"https:\/\/liceocuneo.it\/grafica\/wp-json\/wp\/v2\/media?parent=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}