Anda di halaman 1dari 12

TRANSFORMASI TRANSLASI

Program 6 Translasi
#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,0.5);

// Gambar kotak pertama di sudut kiri bawah


glRecti(0,0, 10, 10);
//translasi ke 20, 20
glTranslated(20.0, 20.0, 0);
glRecti(0,0, 10, 10);

glFlush();
}

void myinit()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,50.0,0.0,50.0);
glMatrixMode(GL_MODELVIEW);
glClearColor(1.0,1.0,1.0,1.0);
glColor3f(0.0,0.0,0.0);
}
void kunci(unsigned char key, int x, int y)
{
switch (key)
{
/* aplikasi berhenti ketika tombol q ditekan */
case 27 : case 'q': exit(0); break;
}
glutPostRedisplay();
}

int main(int argc, char* argv[])


{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("Transform BY DIANZEFRI");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
myinit();
glutMainLoop();
return 0;
}
Hasilnya adalah

3.3 Percobaan Translasi


3.3.1 Modifikasi parameter glTranslated,
#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,0.5);

// Gambar kotak pertama di sudut kiri bawah


glRecti(0,0, 10, 10);
//translasi ke 20, 20
glTranslated(10.0, 30.0, 0);
glRecti(0,0, 20, 10);

glFlush();
}

void myinit()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,50.0,0.0,50.0);
glMatrixMode(GL_MODELVIEW);
glClearColor(1.0,1.0,1.0,1.0);
glColor3f(0.0,0.0,0.0);
}
void kunci(unsigned char key, int x, int y)
{
switch (key)
{
/* aplikasi berhenti ketika tombol q ditekan */
case 27 : case 'q': exit(0); break;
}
glutPostRedisplay();
}

int main(int argc, char* argv[])


{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("Transform Dian Zefri 13210076");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
myinit();
glutMainLoop();
return 0;
}

Hasilnya adalah:

3.3.2 memberikan warna Merah dan warna biru untuk hasil translasi.
#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,1.0,0.0);
// Gambar kotak pertama di sudut kiri bawah
glRecti(0,0, 10, 10);
//translasi ke 20, 20
glTranslated(20.0, 20.0, 0);
glRecti(0,0, 10, 10);
glFlush();
}
void myinit()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,50.0,0.0,50.0);
glMatrixMode(GL_MODELVIEW);
glClearColor(1.0,1.0,1.0,1.0);
glColor3f(1.0,0.0,0.0);
}
void kunci(unsigned char key, int x, int y)
{
switch (key)
{
/* aplikasi berhenti ketika tombol q ditekan */
case 27 : case 'q': exit(0); break;
}
glutPostRedisplay();
}
int main(int argc, char* argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("Transform BY DIANZEFRI");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
myinit();
glutMainLoop();
return 0;
}
Hasil Gmbar :

4.3 Tugas Translasi


4.3.1 Buat checker board 8 x 8 kotak dengan menggunakan glTranslate.

#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>
bool yaya=false;
void tampilsimbol(int i)
{
if(i%2==0)
{
glColor3f(0.0f,1.0f,1.4); //warna putih
}
else
{
glColor3f(0.0f,0.0f,0.0f);
} // warna hitam
glBegin(GL_QUADS);//buat persegi warna putih/hitam
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
glColor3f(0.0f, 1.0f, 0.0f); //warna merah
glBegin(GL_LINE_STRIP); //buat garis segiempat
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
if(i%2==1)
{
glColor3f(0.0f,1.0f,1.0f); //warna putih
}
else
{
glColor3f(1.0f,0.0f,0.0f);
}
// warna hitam
glBegin(GL_TRIANGLES); //buat objek
glVertex2d(5,8);
glVertex2d(8,2);
glVertex2d(2,2);//simbol segitiga
glEnd();
glFlush();
}

void tampilsimbol2(int i)
{
if(i%2==0)
{
glColor3f(1.0f,1.0f,1.0f); //warna putih
}
else
{
glColor3f(0.0,1.0,1.0);
} // warna hitam
glBegin(GL_QUADS);//buat persegi warna putih/hitam
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
glColor3f(1.0f, 0.0f, 0.0f); //warna merah
glBegin(GL_LINE_STRIP); //buat garis segiempat
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
if(i%2==1)
{
glColor3f(1.0f,0.0f,1.0f); //warna putih
}
else {glColor3f(0.0f,0.0f,0.0f);
} // warna hitam
glBegin(GL_TRIANGLES); //buat objek
glVertex2d(5,1);
glVertex2d(8,8);
glVertex2d(2,8);//simbol segitiga

glEnd();
glFlush();
}

