Monday, November 3, 2014

GARIS PROGRAM

Membuat garis
DIAGONAL, VERTIKAL, HORIZONTAL
Dengan opengl pada C++

            Pertama kali mendapat tugas ini ane kira gampang ngerjainnya ga diduga 2 minggu pertama susahnya bukan main tapi akhirnya kelar juga walau sedikit cacat. Ane ga bakal nyediain bagai mana cara memasang opengl pada c++ karena pada dasarnya sangat mudah hanya mengistal opengl pada c++ atau semacamnya karena di blog – blog lain sudah ada. Jadi langsung aja ane kasih program dasarnya untuk membuat garis dengan BOORLAND 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 smua 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 sesuai dengan aturan BRESENHAM 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;
}
}}


Garis menu akhir pada garis vertical



















garis akhir untuk horizontal












menu akhir pada diagonal



untuk pelengkap tugas di lengkapi dengan file dari program yang di buat download di bawah


TERIMA KASIH



No comments:

Post a Comment