Chairul Azdamn

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

Mengatur Bentuk dan Warna di

OpenGL

Disusun Oleh:
Nama

: Chairul Azdaman

Nim
Kelas
Jurusan/Prodi

: 1320305079
: P3
: TIK/Prodi TMJK

PROGRAM STUDI
TEKNIK MULTIMEDIA DAN KOMPUTER
JARINGAN

1. Mewarnai Persegi dengan Open GL

#include<stdio.h>
#include<stdlib.h>
#include<GL/glut.h>
void tampil(){
glClearColor (1.0,1.0,1.0,1.0); //Memberi Warna Dasar Putih
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 0.0); // Warna Kuning
glBegin(GL_POLYGON); //Persegi Kuning
glVertex2f(0,0.5);
glVertex2f(0.5,0);
glVertex2f(0,-0.5);
glVertex2f(-0.5,0);
glEnd();
glColor3f (0.0, 0.0, 1.0);
glBegin(GL_POLYGON); //persegi biru
glVertex2f(-0.5,1);
glVertex2f(-1,0.5);
glVertex2f(-0.5,0);
glVertex2f(0,0.5);
glEnd();
glColor3f (1.0, 0.0, 0.0);
glBegin(GL_POLYGON);
glVertex2f(0.5,1);
glVertex2f(0,0.5);
glVertex2f(0.5,0);
glVertex2f(1,0.5);
glEnd();
glColor3f (0.0, 1.0, 0.0);
glBegin(GL_POLYGON);
glVertex2f(-0.5,0);
glVertex2f(-1,-0.5);
glVertex2f(-0.5,-1);
glVertex2f(0,-0.5);
glEnd();
glColor3f (1.0, 0.0, 1.0);
glBegin(GL_POLYGON);
glVertex2f(0.5,0);
glVertex2f(0,-0.5);
glVertex2f(0.5,-1);
glVertex2f(1,-0.5);
glEnd();
glFlush();
}
int main(intargc, char*argv[])
{
printf("Belajar Mewarnai dengan OpenGL");
glutCreateWindow("Kotak ");
glutDisplayFunc(tampil);
glutMainLoop();
system("PAUSE");
returnEXIT_SUCCESS;
}

Hasilnya :

2. Membuat Daun Berwarna:


#include<GL/glut.h>
void daun(){
glClear (GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS) ; //Background
glColor3f(1.0,1.0,1.0); //Warna
glVertex2f(-15,15);
glColor3f(1.0,1.0,1.0); //Warna
glVertex2f(-15,-15);
glColor3f(1.0,1.0,1.0); //Warna
glVertex2f(15,-15);
glColor3f(1.0,1.0,1.0); //Warna
glVertex2f(15,15);
glEnd();
glFlush();

Putih
Putih
Putih
Putih

glBegin(GL_TRIANGLES); //Tangkai
glColor3f(0.0,2.0,0.0); //Warna Hijau
glVertex2f(-12.5,10.5);
glColor3f(0.0,2.0,0.0); //Warna Hijau
glVertex2f(-13,10);
glColor3f(1.0,1.0,0.0); //Warna Kuning
glVertex2f(-7,8.5);
glEnd();
glFlush();
glBegin(GL_POLYGON); //Bidang 1
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(0,10);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-3,10.5);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-6,10.5);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-9,9);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-6,8);
glEnd();
glFlush();
glBegin(GL_POLYGON);//Bidang 2
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(0,10);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-6,8);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-3,6);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(8,4);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(6,6.5);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(4,8);
glEnd();
glFlush();

Hijau
Hijau
Hijau
Kuning
Kuning

Hijau
Kuning
Kuning
Hijau
Hijau
Hijau

glBegin(GL_POLYGON);//Bidang 3
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-3,6);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(3,0);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(11,-4);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(10,0);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(8,4);
glEnd();
glFlush();
glBegin(GL_POLYGON); //Bidang 4
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(3,0);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(6,-4);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(11,-7);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(11,-4);
glEnd();
glFlush();
glBegin(GL_POLYGON); //Bidang 5
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(6,-4);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(9,-9);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(10.5,-10);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(11,-7);
glEnd();
glFlush();

Kuning
Kuning
Hijau
Hijau
Hijau

Kuning
Kuning
Hijau
Hijau

Kuning
Kuning
Hijau
Hijau

