/* Praktikum 05
* Scaling Objek 3D
*/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
static double xVal=xVal+0.5;
static double yVal=yVal+1.0;
static double zVal=zVal+2.5;
void drawCyl()
{
GLUquadricObj* cyl;
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluPerspective(35.0, 1.0, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
gluLookAt (30.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
//Pendefinisian color
glScalef(xVal, 1.0, 1.0); // Scaling oleh yVal dalam arah y
glScalef(1.0, yVal, 1.0); // Scaling oleh yVal dalam arah y
glScalef(1.0, 1.0, zVal); // Scaling oleh yVal dalam arah y
glScalef(xVal, yVal, zVal); // Scaling oleh yVal dalam arah y
cyl = gluNewQuadric();
gluQuadricDrawStyle(cyl, GLU_LINE);
glColor3f(1.0f, 0.0f, 0.5f);
glBegin(GL_LINE_LOOP);
glVertex3f(1.0f, 0.0f, -1.0f);
glVertex3f(5.0f, 1.0f, 0.0f);
glVertex3f(3.0f, 4.0f, 0.0f);
glEnd();
//glutWireCone(2,4,25,25);
//gluCylinder(cyl, 1.0, 1.0, , 35, 15);
glFlush();}
void display(void)
{
/* clear all pixels */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
drawCyl();
glFlush ();
}
void init (void)
{
glClearColor (0.5, 0.5, 0.5, 0.0);
glEnable(GL_DEPTH_TEST); //enabling z-buffer
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluPerspective(35.0, 1.0, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
gluLookAt (30.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
}
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
case 97:
xVal++;
glutPostRedisplay();
break;
case 98:
yVal++;
glutPostRedisplay();
break;
case 99:
zVal++;
glutPostRedisplay();
break;
case 100:
xVal=xVal+0.2;
yVal=yVal+0.2;
zVal=zVal+0.2;
glutPostRedisplay();
break;
case 101:
xVal=xVal++;
yVal=yVal++;
zVal=zVal++;
glutPostRedisplay();
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (600, 600);
glutInitWindowPosition (100, 100);
glutCreateWindow ("irhas_12018052_postest");
init ();
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
* Scaling Objek 3D
*/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
static double xVal=xVal+0.5;
static double yVal=yVal+1.0;
static double zVal=zVal+2.5;
void drawCyl()
{
GLUquadricObj* cyl;
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluPerspective(35.0, 1.0, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
gluLookAt (30.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
//Pendefinisian color
glScalef(xVal, 1.0, 1.0); // Scaling oleh yVal dalam arah y
glScalef(1.0, yVal, 1.0); // Scaling oleh yVal dalam arah y
glScalef(1.0, 1.0, zVal); // Scaling oleh yVal dalam arah y
glScalef(xVal, yVal, zVal); // Scaling oleh yVal dalam arah y
cyl = gluNewQuadric();
gluQuadricDrawStyle(cyl, GLU_LINE);
glColor3f(1.0f, 0.0f, 0.5f);
glBegin(GL_LINE_LOOP);
glVertex3f(1.0f, 0.0f, -1.0f);
glVertex3f(5.0f, 1.0f, 0.0f);
glVertex3f(3.0f, 4.0f, 0.0f);
glEnd();
//glutWireCone(2,4,25,25);
//gluCylinder(cyl, 1.0, 1.0, , 35, 15);
glFlush();}
void display(void)
{
/* clear all pixels */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
drawCyl();
glFlush ();
}
void init (void)
{
glClearColor (0.5, 0.5, 0.5, 0.0);
glEnable(GL_DEPTH_TEST); //enabling z-buffer
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluPerspective(35.0, 1.0, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
gluLookAt (30.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
}
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
case 97:
xVal++;
glutPostRedisplay();
break;
case 98:
yVal++;
glutPostRedisplay();
break;
case 99:
zVal++;
glutPostRedisplay();
break;
case 100:
xVal=xVal+0.2;
yVal=yVal+0.2;
zVal=zVal+0.2;
glutPostRedisplay();
break;
case 101:
xVal=xVal++;
yVal=yVal++;
zVal=zVal++;
glutPostRedisplay();
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (600, 600);
glutInitWindowPosition (100, 100);
glutCreateWindow ("irhas_12018052_postest");
init ();
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}