Membuat garis
DIAGONAL, VERTIKAL, HORIZONTAL
Dengan opengl pada C++
#include
<windows.h>
#include
<iostream.h>
#include
<gl/gl.h>
#include
<stdio.h>
#include
<gl\glu.h>
#include
<gl\glaux.h>
#include
<gl\glut.h>
void
sumbu(){
glPushMatrix();
glBegin(GL_LINES);
glVertex3f(0,0,0.0);
glVertex3f(0,1,0.0);
glVertex3f(0,0,0.0);
glVertex3f(1,0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glPopMatrix();
glEnd();
glFlush();
}
void
Diagonal()
{
float
a,b,c,d;
cout<<"Masukkan
Xo :";
cin>>a;cout<<"Masukkan
Yo :";
cin>>b;cout<<"Masukkan
X1 :";
cin>>c;cout<<"Masukkan
Y1 :";
cin>>d;
glPushMatrix();
glBegin(GL_LINES);
glVertex3f(a+0.5,b+0.5,0.0);
glVertex3f(c+0.5,d+0.5,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glPopMatrix();
glEnd();
glFlush();
}
Pada
garis diagonal semua korrdinat berubah karena yang ingin diambil adalah garis
miring.
void
Horizontal()
{
float
e,f,g;
cout<<"Masukkan
X Awal:";cin>>e;
cout<<"Masukkan
X Akhir:";cin>>f;
cout<<"Masukkan
Y tetap:";cin>>g;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINES);
glVertex3f(e+0.1,g+0.1,0.0);
glVertex3f(f+0.1,g+0.1,0.0);
glEnd();
glFlush();
}
Pada
garis horizontal koordinat y tetap, dan koordinat x berubah, maka akan
terbuatlah garis miring
void
Vertikal()
{
float
x,y,z;
cout<<"Masukkan
Yawal :";cin>>x;
cout<<"Masukkan
Yakhir:";cin>>y;
cout<<"Masukkan
Xtetap:";cin>>z;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINES);
glVertex3f(z+0.5,x+0.5,0.0);
glVertex3f(z+0.5,y+0.5,0.0);
glEnd();
glFlush();
}
Pada garis vertical koordinat x tetap, dan y yang
berubah sesuai dengan titik awal sampai titik y akhir. Maka akan terbuatlah
garis lurus
void
initialize()
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
int
main(int iArgc,char** cppArgv) {
menu:
int j;
cout<<"-----MENU----\n";
cout<<"1.Garis
vertikal\n";
cout<<"2.Garis
Horizontal\n";
cout<<"3.Garis
Diagonal\n";
cout<<"4.Exit\n";
cout<<"------------------\n";
cout<<"Masukkan
pilihan anda:";cin>>j;
cout<<"\n";
glutInit(&iArgc,
cppArgv);
glutInitDisplayMode(GLUT_SINGLE
| GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(600,200);
glutCreateWindow("OpenGL
with C++");
initialize();
while
(j<=4){
switch(j){
case 1:
glutDisplayFunc(Vertikal);
glutMainLoop();
return
0;
case 2:
glutDisplayFunc(Horizontal);
glutMainLoop();
return
0;
case 3:
glutDisplayFunc(Diagonal);
glutMainLoop();
return
0;
default:
cout<<"anda
salah memasukkan";
goto
menu;
}
}}
Tidak ada komentar:
Posting Komentar