📅  最后修改于: 2021-01-05 00:39:18             🧑  作者: Mango
在JOGL中,缩放用于增加或减小对象的大小。它操纵对象的物理尺寸。因此,通过缩放,可以从对象的任何轴拉伸或收缩对象。
要缩放对象,请使用以下语法:
glScalef(float a, float b, float c)
此处,GLMatrixFunc接口提供的glScalef()方法具有代表尺寸的参数。
在此示例中,我们将减小多边形的尺寸。
package com.javatpoint.jogl;
import javax.media.opengl.*;
import javax.media.opengl.awt.GLCanvas;
import javax.swing.JFrame;
public class JScaling implements GLEventListener {
@Override
public void display( GLAutoDrawable drawable ) {
final GL2 gl = drawable.getGL().getGL2();
gl.glScalef( 0.40f,0.30f,0.40f );
gl.glBegin(GL2.GL_QUADS);
gl.glVertex3f( 0.0f,0.5f,0);
gl.glVertex3f(-0.5f,0f,0);
gl.glVertex3f(0f,-0.5f,0);
gl.glVertex3f(0.5f,0f,0);
gl.glEnd();
}
@Override
public void dispose( GLAutoDrawable arg0 ) {
}
@Override
public void init( GLAutoDrawable arg0 ) {
}
@Override
public void reshape( GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4 ) {
}
public static void main( String[] args ) {
final GLProfile gp = GLProfile.get(GLProfile.GL2);
GLCapabilities cap = new GLCapabilities(gp);
final GLCanvas gc = new GLCanvas(cap);
JScaling js= new JScaling();
gc.addGLEventListener(js);
gc.setSize(400, 400);
final JFrame frame = new JFrame("After Scaling");
frame.add(gc);
frame.setSize(500,400);
frame.setVisible(true);
}
}
输出: