Kamis, 05 Juli 2012

Tranformasi, Translasi, Rotasi


Setelah suatu objek grafis dibangun, kita dapat melakukan transformasi terhadap objek grafis tersebut dengan berbagai cara tanpa menambahkan komponen baru apapun pada objek grafis tersebut. Ada banyak cara untuk melakukan transformasi objek grafis, tapi beberapa cara transformasi yang umum adalah :

1. Translasi : objek dipindahkan ke lokasi baru tanpa mengubah bentuk, ukuran atau orientasinya.

2. Rotasi : objek dirotasi (diputar) terhadap titik tertentu tanpa mengubah bentuk dan ukurannya

3. Scalling : objek diperbesar atau diperkecil. objek dapat diskalakan menggunakan faktor yang sama baik secara horisontal maupun vertikal sehingga proporsinya tetap atau bisa menggunakan faktor yang berbeda yang akan menyebabkan objek tersebut menjadi lebih lebih tinggi, lebih pendek, lebih tipis atau lebih tebal.

Translasi dan rotasi disebut juga sebagai rigid body transformation yaitu transformasi yang hanya mengubah posisi objek, tanpa mengubah bentuknya 

Untuk Lebih Lengkapnya Silahkan Download Disini
Membuat Objek Ellips Dengan Menggunakan Netbeans
 
Sehubungan dengan diberikannya tugas Pemrograman Komputer Grafis untuk membuat bentuk ellipse, maka kelompok kami menggunakan Java untuk membuat objek berbentuk ellipse.

Source codenya seperti berikut :

  •     Pertama kita membuat class untuk garis.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Tugas2;

import Tugas1.*;
import java.awt.Graphics;

/**
 *
 * @author JC
 */
public class Garis {
  
    public void Garisku (Graphics g, int x0, int y0, int x1, int y1){
        int dx,dy,steps;
        int x_tambah,y_tambah,x,y;
                            
        dx= x1-x0;
        dy= y1-y0;    
               
        if (Math.abs(dx) > Math.abs(dy)){
            steps = Math.abs(dx);
        }
        else{
            steps = Math.abs(dy);  
        }
        x_tambah = dx / steps;
        y_tambah = dy / steps;
                x=x0;
                y=y0;
                       
                g.fillRect(x, y, 1, 1);
        for (int k=10; k< steps ;k++){
            x += x_tambah;
            y += y_tambah;
          
                        g.fillRect(x, y, 1, 1);
        }            
       
    }
   
}

Senin, 02 Juli 2012

Membuat Kotak Dengan Basic4GL


Sehubungan dengan Tugas yang diberikan, maka kami akan membagikan hasil tugas kami, yaitu membuat kotak dengan Basic4GL. 
Inilah Source Code Kotak :

     sub Square(x0#,y0#,z0#,x1#,y1#,z1#,x2#,y2#,z2#,x3#,y3#,z3#)
     glBegin(GL_QUADS)                    
      glColor3f(1.0,0.0,0.0)  : glColor3f(1.0,0.0,0.0)  : glColor3f(1.0,0.0,0.0)  : glColor3f(1.0,0.0,0.0)
      glVertex3f(x0#,y0#,z0#) : glVertex3f(x1#,y1#,z1#) : glVertex3f(x2#,y2#,z2#) : glVertex3f(x3#,y3#,z3#)
                
     glEnd()

     end sub

Minggu, 01 Juli 2012

Membuat Garis Dengan Basic4GL














Sehubungan dengan Tugas yang diberikan, maka kami akan membagikan hasil tugas kami, yaitu membuat garis dengan Basic4GL. 

Inilah Source Code Garis :
     
     sub Line(x0#,y0#,x1#,y1#)
     glBegin(GL_LINES)
     glcolor3f(1.0,0.0,0.0) : glcolor3f(1.0,0.0,0.0)
     glvertex2f(x0#,y0#) : glvertex2f(x1#,y1#)
     glEnd()                                   
  
     end sub 

Membuat Rotasi Perputaran Matahari, Bumi, Bulan, dan Planet Lain Dengan BASIC4GL



Sehubungan dengan Tugas yang diberikan, maka akan membagikan hasil tugas kami selanjutnya, yaitu membuat rotasi perputaran siklus Matahari, Bumi, Bulan, dan Planet Lain. 



Inilah Source Code Rotasi :



Membuat Lingkaran Dengan Algoritma Bressenham



Penggambaran grafik garis lurus dan kurva memerlukan waktu komputasi yang tinggi, untuk mereduksi waktu komputasi yang tinggi tersebut dapat dilakukan dengan peningkatan kemampuan komputasi prosesor dan peningkatan efisiensi algoritma. Algoritma Midpoint merupakan Algoritma dengan dasar operasi bilangan integer, sehingga memerlukan waktu operasi yanglebih sedikit dibandingkan dengan algoritma yang menggunakan operasi bilangan riel. 

Implementasi ke dalam bahasa pemrograman C dari kedua macam algoritma diatas, menunjukkan bahwa waktu komputasi algoritma midpoint lebih cepat sebesar 8 kali pada pembuatan garis lurus, dan lebih cepat sebesar 15 kali pada penggambaran lingkaran, dibandingkan dengan waktu komputasi algoritma yang menggunakan dasar operasi bilangan riel. Dan waktu komputasi algoritma midpoint lebih cepat sebesar 6 kali pada pembuatan garis lurus, dibandingkan dengan waktu komputasi lgoritma yang Breserham telah menggunakan dasar operasi bilangan integer juga.
Kata kunci: Penggambaran garis, penggambaran kurva,
Algoritma Bresenham, Algoritma midpoint, Algoritma DDA.

Algoritma DDA Untuk Membuat Garis

Penggambaran grafik garis lurus dan kurva memerlukan waktu komputasi yang tinggi, untuk mereduksi waktu komputasi yang tinggi tersebut dapat dilakukan dengan peningkatan kemampuan komputasi prosesor dan peningkatan efisiensi algoritma. Algoritma Midpoint merupakan Algoritma dengan dasar operasi bilangan integer, sehingga memerlukan waktu operasi yanglebih sedikit dibandingkan dengan algoritma yang menggunakan operasi bilangan riel. 
Implementasi ke dalam bahasa pemrograman C dari kedua macam algoritma diatas, menunjukkan bahwa waktu komputasi algoritma midpoint lebih cepat sebesar 8 kali pada pembuatan garis lurus, dan lebih cepat sebesar 15 kali pada penggambaran lingkaran, dibandingkan dengan waktu komputasi algoritma yang menggunakan dasar operasi bilangan riel. Dan waktu komputasi algoritma midpoint lebih cepat sebesar 6 kali pada pembuatan garis lurus, dibandingkan dengan waktu komputasi lgoritma yang Breserham telah menggunakan dasar operasi bilangan integer juga.
Kata kunci: Penggambaran garis, penggambaran kurva,
Algoritma Bresenham, Algoritma midpoint, Algoritma DDA.