glBegin(GL_POLYGON); //Bidang 6
glColor3f(1.0,1.0,0.0); //Warna Kuning
glVertex2f(9,-9);
glColor3f(0.0,2.0,0.0); //Warna Hijau
glVertex2f(10,-13);
glColor3f(0.0,2.0,0.0); //Warna Hijau
glVertex2f(10.5,-10);
glEnd();
glFlush();
glBegin(GL_POLYGON); //Bidang 7
glColor3f(1.0,1.0,0.0); //Warna Kuning
glVertex2f(9,-9);
glColor3f(0.0,2.0,0.0); //Warna Hijau
glVertex2f(9,-11);
glColor3f(0.0,2.0,0.0); //Warna Hijau
glVertex2f(10,-13);
glEnd();
glFlush();

glBegin(GL_POLYGON); //Bidang 8

glColor3f(1.0,1.0,0.0);
glVertex2f(3,0);
glColor3f(0.0,2.0,0.0);
glVertex2f(3,-8.5);
glColor3f(0.0,2.0,0.0);
glVertex2f(9,-11);
glColor3f(1.0,1.0,0.0);
glVertex2f(9,-9);
glColor3f(1.0,1.0,0.0);
glVertex2f(6,-4);
glEnd();
glFlush();

//Warna Kuning
//Warna Hijau
//Warna Hijau
//Warna Kuning
//Warna Kuning

glBegin(GL_POLYGON); //Bidang 9
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-6,8);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-5,-4);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(3,-8.5);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(3,0);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-3,6);
glEnd();
glFlush();
glBegin(GL_POLYGON); //Bidang 10
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-9,9);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-10,6);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-10,4);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-9,1);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-7,-2);
glColor3f(0.0,2.0,0.0); //Warna
glVertex2f(-5,-4);
glColor3f(1.0,1.0,0.0); //Warna
glVertex2f(-6,8);
glEnd();
glFlush();

Kuning
Hijau
Hijau
Kuning
Kuning

Kuning
Hijau
Hijau
Hijau
Hijau
Hijau
Kuning

//Tulang
glBegin(GL_LINE_STRIP);//Tulang Tengah
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(-9,9.1);
glVertex2i(-6,8);
glVertex2i(-3,6);
glVertex2i(3,0);
glVertex2i(6,-4);
glVertex2i(9,-9);
glVertex2i(10,-13);
glEnd();
glFlush();

glBegin(GL_LINES); //Tulang Daun 1


glColor3f(0.0,0.0,0.0);// Warna Hitam

glVertex2f(-6,8);
glVertex2f(-7,-2);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 2
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(-4,5.7);
glVertex2f(4,8);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 3
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(-2,5);
glVertex2f(-1.6,-6);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 4
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(0,3);
glVertex2f(9,2);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 5
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(3,0);
glVertex2f(4,-9);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 6
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(5,-2.5);
glVertex2f(11,-4);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 7
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(7,-5.7);
glVertex2f(8,-10.5);
glEnd();
glFlush();
glBegin(GL_LINES); //Tulang Daun 8
glColor3f(0.0,0.0,0.0);// Warna Hitam
glVertex2f(8,-7.4);
glVertex2f(10.7,-9);
glEnd();
glFlush();

}
int main(intargc, char*argv[])
{

glutInit(&argc, argv);
glutInitWindowPosition(350,70);
glutInitWindowSize(640,640);
glutCreateWindow("Daun Sirih");
gluOrtho2D(-15.0,15.0,-15.0,15.0);
glutDisplayFunc(daun);
glutMainLoop();
}

Hasil Program :

3. Membuat gambar Power Puff Girls


Kode Program :
#include<stdlib.h>
#include<GL/glut.h>
#include<windows.h>
#include<math.h>
constdouble PI = 3.141592653589793;
int i,jumlah_titik,x_tengah,y_tengah;
double radius;
void Powerpuffgirl(){
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);//Bulat 1
glBegin (GL_POLYGON);
radius=50;
jumlah_titik=360;
x_tengah=50;
y_tengah=50;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,0,1.0);//Bulat 2
glBegin (GL_POLYGON);
radius=40;
jumlah_titik=60;
x_tengah=50;
y_tengah=50;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,1.0,0.0);//BULAT 3
glBegin(GL_POLYGON);
radius=30;
jumlah_titik=360;
x_tengah=50;
y_tengah=50;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();

glColor3f(1.0,0.0,1.0);//Bulat 4
glBegin (GL_POLYGON);
radius=20;
jumlah_titik=360;
x_tengah=50;
y_tengah=50;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,0.49,0.0);//jubah
glBegin(GL_TRIANGLES);
glVertex3f(0.36,0.37,0.0);
glVertex3f(0.46,0.61,0.0);
glVertex3f(0.56,0.37,0.0);
glEnd();
glFlush();
glColor3f(1.0,1.0,1.0);//tgan kiri
glBegin (GL_POLYGON);
radius=3;
jumlah_titik=360;
x_tengah=63.9;
y_tengah=39;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/150,y/90);
}
glEnd();
glFlush();
glColor3f(1.0,1.0,1.0);//tgan kanan
glBegin (GL_POLYGON);
radius=3;
jumlah_titik=360;
x_tengah=75;
y_tengah=39;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/150,y/90);
}
glEnd();
glFlush();
glColor3f(1.0,0.0,0.0);
glBegin(GL_QUADS);//badan
glVertex3f(0.42,0.48,0.0);
glVertex3f(0.50,0.48,0.0);
glVertex3f(0.50,0.35,0.0);

