Membuat Titik Potong Garis Di OpenGL C++

Dalam kesempatan Kali ini saya mau share gmna membuat titik Potong dari dua buah Garis....
mungkin Hal Ini sangat mudah bagi org2 yg udah tau, tetapi saya akan tetap share gmana menentukan titik Potong garis...

disini saya membuat dua garis....
kita anggap Aja Garis AB dan Garis CD...
disini Garis AB berpotongan Dengan Garis CD

dimana Garis AB terdapat Pada Titik:
A(50,70)             B(210,250)

dan Garis CD terdapat pada titik;
C(250,50)           D(60,350)

ok, Copy Paste AJa Coding Berikut.,,,


#include <windows.h>
#include <gl/Gl.h>
#include <glut.h>

float xa=50, ya=70, xb=210, yb=250,xc=250, yc=50, xd=60, yd=350, Mab,Mcd,Cab,Ccd,titik_x,titik_y;

void garis(void){
Mab = (yb-ya)/(xb-xa);
Cab = ya-(Mab*xa);

Mcd = (yd-yc)/(xd-xc);
Ccd = yc -(Mcd*xc);

titik_x = (Ccd-Cab)/(Mab-Mcd);
titik_y = (Mab*titik_x)+Cab;



glClear (GL_COLOR_BUFFER_BIT);
glBegin (GL_LINES);
glColor3f(1, 0, 0);
glVertex2i(xa,ya);                //garis AB
glVertex2i(xb,yb);

glColor3f(0, 1, 0);
glVertex2i(xc,yc);                //garis CD
glVertex2i(xd,yd);
glEnd ();
glFlush();

glBegin(GL_POINTS);
glColor3f(0, 0, 1);
glVertex2i(titik_x,titik_y);         //titik Potong
glEnd();
glFlush();
}

void display (void){
glClearColor(1,1,1,0);
glColor3f(0.0f,0.0f,0.0f);
glPointSize(10);
glLineWidth(3);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,300,0,500);
glFlush();

}

int main (int x, char** y){
glutInit(& x,y);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(200,200);
glutCreateWindow(" Titik potong ");
glutDisplayFunc(garis);
display();
glutMainLoop();
}





Output :




oke sekian dari saya
semoga Bermanfaat Bagi Yg MembutuhKAn,,,,,,,,,,,,,,,,,,



2 komentar:

Membuat Business Plan


Apa itu business plan? Business plan merupakan rancangan penyelenggaraan sebuah usaha bisnis secara menyeluruh terhadap semua aspek yang dibutuhkan dalam menjalankan sebuah usaha bisnis.
Melaui sebuah business plan yang mantap akan memberi jaminan yang lebih keseriusan dari pengelola bisnis yang bersangkutan. Business plan juga merupakan cara Anda untuk meyakinkan pihak investor atau pemberi dana hibah di perusahaan yang akan Anda buat..


langsung aja, liat Format cara Buat Business Plan....
di sini



Semoga Bermanfaat Bagi yg Membutuhkan........ =D

2 komentar:

Cara Install OpenGL di Visual Studio 2010

  • Definisi
  1. OpenGL adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran dan digunakan untuk keperluan-keperluan pemrograman grafis.
  2. OpenGL bersifat Open-Source, multi-platform dan multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi.
  3. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi (application programming interface (API) yang tidak tergantung pada piranti dan platform yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIXdan sistem operasi lainnya.
Tujuan
  1. Untuk menyembunyikan kompleksitas dari interfacing dengan berbagai 3D accelerators,
    memamerkan oleh programmer dengan satu, seragam API.
  2. Untuk menyembunyikan kemampuan yang berbeda dari hardware platform, oleh semua yang memerlukan mendukung implementasi penuh fitur openGL set .
Sejarah OpenGL
  1. OpenGL Dikembangkan oleh Silicon Graphics yang awalnya berupa GL(Glut Library). OpenGL adalah hasil dari usaha SGI untuk mengembangkan dan meningkatkan kemampuan portable IRIS.
  2. Untuk lebih mempopulerkan openGL SGI mengijinkan pihak lain untuk mengembangkan standart openGL,dan beberapa vendor menyambut hal tersebut dengan membentuk OpenGL Architecture Review Board (ARB).
  3. Pendiri openGL adalah SGI,Digital Equepment Corporation,IBM,Intel dan Microsoft,pada tanggal 1 juli 1992 OpenGL versi 1.0 diperkenalkan.
GLUT (GL Utility Toolkit)
  1. Merupakan pengembangan dari OpenGL yang didesain untuk aplikasi dengan level kecil hingga menengah dan menggunakan callback functions untuk menambahkan interaksi dari user .
  2. Merupakan library lintas platform yang membungkus fungsi-fungsi windowing dan interaksi untuk aplikasi yang berbasis openGL.
Masuk ke topik selanjutnya yaitu instalasi opengl atau glut di  system windows 64 bit
  • Siapkan library GLUT disini menggunakan glut versi 3.7.4 yang terdiri dari 3 file yaitu : glut.h, glut32.lib, dan glut32.dll .
  • Copy kan file glut.h ke C:\Program Files\Microsoft Visual Studio 10.0\VC\include\
glut.h merupakan header dari opengl itu sendiri agar program dapat di compile.
Screenshot_1
  • Copy kan file glut.lib ke C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\
          Glut32.lib merupakan library atau perpustakaan utama untuk memanggil fungsi opengl
Screenshot_2
  • Disini lah perbedaan artikel di internet yaitu install library glut di system 64 bit, copy kan file glut32.dll ke C:\Windows\sysWOW64\
Screenshot_3
         glut32.dll digunakan untuk mendukung atau compatibility terhadap aplikasi (Visual Studio 2010) dengan library opengl . 
Hint : Jika ingin install libraby di system 32 bit maka copy kan ke C:\Windows\system32\
Screenshot_4


1 komentar:

Membuat Fungsi terbilang di C#


Di Postingan sebelumnya, ane membahas gimana Membuat Fungsi Terbilang di Bahasa Pascal dan Java. tapi Kali Ini Ane mau Share gimana Membuat Fungsi Terbilang Di bahasa C#
semoga ini bermanfaat Bagi Yg Membutuhkan :)


Oke kita Langsung aja Ke Coding-nya :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project4
{
    class Class1
    {
        public static void huruf(int y) {
          string[] konversi= new string[10] {"Nol","se"," dua "," tiga ",
          " empat "," Lima "," enam "," tujuh "," delapan "," sembilan "};
          string alay = konversi[y].ToString();
          alay = alay.Replace("a","4");
          alay = alay.Replace("e","E");
          alay = alay.Replace("s", "$");
          Console.Write(alay);
            //Console.Write(konversi[y]);
        }

        public static void Main() {
            Console.WriteLine();
            Console.Write("Masukan Angka (0-10000)   : ");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine();
            Console.WriteLine("Terbilang : ");
            int b, c;
            if (a < 10000)
            {
                    if (a > 1)
                    {
                        if (a >= 1000)
                        {
                                b = a / 1000;
                                huruf(b); Console.Write("ribu ");
                                c = a % 1000;
                                a = c;
                        }
                        

                        if (a >= 100)
                        {
                            b = a / 100;
                            huruf(b); Console.Write("ratus ");
                            c = a % 100;
                            a = c;
                        }


                        if (a >= 20)
                        {
                            b = a / 10;
                            huruf(b); Console.Write("Puluh ");
                            c = a % 10;
                            a = c;
                        }

                        if (a >= 1)
                        {

                            if (a > 10)
                            {
                                b = a % 10;
                                huruf(b);
                                Console.Write("belas");
                            }

                            if (a == 10)
                            {
                                Console.Write("sepuluh");
                            }

                            if (a == 1)
                            {
                                Console.Write("Satu");

                            }

                            else huruf(a);
                        }
                    }

                else if (a == 1) {
                    Console.Write("Satu");

                }
                
                else huruf(a);
            }
            else if (a == 10000)
            {
                Console.Write("SEpuLuh RiBu");
            }

            Console.ReadKey();
        }
    }
}


Output :



Jangan Lupa Tinggalkan Jempol - nya y.. :)

2 komentar:

Membuat Progam Alay di jFrame Java

selamat malam,siang , sore agan2....sekalian :)

kali ini ane mau share, gmn buat program alay sederhana menggunakan bahasa java

program ini mencakup enskripsi, iostream dll

ane buat nya di JCreator......
oke kita langsung ngoding aja y...

pertama buat project baru, terserah mau kasih nama apa, kemudian buat  2 package terserah juga agan mau kasih nama apa, di sini ane kasih nama enkripsi dan main.
langkah selanjutnya di package enkripsi buat 3 class, di sini ane kasih nama Alay, cecar, dan class iostream.
di package main buat class dgn nama view (di gunakan untuk memanggil class2 yg lain nya).


