## Archive Pages Design\$type=blogging

In this post I am going to show a simple way to learn how to do Scaling in OpenGL. Scaling is a property of transformation which helps incr...

In this post I am going to show a simple way to learn how to do Scaling in OpenGL. Scaling is a property of transformation which helps increasing and decreasing the size of an object in computer graphics. The alteration in the size of object is done in each of the axis - X,Y and Z.

For Scaling in OpenGL we have inbuilt function which can be used easily on any 2d or 3d objects. The function  is -

Prototype :

void glScaled (GLdouble x,GLdouble  y,GLdouble  z);
void glScalef (GLfloat  x,GLfloat  y, GLfloat  z);

Sample :

glScalef (GLfloat  1.0f,GLfloat 0.5f , GLfloat  2.0f);

Here, in above sample code we see the function will scale the object into half in y direction, twice in z axis while remain same in x.

One thing is to be note is that - the matrix mode should be either GL_MODELVIEW or GL_PROJECTION, for object to be scaled.

Here is a sample program Which helps you understand the how the scaling works in perspective of  Opengl  computer graphics. This is simple c program, use x,y,z to scale down and X,Y,Z to increase scale factor in respective axis.

#include <gl/glut.h>

int x1 = 20.0f;
int y1 = 30.0f;
int x2 = 40.0f;
int y2 = 50.0f;
int x3 = 60.0f;
int y3 = 10.0f;

void Display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();

glBegin(GL_TRIANGLES);
glColor3f(0.0f,0.0f,1.0f);

glVertex3f(x1, y1, 0.0f);
glVertex3f(x2, y2, 0.0f);
glVertex3f(x3, y3, 0.0f);

glEnd( );
glPopMatrix();
glFlush();
}
void MyKeyboard(unsigned char key,int mouseX,int mouseY)
{
if (key == 'x')
{
glScaled (0.5f ,1.0f ,1.0f);
glutPostRedisplay();
return;
}
else if (key == 'y')
{
glScaled (1.0f ,0.5f ,1.0f);
glutPostRedisplay();
return;
}
else if (key == 'z')
{
glScaled (1.0f ,1.0f ,0.5f);
glutPostRedisplay();
return;
}
else if (key == 'X')
{
glScaled (1.5f ,1.0f ,1.0f);
glutPostRedisplay();
return;
}
else if (key == 'Y')
{
glScaled (1.0f ,1.5f ,1.0f);
glutPostRedisplay();
return;
}
else if (key == 'Z')
{
glScaled (1.0f ,1.0f ,1.5f);
glutPostRedisplay();
return;
}
else
{
glScaled (1.0f ,1.0f ,1.0f);
glutPostRedisplay();
return;
}

}

void main(int argc,char** argr)
{
glutInit(&argc,argr);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(1000,600);
glutInitWindowPosition(50,50);
glutCreateWindow("The Scaling");
glutDisplayFunc(Display);
glutKeyboardFunc(MyKeyboard);

glClearColor(0.0f,0.0f,0.0f,0.0f);
gluOrtho2D(0.0,1000.0,0.0,600.0);
glutMainLoop();
}

I think you get to know about the scaling transformation in OpenGL. For any question, query or suggestion put you comments.

Name

3D Bi-Cycle 3D Game 3D Laptop 3D Objects 3D Projects 3D Zoo Algorithm Android Aquarium Bellman-Ford Algorithm BÃ©zier curves Block Breaker Blockshooting Bucket Sort C# Chess Clock Code Blocks Colors Complex Project Complex Projects Crab Pong Cross Zero Doll DSAV Escapa Fighter Jet First Come First Serve Flag Flag Hoisting flag of usa Fluids Font Demo Games Gear Motion GlutDino Glutplane Graphics Editor iOS iPhone Java Java OpenGL Graphics Programming Light Torus Linked List Ludo Board Game Mancala board games Martyr’s Monument Memory blocks game Memory Game Menu Mickey Mouse Minesweeper Miniature Steam Engine moth Motion Blur MoveLight moving car Moving Ship Multiplex Networking Based Project Nuclear Power Plant Olympic opengl c++ examples OpenGL ES OpenGL Programming OpenGL Tutorial Origami OS Based Projects Paint Paper Folding Particles Drop Path Finding ping pong Pong Game Project Report Projects Report Puzzles qix like Queuqe Random Flowing lines Ray Rigid Body Rings Robot sample c++ opengl code Screen Saver Screen Saver Ship Shadow Cube Shadowfun Shaheed Minar Ship Iceberg Simple Drawing Simple Haloed Lined Wireframe Simple Move Light Simple Project Simulation SNAKE XENZIA GAME Solar system Sorting Space Invaders Sphere Spot Light Swing Stack Stars Taj Mahal The Edge Game Tic Tac Toe Tower of Hanoi Traffic Signal Transformation Triangular Animation Trippy Tutorial water ripple effects Whirlpool
false
ltr
item
OpenGL Projects: Scaling in OpenGL
Scaling in OpenGL
OpenGL Projects
https://www.openglprojects.in/2014/05/scaling-in-opengl.html
https://www.openglprojects.in/
https://www.openglprojects.in/
https://www.openglprojects.in/2014/05/scaling-in-opengl.html
true
2020194800836807725
UTF-8