glVertex3f(0.42,0.35,0.0);
glEnd();
glFlush();
glColor3f(1.0,0.49,0.0);//jubah bulat
glBegin (GL_POLYGON);
radius=10;
jumlah_titik=360;
x_tengah=46;
y_tengah=38;
for (i=180;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,1.0,1.0);
glBegin(GL_QUADS);//kaki kanan
glVertex3f(0.42,0.38,0.0);
glVertex3f(0.458,0.38,0.0);
glVertex3f(0.458,0.31,0.0);
glVertex3f(0.42,0.31,0.0);
glEnd();
glFlush();
glColor3f(1.0,1.0,1.0);
glBegin(GL_QUADS);//kaki kanan
glVertex3f(0.467,0.38,0.0);
glVertex3f(0.50,0.38,0.0);
glVertex3f(0.50,0.31,0.0);
glVertex3f(0.467,0.31,0.0);
glEnd();
glFlush();
glColor3f(0.0,0.0,0.0);//kaki bulat
glBegin (GL_POLYGON);
radius=2;
jumlah_titik=360;
x_tengah=44;
y_tengah=31;
for (i=180;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(0.0,0.0,0.0);//kaki bulat
glBegin (GL_POLYGON);
radius=2;
jumlah_titik=360;
x_tengah=48;
y_tengah=31;
for (i=180;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);

float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,0.0,0.0);//setengah lingkaran di kepala
glBegin (GL_POLYGON);
radius=6.5;
jumlah_titik=360;
x_tengah=47;
y_tengah=65;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,0.0,0.0);
glBegin(GL_TRIANGLES);//Pita kiri
glVertex3f(0.33,0.60,0.0);
glVertex3f(0.33,0.71,0.0);
glVertex3f(0.42,0.66,0.0);
glEnd();
glFlush();
glColor3f(1.0,0.0,0.0);
glBegin(GL_TRIANGLES);//pita kanan
glVertex3f(0.51,0.66,0.0);
glVertex3f(0.60,0.71,0.0);
glVertex3f(0.60,0.60,0.0);
glEnd();
glFlush();
glColor3f(1.0,1.0,1.0);//kepala
glBegin (GL_POLYGON);
radius=14.5;
jumlah_titik=360;
x_tengah=51;
y_tengah=74;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/110,y/130);
}
glEnd();
glFlush();

glColor3f(0.0,0.0,0.0);//mata kiri hitam


glBegin (GL_POLYGON);
radius=5;
jumlah_titik=360;

x_tengah=40;
y_tengah=57;
for (i=0;i<=jumlah_titik;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(0.0,0.0,0.0);//mata kanan hitam
glBegin (GL_POLYGON);
radius=5;
jumlah_titik=360;
x_tengah=52;
y_tengah=57;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glColor3f(1.0,1.0,1.0);//mata kanan kecil
glBegin (GL_POLYGON);
radius=1.7;
jumlah_titik=360;
x_tengah=51;
y_tengah=57;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();

glColor3f(1.0,1.0,1.0);//mata kiri kecil


glBegin (GL_POLYGON);
radius=1.7;
jumlah_titik=360;
x_tengah=41;
y_tengah=57;
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();

glColor3f(1.0,0.49,0.0);//poni
glBegin (GL_POLYGON);
radius=12;
jumlah_titik=360;
x_tengah=51;
y_tengah=81;
for (i=0;i<=180;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/110,y/135);
}
glEnd();
glFlush();

glColor3f(1.0,1.0,1.0);
glBegin(GL_TRIANGLES);
glVertex3f(0.425,0.602,0.0);
glVertex3f(0.465,0.69,0.0);
glVertex3f(0.505,0.602,0.0);
glEnd();
glFlush();
}
void Initialize(){
glClearColor(1.0,1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
int main(intiArgc, char** cppArgv){
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(200, 200);
glutInitWindowSize(230, 230);
gluOrtho2D(-150.0, 150.0, -150.0, 150.0);
glutCreateWindow("Power Puff Girl");
Initialize();
glutDisplayFunc(Powerpuffgirl);
glutMainLoop();
return 0;
}

Hasil Program :

You might also like