JOGL - स्केलिंग

यह अध्याय आपको JOGL का उपयोग करके किसी वस्तु के आकार को बढ़ाने या घटाने का तरीका सिखाता है।

का उपयोग करके किसी वस्तु को स्केलिंग किया जाता है glScalef(float x, float y, float z) उसकि विधि GLMatrixFuncइंटरफेस। यह विधि तीन फ्लोटिंग पॉइंट पैरामीटर को स्वीकार करती है, जिसके उपयोग से हम क्रमशः x, y और z axes के साथ स्केल कारकों को निर्दिष्ट करते हैं।

उदाहरण के लिए, निम्नलिखित कार्यक्रम में, एक त्रिकोण 50% तक कम हो जाता है। यहां, मान 50 को सभी अक्षों के साथ पैरामीटर के रूप में पारित किया गया है।

हमें प्रोग्राम के माध्यम से एक त्रिकोण बनाने के लिए जाना -

import javax.media.opengl.GL2; 
import javax.media.opengl.GLAutoDrawable; 
import javax.media.opengl.GLCapabilities; 
import javax.media.opengl.GLEventListener; 
import javax.media.opengl.GLProfile; 
import javax.media.opengl.awt.GLCanvas; 

import javax.swing.JFrame;
 
public class Scaling implements GLEventListener {
 
   @Override 
	
   public void display( GLAutoDrawable drawable ) { 
   
      final GL2 gl = drawable.getGL().getGL2(); 
      gl.glScalef( 0.50f,0.25f,0.50f ); 
      gl.glBegin( GL2.GL_TRIANGLES );
		
      // Drawing Using Triangles 
      gl.glColor3f( 1.0f, 0.0f, 0.0f );   // Red 
      gl.glVertex3f( 0.5f,0.7f,0.0f );    // Top 
		
      gl.glColor3f( 0.0f,1.0f,0.0f );     // blue 
      gl.glVertex3f( -0.2f,-0.50f,0.0f ); // Bottom Left 
		
      gl.glColor3f( 0.0f,0.0f,1.0f );     // green 
      gl.glVertex3f( 0.5f,-0.5f,0.0f );   // Bottom Right 
		
      gl.glEnd(); 
   }
   
   @Override 
   public void dispose( GLAutoDrawable arg0 ) { 
      //method body 
   } 
   
   @Override 
   public void init( GLAutoDrawable arg0 ) { 
      // method body 
   } 
   
   @Override 
   public void reshape( GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4 ) { 
      // method body 
   }
   
   public static void main( String[] args ) {   
   
      //getting the capabilities object of GL2 profile 
      final GLProfile profile = GLProfile.get( GLProfile.GL2 ); 
      GLCapabilities capabilities = new GLCapabilities(profile);
        
      // The canvas  
      final GLCanvas glcanvas = new GLCanvas( capabilities ); 
      Scaling scaling = new Scaling(); 
      glcanvas.addGLEventListener( scaling ); 
      glcanvas.setSize( 400, 400 );  

      //creating frame 
      final JFrame frame  = new JFrame (" Dimnished Triangle (Scaling )");   

      //adding canvas to it 
      frame.getContentPane().add(glcanvas); 
      frame.setSize(frame.getContentPane().getPreferredSize()); 
      frame.setVisible(true);         
      
   } //end of main 
	
} //end of classimport javax.media.opengl.GL2;

उपरोक्त कार्यक्रम को संकलित करने और निष्पादित करने पर, हमें निम्नलिखित आउटपुट मिलते हैं। यहां, आप त्रिभुज.राजवा द्वारा निर्मित मूल त्रिकोण की तुलना में एक कम त्रिकोण का निरीक्षण कर सकते हैं -