- Program diatas menggunakan fungsi polygon. Dari koordinat yang digunakan
untuk program diatas dapat membentuk sebuah layang-layang dan kotak dengan 8 koordinat16 vetex.
glVertex2d50,50; kotak glVertex2d100,50;
glVertex2d100,50; glVertex2d100,100;
glVertex2d100,100; glVertex2d50,100;
glVertex2d50,100; glVertex2d50,50;
glVertex2d-50,150; layang-layang glVertex2d-50,200;
glVertex2d-50,200; glVertex2d-100,200;
glVertex2d-100,200; glVertex2d-100,150;
glVertex2d-100,150; glVertex2d-50,150;
2. OBJECT 2D
Untuk membangun sebuah bangun 2 Dimensi dengan efisien, maka diperlukan sebuah fungsi yang memiliki parameter tertentu untuk membangun bangun tersebut. Perhatikan kode program
bangun 2D dengan menggunakan fungsi berikut ini:
a. Buatlah project baru pada Visual Studio. Buatlah agar tampilan obyek 2 dimensi berbentuk persegi panjang seperti di bawah ini, gunakan primitif dan struktur vertex yang paling efisien.
Tulis program dan Tampilkan hasilnya berupa screenshot yang berupa tampilan 3 bangun dengan posisi, dimensi, dan warna yang berbeda.
Sintaks:
include stdlib.h
include glut.h
void length
int posx,
int posy,
int als,
int tgg
{ glBeginGL_QUADS;
glVertex2iposx, posy; glVertex2iposx+als , posy;
glVertex2iposx+als, posy-tgg; glVertex2iposx, posy-tgg;
glEnd; }
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glColor3f0., 0., 1.;
length0, 0, -250, 100; glColor3f0., 1., 1.;
length25, 90, -150, -50; glColor3f1., 1., 0.;
length50, 100, 150, 80; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition150, 150; glutInitWindowSize640, 440;
glutCreateWindow Latihan Dua Dimensi
; gluOrtho2D-640.0, 640.0, -320.0, 320.0;
glutDisplayFuncrenderScene; glutMainLoop;
}
Screenshoot:
Penjelasan : -
Pada program diatas saya membuat 3 buah persegi panjang dengan system koordinat yang berbeda. Dengan menggunakan fungsi posx posy, yang
dideklarasikan pada fungsi length beserta alas dan tinggi sebagai panjang sisi kanan-kiri, atas-bawah. Kemudian pada fungsi renderScene, dideklarasikan warna
yang digunakan pada bagun dua dimensi beserta titik koordinat untuk membangun dua dimensi tersebut. Untuk bangun pertama dibentuk pada
koordinat x= 0 , y=0, alas=-250, tinggi=100 dengan warna 001 yaitu biru. Untuk bangun kedua dengan koordinat x=25, y=90, alas=-150, tinggi=-50 dengan warna
011 yaitu cyan toska dan untuk bangun ketiga dibentuk pada koordinat x=50, y=100, alas=150, tinggi= 80 degan warna 110 yaitu kuning. Dengan gluOrtho 2D
system koordinat yang digunakan yaitu -640,640,-320,320 dan ukuran windows 640,440 posisi windows 150,150.
b. Buatlah project baru pada Visual Studio. Buatlah agar tampilan obyek 2 dimensi berbentuk Trapesium siku seperti di bawah ini gunakan primitif dan struktur vertex
yang paling efisien. Tulis program dan Tampilkan hasilnya berupa screenshot yang berupa tampilan 3 bangun dengan posisi, dimensi, dan warna yang berbeda.
Sintaks:
include stdlib.h
include glut.h
void trapesium
int posx,
int posy,
int alas1,
int alass,
int tinggi
{ glBeginGL_QUADS;
glVertex2iposx, posy; glVertex2iposx + alas1, posy;
glVertex2iposx + alas1 - alass3, posy + tinggi; glVertex2iposx+alass-alas1, posy+tinggi;
glEnd; }
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glColor3f0., 0., 1.;
trapesium0, 0, 130, 130, 50; glColor3f0., 1., 0.;
trapesium-150, -90, 100, 100, 75; glColor3f1., 0., 1.;
trapesium50, 75, 80,80, 40; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition150, 150; glutInitWindowSize640, 440;
glutCreateWindow LATIHAN DUA DIMENSI
; gluOrtho2D-640.0, 640.0, -320.0, 320.0;
glutDisplayFuncrenderScene; glutMainLoop;
}
Screenshoot:
Penjelasan:
- Pada program diatas , saya membuat 3 buah bangun trapezium denga 3 variasi
warna berbeda , diantaranya hijau, biru dan magentapink. Sama seperi pada bangun persegi panjang menggunakan fungsi posx, posy, namun pendeklarasian
rumus vertex berbeda dengan persegi panjang, rumus yang digunakan berbeda, sesuai dengan rumus hitung trapezium. Pada fungsi trapezium menggunakan
posx, posy sebagai x dan y, kemudian terdapat alas1, alas alas2 dan tinggi. Untuk bangun pertama dibentuk pada koordinat x=0, y=0, alas 1=130,
alas2alas=130, dan tinggi 50 dengan warna 001 yaitu biru. Bangun kedua dibentuk pada koordinat x=-150, y=-90, alas1=100, alasalas2=100 dan tinggi 75
dengan warna 010 yaitu hijau. Dan bangun ketiga dibentuk pada koordinat x=50, y=75, alas1=80, alasalas2=80 dan tinggi 40 dengan warna 101 yaitu magenta.
c. Buatlah project baru pada Visual Studio. Buatlah agar tampilan obyek 2 dimensi berbentuk Trapesium sama kaki seperti di bawah ini, gunakan primitif dan struktur
vertex yang paling efisien. Tulis program dan Tampilkan hasilnya berupa screenshot yang berupa tampilan 3 bangun dengan posisi, dimensi, dan warna yang berbeda.
Sintaks:
include stdlib.h
include glut.h
void trapesium1
int posx,
int posy,
int alas,
int alas2,
int tinggi
{ glBeginGL_QUADS;
glVertex2iposx, posy; glVertex2iposx + alas2, posy;
glVertex2iposx + alas2 - alas3, posy + tinggi; glVertex2iposx-alas22+alas, posy+tinggi;
glEnd; }
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glColor3f0., 1., 0.;
trapesium175, -150, 120, 170, 100; glColor3f0., 0., 1.;
trapesium1-170, -140, 100, 120, 90; glColor3f1., 0., 0.;
trapesium1-140, 70, 70,100, 50; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition150, 150; glutInitWindowSize640, 440;
glutCreateWindow Latihan Dua Dimensi
; gluOrtho2D-640.0, 640.0, -320.0, 320.0;
glutDisplayFuncrenderScene; glutMainLoop;
}
Screenshoot
:
Penjelasan: -
Pada program diatas saya membuat 3 buah bangun trapezium sama kaki dengan 3 warna varian berbeda dan koordinat yang berbeda. Sama dengan program
sebelumnya yaitu trapesium sejajar, namun untuk pendeklarasian fungsi posx, posy berbeda sesuai dengan rumus perhitungan trapesium sama kaki.
Perbedaannya pada perhitungan vertex terakhir untuk rumus pembentukan trapesium sama kaki. Pada fungsi renderscene dideklarasikan koordinat dan warna
yang membentuk trapesium sama kaki. Untuk bangun pertama dibentuk pada koordinta x=75, y=-150, alas=120, alas2=170 dan tinggi 100 dengan warna 010
yaitu hijau. Untuk bangun kedua dibentuk pada koordinat x=-170, y=-140, alas=100, alas2=120 dan tinggi= 90 denan warna 001 yaitu biru. Dan untuk
bangun ketida dibentuk pada koordinat x=-140, y=70, alas= 70, alas2=100 dan tinggi 50 dengan warna 100 yaitu merah.
d. Buatlah project baru pada Visual Studio. Buatlah agar tampilan obyek 2 dimensi berbentuk jajaran genjang seperti di bawah ini, gunakan primitif dan struktur vertex
yang paling efisien. Tulis program dan Tampilkan hasilnya berupa screenshot yang berupa tampilan 3 bangun dengan posisi, dimensi, dan warna yang berbeda.
Sintaks :
include stdlib.h
include glut.h
void jg
int posx,
int posy,
float alas,
int tinggi
{ glBeginGL_QUADS;
glVertex2iposx, posy; glVertex2iposx+alas , posy;
glVertex2iposx+alas-alas3, posy-tinggi; glVertex2iposx-alas3, posy-tinggi;
glEnd; }
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glColor3f1., 1., 0.;
jg-300, 150, 130, 85; glColor3f0., 0., 1.;
jg50, 150, 120, 70; glColor3f0, 1., 1.;
jg0, 0, 250, 150; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition150, 150; glutInitWindowSize640, 440;
glutCreateWindow Latihan Dua Dimensi
; gluOrtho2D-640.0, 640.0, -320.0, 320.0;
glutDisplayFuncrenderScene; glutMainLoop;
}
Screenshoot:
Penjelasan: -
Pada program diatas , menggunakan fungsi yang berbeda tentunya dengan program sebelumnya, sesuai dengan rumus perhitungan jajar genjang. Untuk
pendeklarasian system koordinat yang digunakan untuk membangun gambar 2 dimensi ini terdapat pada fungsi renderScene. Untuk bangun pertama dibentuk
dalam koordinat x=-300, y=150, alas= 130 dan tinggi=85 dengan warna 110 yaitu kuning. Kemudian untuk bangun kedua dibentuk pada koordinat x=50, y=150,
alas=120 dan tinggi=70 dengan warna biru. Dan kemudian pada bangun ketiga , dibentuk pada koordinat x=
0, y=0, alas=250, tinggi=50
degan warna 011 yaitu cyan toska.
D. TUGAS ASISTENSI