oke,, copy kan coding di bawah ini di class Alay

package Enkripsi;
public class Alay {
public static String jadiAlay(String kalimatasli) {
        char[] huruf = new char[kalimatasli.length()];
 for (int i = 0; i < kalimatasli.length(); i++) {
            if (kalimatasli.charAt(i)=='a'||kalimatasli.charAt(i)=='A'){
                huruf[i]='4';
            }else if(kalimatasli.charAt(i)=='i'||kalimatasli.charAt(i)=='I'){
            huruf[i]='!';
            }            
            else if(kalimatasli.charAt(i)=='e'||kalimatasli.charAt(i)=='E'){
                huruf[i]='3';
                                }
               else if(kalimatasli.charAt(i)=='o'||kalimatasli.charAt(i)=='O'){
            huruf[i]='0';
            }    
            else if(kalimatasli.charAt(i)=='s'||kalimatasli.charAt(i)=='S'){
            huruf[i]='$';
            }   
            else if(kalimatasli.charAt(i)=='b'||kalimatasli.charAt(i)=='B'){
            huruf[i]='8';
            }  
            else if(kalimatasli.charAt(i)=='l'||kalimatasli.charAt(i)=='L'){
            huruf[i]='£';
            }   
            else if(kalimatasli.charAt(i)=='y'||kalimatasli.charAt(i)=='Y'){
            huruf[i]='¥';
            }  
            else{
                huruf[i]=kalimatasli.charAt(i);
            }
        }
        String alay = new String(huruf);
        return alay;
    }
    public void tampil_alay(){
    System.out.println("Kalimat alay : " + jadiAlay("aaaa"));
    }
}



kalo coding diatas telah di copy, maka langkah selanjutnya buka class iostream dan copykan coding di bawah ini :


package Enkripsi;
import main.*;
import java.io.*;
import java.util.Scanner;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JOptionPane;


public class iostream extends view {
public void writefile() {
        JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showSaveDialog(texfield_satu) == JFileChooser.APPROVE_OPTION) { }
try {
  
            File f = new File(fileChooser.getSelectedFile()+".txt");
            if (!f.exists()) {
                f.createNewFile();
                FileWriter fw = new FileWriter(f);
                BufferedWriter bw = new BufferedWriter(fw);
                
                bw.write(y.getText());
                bw.close();
                System.out.println("Program Sukses");
            } else {
                System.out.println("Nama File Sudah Ada, Masukkan kembali Alamat File !!");
            }
        } catch (Exception e) {
            System.out.println("Ada Kesalahan Saat Program Berjalan Silahkan Ulangi Program");
        }
    }
    
    
     public String open(String f) throws FileNotFoundException {
      
        String isi="";
        File file = new File(f);
        StringBuilder fileContents = new StringBuilder((int) file.length());
        Scanner scanner = new Scanner(file);
        String lineSeparator = System.getProperty("line.separator");

        try {
            while (scanner.hasNextLine()) {
           
                fileContents.append(scanner.nextLine() + lineSeparator);
            }
            isi=fileContents.toString();
        } finally {
            scanner.close();           
        }
        return isi;
    } 
}



selanjutnya copy kan coding di bawah ini pada class cecar
package Enkripsi;
import main.view;

public class cecar extends view {
public static String encode(String enc, int offset) {
offset = offset % 26 + 26;
StringBuilder encoded = new StringBuilder();
for (char i : enc.toLowerCase().toCharArray()) {
if (Character.isLetter(i)) {
int j = (i - 'a' + offset) % 26;
encoded.append((char) (j + 'a'));
} else {
encoded.append(i);
}
}
return encoded.toString();
}
}


nah untuk class view copy kan source code di bawah ini
(sedikit panjang sihhh :)     )


package main;
import Enkripsi.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;