void tampil0(int i)
{
if(i%2==0){
glColor3f(1.0f,1.0f,1.0f); //warna putih
}
else
{
glColor3f(0.0f,0.0f,0.0f);
}
// warna hitam
glBegin(GL_QUADS);
//buat persegi warna putih/hitam
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
glColor3f(1.0f, 0.0f, 0.0f); //warna merah
glBegin(GL_LINE_STRIP); //buat garis segiempat
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
if(i%2==1)
{
glColor3f(1.0f,1.0f,1.0f); //warna putih
}
else
{
glColor3f(0.0f,0.0f,0.0f);
} // warna hitam
glBegin(GL_QUADS); //buat objek
glVertex2d(3,1);
glVertex2d(5,1);
glVertex2d(5,2);
glVertex2d(3,2);//1
glVertex2d(4,2);
glVertex2d(5,2);
glVertex2d(5,8);
glVertex2d(4,8);//
glEnd();
glFlush();
}

void tampil8(int i)
{
if(i%2==0)
{
glColor3f(1.0f,1.0f,1.0f);
//warna putih
}
else
{
glColor3f(0.3,0.0,1.0);
} // warna hijau
glBegin(GL_QUADS);
//buat persegi warna putih/hitam
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();

glColor3f(0.1f, 0.0f, 0.0f);


//warna merah
glBegin(GL_LINE_STRIP);
//buat garis segiempat
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
if(i%2==1)
{
glColor3f(1.0f,1.0f,1.0f);
//warna putih
}
else
{
glColor3f(1.0f,0.0f,0.0f);
}
// warna hitam
glBegin(GL_QUADS);
//buat objek

glVertex2d(2,1);
glVertex2d(3,1);
glVertex2d(3,4);
glVertex2d(2,4);//

glVertex2d(2,1);
glVertex2d(6,1);
glVertex2d(6,2);
glVertex2d(2,2);//

glVertex2d(2,4);
glVertex2d(7,4);
glVertex2d(7,5);
glVertex2d(2,5);//

glVertex2d(6,1);
glVertex2d(7,1);
glVertex2d(7,8);
glVertex2d(6,8);//

glEnd();
glFlush();
}

void tampil5(int i)
{
if(i%2==0)
{
glColor3f(1.0,1.0,0.0); //
}
else
{
glColor3f(0.0f,0.0f,0.0f);
} // warna hitam
glBegin(GL_QUADS);
//buat persegi warna putih/hitam
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
glColor3f(1.0f, 0.0f, 0.0f);
//warna merah
glBegin(GL_LINE_STRIP);
//buat garis segiempat
glVertex2d(0,0);
glVertex2d(0,10);
glVertex2d(10,10);
glVertex2d(10,0);
glEnd();
if(i%2==1)
{
glColor3f(0.0f,1.0f,1.0f); //warna putih
}
else
{
glColor3f(1.0f,0.0f,0.0f);
}
// warna hitam
glBegin(GL_QUADS); //buat objek
glVertex2d(2,1);
glVertex2d(7,1);
glVertex2d(7,2);
glVertex2d(2,2);//0
glVertex2d(2,2);
glVertex2d(3,2);
glVertex2d(3,7);
glVertex2d(2,7);//
glVertex2d(2,7);
glVertex2d(7,7);
glVertex2d(7,8);
glVertex2d(2,8);//
glVertex2d(6,8);
glVertex2d(7,8);
glVertex2d(7,2);
glVertex2d(6,2);

glEnd();
glFlush();
}

void init (void)


{
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 10.0, 10.0, 0.0);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

void catur(void)
{
int x=1;
for(int i=0;i<8;i++)
{
for(int j=0;j<9;j++)
{
x++;
glViewport(i*45, j*45, 45, 45);
if(x%4==0)
{
tampil5(x);
}
else if(x%4==2)
{
tampil0(x);
}
else if(x%4==3)
{
tampil8(x);
}
else if(x%4==1)
{
tampilsimbol(x);
}
}
}
}

void catur2(void)
{
int x=1;
for(int i=0;i<8;i++)
{
for(int j=0;j<9;j++)
{
x++;
glViewport(i*45, j*45, 45, 45);
if(x%4==0)
{
tampil5(x);
}
else if(x%4==2)
{
tampil0(x);
}
else if(x%4==3)
{
tampil8(x);
}
else if(x%4==1)
{
tampilsimbol2(x);
}
}
}
}
void kunci(unsigned char key, int x, int y)
{
switch (key)
{
case 'z' :
yaya=!yaya;
glutIgnoreKeyRepeat(yaya);
if (yaya)
glutDisplayFunc(catur2);
else
glutDisplayFunc(catur);
break;
}
glutPostRedisplay();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (360, 360); //Ukuran window
glutCreateWindow ("DIAN ZEFRI PAPAN CATUR");
glutDisplayFunc(catur);
init ();
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;}
Hasilnya adalah:

Anda mungkin juga menyukai