[right-side]
Dibawah ini saya berikan sebuah source code program menu garis berbasis OpenGL menggunakan bahasa pemogramman C++.
[code type="OpenGL C++"]
/*
* Copyright (c) 2018 Wisnu Dwi Pamungkas. All rights reserved.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* By Wisnu Dwi Pamungkas
*/
#include <iostream>
#include <windows.h>
#include <gl/glut.h>
#include <stdlib.h>
#include <cstdlib>
#include <conio.h>
using namespace std;
void vertikal()
{
float yver, ytii, xkal;
cout << "- Program OpenGl - Garis Vertikal - \n\n";
cout << " Ketentuan / Syarat : \n";
cout << " 1. Nilai Y Awal (Y0) & Nilai X Tetap = 0\n";
cout << " 2. Nilai Y Akhir (Y1) tidak boleh angka 0\n";
cout << "\n";
cout << "---> Masukan Nilai Y Awal (Y0) : "; cin >> yver;
cout << "---> Masukan Nilai Y Akhir (Y1) : "; cin >> ytii;
cout << "---> Masukan Nilai X Tetap : "; cin >> xkal;
if (yver != 0 or xkal != 0)
{
cout << "\n 404...ERROR!!! Gambar Garis Vertikal tidak muncul";
cout << "\n Dikarenakan...";
cout << "\n Nilai Y Awal (Y0) atau Nilai X Tetap yang dimasukan tidak sesuai dengan syarat (tidak=0)!";
cout << "\n Atau Nilai Y Akhir (Y1) = 0";
}
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 1.0);
glBegin(GL_LINES);
glVertex3f(xkal+0.5 , yver+0.5 , 0.0);
glVertex3f(xkal+0.5 , ytii+0.5 , 0.0);
glEnd();
glFlush();
}
void horizontal()
{
float xhori, xzon, ytal;
cout << "- Program OpenGl - Garis Horizontal - \n\n";
cout << " Ketentuan / Syarat : \n";
cout << " 1. Nilai X Awal (X0) & Nilai Y Tetap = 0\n";
cout << " 2. Nilai X Akhir (X1) tidak boleh angka 0\n";
cout << "\n";
cout << "---> Masukan Nilai X Awal (X0) : "; cin >> xhori;
cout << "---> Masukan Nilai X Akhir (X1) : "; cin >> xzon;
cout << "---> Masukan Nilai Y Tetap : "; cin >> ytal;
if (xhori != 0 or ytal != 0)
{
cout << "\n 404...ERROR!!! Gambar Garis Horizontal tidak muncul";
cout << "\n Dikarenakan...";
cout << "\n Nilai X Awal (X0) atau Nilai Y Tetap yang dimasukan tidak sesuai dengan syarat (tidak=0)!";
cout << "\n Atau Nilai X Akhir (X1) = 0";
}
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 1.0);
glBegin(GL_LINES);
glVertex3f(xhori+0.1 , ytal+0.1 , 0.0);
glVertex3f(xzon+0.1 , ytal+0.1 , 0.0);
glEnd();
glFlush();
}
void diagonal()
{
float xdii, yaaa, xgoo, ynal;
cout << "- Program OpenGl - Garis Diagonal - \n\n";
cout << " Ketentuan / Syarat : \n";
cout << " 1. Nilai X Awal (X0) & Nilai Y Awal (Y0) = 0\n";
cout << " 2. Nilai X Akhir (X1) & Nilai Y Akhir (Y1) tidak boleh angka 0\n";
cout << "\n";
cout << "---> Masukan Nilai X Awal (X0) : "; cin >> xdii;
cout << "---> Masukan Nilai Y Awal (Y0) : "; cin >> yaaa;
cout << "---> Masukan Nilai X Akhir (X1) : "; cin >> xgoo;
cout << "---> Masukan Nilai Y Akhir (Y1) : "; cin >> ynal;
if (xdii != 0 or yaaa != 0)
{
cout << "\n 404...ERROR!!! Gambar Garis Diagonal tidak muncul";
cout << "\n Dikarenakan...";
cout << "\n Nilai X Awal (X0) atau Nilai Y Awal (Y0) yang dimasukan tidak sesuai dengan syarat (tidak=0)!";
cout << "\n Atau Nilai X Akhir (X1) atau Nilai Y Akhir (Y1) = 0";
}
glPushMatrix();
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex3f(xdii+0.5 , yaaa+0.5 , 0.0);
glVertex3f(xgoo+0.5 , ynal+0.5 , 0.0);
glPopMatrix();
glEnd();
glFlush();
}
void Initialize()
{
glClearColor(0.5, 1.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 minput;
cout << "\n\n";
cout << "====== Menu Garis ====== \n";
cout << "1. Garis Horizontal \n";
cout << "2. Garis Vertikal \n";
cout << "3. Garis Diagonal \n";
cout << "4. Keluar dari program \n";
cout << "Masukan Pilihan kamu [1...4] : "; cin >> minput;
cout << "\n";
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(600, 200);
glutCreateWindow("Program Garis OpenGL dengan C++");
Initialize();
switch(minput)
{
case 1:
glutDisplayFunc(horizontal);
glutMainLoop();
return 0;
case 2:
glutDisplayFunc(vertikal);
glutMainLoop();
return 0;
case 3:
glutDisplayFunc(diagonal);
glutMainLoop();
return 0;
case 4:
cout << "Terima Kasih...";
return 0;
default: cout << "Menu Garis yang kamu pilih tidak tersedia, mohon pilih kembali...! \n";
goto menu;
}
}
[/code]
Dibawah ini saya berikan sebuah source code program menu garis berbasis OpenGL menggunakan bahasa pemogramman C++.
[code type="OpenGL C++"]
/*
* Copyright (c) 2018 Wisnu Dwi Pamungkas. All rights reserved.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* By Wisnu Dwi Pamungkas
*/
#include <iostream>
#include <windows.h>
#include <gl/glut.h>
#include <stdlib.h>
#include <cstdlib>
#include <conio.h>
using namespace std;
void vertikal()
{
float yver, ytii, xkal;
cout << "- Program OpenGl - Garis Vertikal - \n\n";
cout << " Ketentuan / Syarat : \n";
cout << " 1. Nilai Y Awal (Y0) & Nilai X Tetap = 0\n";
cout << " 2. Nilai Y Akhir (Y1) tidak boleh angka 0\n";
cout << "\n";
cout << "---> Masukan Nilai Y Awal (Y0) : "; cin >> yver;
cout << "---> Masukan Nilai Y Akhir (Y1) : "; cin >> ytii;
cout << "---> Masukan Nilai X Tetap : "; cin >> xkal;
if (yver != 0 or xkal != 0)
{
cout << "\n 404...ERROR!!! Gambar Garis Vertikal tidak muncul";
cout << "\n Dikarenakan...";
cout << "\n Nilai Y Awal (Y0) atau Nilai X Tetap yang dimasukan tidak sesuai dengan syarat (tidak=0)!";
cout << "\n Atau Nilai Y Akhir (Y1) = 0";
}
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 1.0);
glBegin(GL_LINES);
glVertex3f(xkal+0.5 , yver+0.5 , 0.0);
glVertex3f(xkal+0.5 , ytii+0.5 , 0.0);
glEnd();
glFlush();
}
void horizontal()
{
float xhori, xzon, ytal;
cout << "- Program OpenGl - Garis Horizontal - \n\n";
cout << " Ketentuan / Syarat : \n";
cout << " 1. Nilai X Awal (X0) & Nilai Y Tetap = 0\n";
cout << " 2. Nilai X Akhir (X1) tidak boleh angka 0\n";
cout << "\n";
cout << "---> Masukan Nilai X Awal (X0) : "; cin >> xhori;
cout << "---> Masukan Nilai X Akhir (X1) : "; cin >> xzon;
cout << "---> Masukan Nilai Y Tetap : "; cin >> ytal;
if (xhori != 0 or ytal != 0)
{
cout << "\n 404...ERROR!!! Gambar Garis Horizontal tidak muncul";
cout << "\n Dikarenakan...";
cout << "\n Nilai X Awal (X0) atau Nilai Y Tetap yang dimasukan tidak sesuai dengan syarat (tidak=0)!";
cout << "\n Atau Nilai X Akhir (X1) = 0";
}
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 1.0);
glBegin(GL_LINES);
glVertex3f(xhori+0.1 , ytal+0.1 , 0.0);
glVertex3f(xzon+0.1 , ytal+0.1 , 0.0);
glEnd();
glFlush();
}
void diagonal()
{
float xdii, yaaa, xgoo, ynal;
cout << "- Program OpenGl - Garis Diagonal - \n\n";
cout << " Ketentuan / Syarat : \n";
cout << " 1. Nilai X Awal (X0) & Nilai Y Awal (Y0) = 0\n";
cout << " 2. Nilai X Akhir (X1) & Nilai Y Akhir (Y1) tidak boleh angka 0\n";
cout << "\n";
cout << "---> Masukan Nilai X Awal (X0) : "; cin >> xdii;
cout << "---> Masukan Nilai Y Awal (Y0) : "; cin >> yaaa;
cout << "---> Masukan Nilai X Akhir (X1) : "; cin >> xgoo;
cout << "---> Masukan Nilai Y Akhir (Y1) : "; cin >> ynal;
if (xdii != 0 or yaaa != 0)
{
cout << "\n 404...ERROR!!! Gambar Garis Diagonal tidak muncul";
cout << "\n Dikarenakan...";
cout << "\n Nilai X Awal (X0) atau Nilai Y Awal (Y0) yang dimasukan tidak sesuai dengan syarat (tidak=0)!";
cout << "\n Atau Nilai X Akhir (X1) atau Nilai Y Akhir (Y1) = 0";
}
glPushMatrix();
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex3f(xdii+0.5 , yaaa+0.5 , 0.0);
glVertex3f(xgoo+0.5 , ynal+0.5 , 0.0);
glPopMatrix();
glEnd();
glFlush();
}
void Initialize()
{
glClearColor(0.5, 1.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 minput;
cout << "\n\n";
cout << "====== Menu Garis ====== \n";
cout << "1. Garis Horizontal \n";
cout << "2. Garis Vertikal \n";
cout << "3. Garis Diagonal \n";
cout << "4. Keluar dari program \n";
cout << "Masukan Pilihan kamu [1...4] : "; cin >> minput;
cout << "\n";
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(600, 200);
glutCreateWindow("Program Garis OpenGL dengan C++");
Initialize();
switch(minput)
{
case 1:
glutDisplayFunc(horizontal);
glutMainLoop();
return 0;
case 2:
glutDisplayFunc(vertikal);
glutMainLoop();
return 0;
case 3:
glutDisplayFunc(diagonal);
glutMainLoop();
return 0;
case 4:
cout << "Terima Kasih...";
return 0;
default: cout << "Menu Garis yang kamu pilih tidak tersedia, mohon pilih kembali...! \n";
goto menu;
}
}
[/code]
Post a Comment
Leave a Reply