Code Program OpenGL menu Garis C++

[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]

source code, source, code, kode, contoh, program, contoh program, opengl, garis