Selasa, 16 Oktober 2012

Menghitung titik potong garis pada OpenGL


Untuk menentukan titik potong dua buah gagis pada C++ seperti yang terlihat pada gambar di atas.
kita mengguakan rumus matematika. yang di mana rumus tersebutlah yang nantinya akan di masukkan ke dalam program yang kita buat. Berikut ini adalah source code untuk menentukan titik potong garis, yang di mana source code ini dapat di masukkan kedalam fungsi display.

float    xa = 50,ya = 70,
         xb = 200,yb = 250,
         xc = 250,yc = 50,
         xd = 50,yd = 350,
         x,y,m1,m2,c1,c2;
         
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 1.0f);
glBegin(GL_LINES);
glVertex2f(xa, ya); 
glVertex2f(xb, yb);
glEnd();
glColor3f(0.0f, 1.0f, 0.0f);
glBegin(GL_LINES);
glVertex2f(xc, yc);
glVertex2f(xd, yd);
glEnd();

m1 = (yb-ya)/(xb-xa);
m2 = (yd-yc)/(xd-xc);
c1 = ya - (m1*xa);
c2 = yc - (m2*xc);
x=(c2-c1)/(m1-m2);
y=(m1*x)+c1;

glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_POINTS);
glVertex2f(x,y);
glEnd();



Kamis, 04 Oktober 2012

Membuat Hexagon pada OpenGL

Berikut adalah gambar dari Hexagon obat nyamuk dengan menggunakan Dev C++ pada OpenGL.






Di sini saya menggunakan rumus secara manual. Adapun rumus yang di gunakan untuk membuat hexagon di atas yaitu:
glBegin(GL_LINE_STRIP);
    glColor3f(0.0f, 0.0f, 1.0f);
    glVertex2f(10.0, 0.0);
    glVertex2f(10 * cos(2*3.14159265 * 1/6), 10 * sin(2*3.14159265*1/6));
    glVertex2f(10 * cos(2*3.14159265 * 2/6), 10 * sin(2*3.14159265*2/6));
    glVertex2f(10 * cos(2*3.14159265 * 3/6), 10 * sin(2*3.14159265*3/6));
    glVertex2f(10 * cos(2*3.14159265 * 4/6), 10 * sin(2*3.14159265*4/6));
    glVertex2f(10 * cos(2*3.14159265 * 5/6), 10 * sin(2*3.14159265*5/6));
    glVertex2f(11 * cos(2*3.14159265 * 6/6), 11 * sin(2*3.14159265*6/6));
    glEnd();

 Yang dimana 10 merupakan jari-jarinya dan 6 merupakan jumlah sudutnya.
dan untuk membuat hexagon seperti gambar di atas, rumus ini terus di ulang dengan merubah nilai jari-jari dan warna dari tiap=tiap hexagon.