public class view extends JFrame {
JLabel text = new JLabel();
public JTextArea texfield_satu = new JTextArea();
public JTextArea y = new JTextArea();
JButton btn_open = new JButton();
JButton btn_save = new JButton();
JButton btn_wrap = new JButton();
JButton btn_clear = new JButton("Clear");
JButton btn_proses = new JButton();
JButton btn_author = new JButton();
JRadioButton rb_alay = new JRadioButton();
JRadioButton rb_cecar = new JRadioButton();
JRadioButton rb_normal = new JRadioButton();
ButtonGroup group = new ButtonGroup();
public view(){
setTitle("Program Nge-Alay");
setSize(400,550);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setVisible(true);
add(text);
text.setText("+++ ALAY & RAHASIA2an Yuk +++");
text.setBounds(80,20,250,60);
add(texfield_satu);
texfield_satu.setBounds(20,60,350,150);
add(y);
y.setBounds(20,215,350,150);
add (btn_open);
btn_open.setText("Open");
btn_open.setBounds(20,370,80,35);
        btn_open.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
           
        JFileChooser fileChooser = new JFileChooser();            
                int userSelection = fileChooser.showOpenDialog(null);
                if (userSelection == JFileChooser.APPROVE_OPTION) {
                    File fileToOpen = fileChooser.getSelectedFile();
                    String f = fileToOpen.getAbsolutePath();
                    try {
                    iostream xx = new iostream();
                       String isi = xx.open(f);
                       texfield_satu.setText(isi);
                    } catch (FileNotFoundException ex) {
                        ex.printStackTrace();
                    }
                }        
}
        });
add (btn_save);
btn_save.setText("Save");
btn_save.setBounds(110,370,80,35);
btn_save.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent arg0) {
JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showSaveDialog(texfield_satu) == JFileChooser.APPROVE_OPTION) { }
try {
            File f = new File(fileChooser.getSelectedFile()+".txt");
            if (!f.exists()) {
                f.createNewFile();
                FileWriter fw = new FileWriter(f);
                BufferedWriter bw = new BufferedWriter(fw);       
                bw.write(y.getText());
                bw.close();
                System.out.println("Program Sukses");
            } else {
                System.out.println("Nama File Sudah Ada, Masukkan kembali Alamat File !!");
            }
        } catch (Exception e) {
            System.out.println("Ada Kesalahan Saat Program Berjalan Silahkan Ulangi Program");
        }
            }
        });
add (btn_wrap);
btn_wrap.setText("Wrap");
btn_wrap.setBounds(20,410,80,35);
btn_wrap.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                texfield_satu.setLineWrap(false);
                y.setLineWrap(false);
            }
        });
add (btn_clear);
btn_clear.setText("Clear");
btn_clear.setBounds(110,410,80,35);
btn_clear.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
texfield_satu.setText(null);
y.setText(null);
}});
add (btn_proses);
btn_proses.setText("Proses");
btn_proses.setBounds(240,450,80,35);
btn_proses.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String tampil = texfield_satu.getText();
   int n=0;
                for (int i = 0; i < tampil.length() ; i++) {
                    if (tampil.charAt(i) == 'a' || tampil.charAt(i) == 'A'||tampil.charAt(i)=='i'||tampil.charAt(i)=='I'||
                            tampil.charAt(i)=='u'||tampil.charAt(i)=='U'||tampil.charAt(i)=='e'||tampil.charAt(i)=='E'||
                            tampil.charAt(i)=='o'||tampil.charAt(i)=='O'){
                n++;
            }
        }
        int vokal_alay=0; 
        
        String lihat = (cecar.encode(" "+texfield_satu.getText(),3));
   int m=0;
        for (int j = 0; j < lihat.length() ; j++) {
                    if (lihat.charAt(j) == 'a' || lihat.charAt(j) == 'A'||lihat.charAt(j)=='i'||lihat.charAt(j)=='I'||
                            lihat.charAt(j)=='u'||lihat.charAt(j)=='U'||lihat.charAt(j)=='e'||lihat.charAt(j)=='E'||
                            lihat.charAt(j)=='o'||lihat.charAt(j)=='O'){
                m++;
            }
        }

        
       if(rb_normal.isSelected()){
 y.setText(" "+texfield_satu.getText());
 
} else if(rb_cecar.isSelected()){
y.setText(" "+cecar.encode(" "+texfield_satu.getText(),3)+"\n\n panjang Karakter Kalimat Asli "+tampil.length()
+"\n dan jumlah huruf vokal kalimat asli "+n
+"\n\n panjang kalimat setelah di dienkripsi "+tampil.length()
+"\n jumlah huruf vokal setelah dienkripsi "+m );
} else if(rb_alay.isSelected()) { 
y.setText(" "+Alay.jadiAlay(" "+texfield_satu.getText())+"\n\n panjang Karakter Kalimat Asli "+tampil.length()
+"\n dan jumlah huruf vokal kalimat asli "+n
+"\n\n panjang kalimat setelah di dienkripsi "+tampil.length()
+"\n jumlah huruf vokal setelah dienkripsi "+vokal_alay);
}
}
});
add (rb_alay);
rb_alay.setText("Alay");
rb_alay.setBounds(200,370,50,40);
add (rb_cecar);
rb_cecar.setText("cecar");
rb_cecar.setBounds(280,370,70,40);
add (rb_normal);
rb_normal.setText("Normal");
rb_normal.setBounds(240,410,70,40);
group.add(rb_alay);
group.add(rb_cecar);
group.add(rb_normal);
add (btn_author);
btn_author.setText("Author");
btn_author.setBounds(20,450,80,35);
btn_author.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                texfield_satu.setText("Created by : \n\n1. Wasis Pancoro 672012210");              
                     }
        });

