Rabu, 21 Oktober 2015

prak 5

/* 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;
}

0 comments:

Posting Komentar

"bayuaji-master.blogspot.com". Diberdayakan oleh Blogger.