public static void main(String args[]) {
new view();
}
}




sekarang coba build dan run
pastikan langkah awal sampai akhir benar
maka output nya seperti berikut :

 


oke sekian dari ane....
terima kasih telah berkunjung....
jangan lupa tinggalin jempol nya...... :)

1 komentar:

Membuat Konversi Terbilang di Pascal

Berikut contoh membuat Konversi terbilang di Pascal.........

Semoga Bermanfaat,...... :)



uses crt;

procedure huruf(a:integer);
begin
case a of
1:write(' se');
2:write(' dua ');
3:write(' tiga ');
4:write(' empat ');
5:write(' lima ');
6:write(' enam ');
7:write(' tujuh ');
8:write(' delapan ');
9:write(' sembilan ');
end;
end;

procedure proses;
var i,j,x:integer;
begin
readln(x);
writeln;

gotoxy(15,9);
write('Terbilang :');
if x<10000 then
begin
 if x>=1 then
 begin
    if x>=1000 then
    begin
    i:=x div 1000;
    huruf(i);write('ribu');
    j:=x mod 1000; x:=j;
    end;

    if x>=100 then
    begin
    i:=x div 100;
    huruf(i);write('ratus');
    j:=x mod 100; x:=j;
    end;

    if x div 10=1 then
    begin
       if x mod 10=0 then
       begin
       write('sepuluh');
       end
       else
       begin
       i:=x mod 10;
       huruf(i);
       write('belas');
       end;
    end;

    if x>=20 then
    begin
    i:=x div 10;
    huruf(i);write('puluh');
    j:=x mod 10; x:=j;
    end;

    if x<10 then
    begin
       if x=1 then
       begin
       write(' satu');
       end
       else
       begin
       huruf(x);
       end;
    end;
 end
 else
 writeln('Sorry!! angka belum dapat dikonversikan');
end
else
begin
writeln('Sorry!! angka belum dapat dikonversikan');
end;
end;

procedure ulang;
var lagi:char;
begin
repeat
gotoxy(15,2); write('.............................................');
gotoxy(15,3); write('...        Program Konversi Angka         ...');
gotoxy(15,4); write('... Angka masukkan diantara 1 sampai 9999 ...');
gotoxy(15,5); write('.............................................');
gotoxy(15,7); write('Masukkan angka yang akan anda konversi : ');
proses;

gotoxy(15,14);write('Ingin konversi lagi(y/t) ');
read(lagi);
clrscr;
until lagi='t';

end;

procedure anim;
var i,j:integer;
begin
for j:=1 to 5 do
begin
gotoxy(25,9); writeln('-------------------------------------');
gotoxy(25,10);  write('   -- ');
gotoxy(50,10);  write('        --');
gotoxy(25,11);writeln('--                                 --');
gotoxy(25,12);writeln('-- PLEASE WAIT.........            --');
gotoxy(25,13);writeln('--                                 --');
gotoxy(25,14);writeln('-- created, WASIS PANCORO 672012210--');
gotoxy(25,15);writeln('-------------------------------------');
gotoxy(29,10);

        for i:=1 to 30 do
        begin
        delay(70);
        textColor(i);
        write(#220);
        end;
        clrscr;

end;
end;
begin
clrscr;
anim;
ulang;
end.




output :






terima kasih sudah berkunjung,,,,,,,
semoga bermanfaat....
tinggalin jempolnya y.... :)

0 komentar:

Copyright © 2013 Gagal Coding