18
Komputer Grafik Objek Grafik 2D @ Achmad Basuki Setiawardhana 2007 Edited by nand

Grafik - 2 - Objek Grafik 2D.pptx

  • Upload
    eva

  • View
    68

  • Download
    13

Embed Size (px)

DESCRIPTION

Objek Grafik 2D.pptx

Citation preview

Page 1: Grafik - 2 - Objek Grafik 2D.pptx

Komputer Grafik

Objek Grafik 2D

@ Achmad Basuki Setiawardhana 2007 Edited by nand

Page 2: Grafik - 2 - Objek Grafik 2D.pptx

Tujuan

Mempelajari struktur dasar obyek grafik 2-D

Membangun obyek grafik 2-D

Mengenal macam-macam obyek 2-D yang menarik dan berguna, seperti pembuatan grafik untuk keperluan visualisasi dan analisa

Page 3: Grafik - 2 - Objek Grafik 2D.pptx

Materi

Definisi Obyek Grafik 2-D

PolyLine

Mewarnai Area (FillPolygon)

Membangun Obyek Grafik 2-D

Animasi 2-D

Page 4: Grafik - 2 - Objek Grafik 2D.pptx

Definisi Objek Grafik 2D

Obyek grafik 2-D adalah sekumpulan titik-titik 2D yang dihubungkan dengan garis lurus baik berupa polyline, polygon atau kurva

Obyek grafik 2D didefinisikan sebagai sekumpulan titik 2D yang secara komputasi dinyatakan sebagai array 1D, atau linked-list.

Dalam tulisan ini, dibahas obyek grafik 2D yang dinyatakan sebagai array dan antar titiknya dihubungkan dengan garis lurus (polyline)

Page 5: Grafik - 2 - Objek Grafik 2D.pptx

Langkah-Langkah Untuk Mendefinisikan Obyek Grafik 2D

Mendefinisikan struktur dari titik 2D (Point2D_t)

Mendefinisikan struktur warna (Color_t)

Mendefinisikan struktur dari obyek grafik 2-D sebagai array dari titik 2-D (Object2D_t)

Page 6: Grafik - 2 - Objek Grafik 2D.pptx

Mendefinisikan Titik 2-D

typedef struct {float x;float y;

} point2D_t;

typedef struct {int x;int y;

} point2D_t;

Definisi ini digunakan bila titik didefinisikan dalam sistem koordinat yang menggunakan bilangan pecahan (float)

Definisi ini digunakan bila titik didefinisikan dalam sistem koordinat yang menggunakan bilangan bulat (integer)

Page 7: Grafik - 2 - Objek Grafik 2D.pptx

Mendefinisikan Warna

typedef struct {float r;float g;float b;

} color_t;

Warna terdiri dari 3 elemen warna yaitu red (r), green (g) dan blue (b) yang nilainya antara 0 dan 1

void setColor(color_t col){

glColor3f(col.r, col.g, col.b);}

Fungsi untuk memberi warna pada obyek grafik:

Page 8: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

Mendefinisikan Obyek Grafik 2-D

Definisi obyek ini dapat dituliskan pada function userdraw secara langsung dengan menyatakannya sebagai array dari titik 2-D. Sebagai contoh untuk menyatakan obyek shape dapat dituliskan:

Untuk menyatakan obyek bunga dapat dituliskan:

Point2D_t shape[1000]

Point2D_t bunga[360]

Page 9: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

PolyLine

Polyline adalah suatu fungsi yang digunakan untuk menggambarkan obyek 2-D yang sudah didefinisikan di depan.void drawPolyline(point2D_t pnt[],int n){ int i; glBegin(GL_LINE_STRIP);

for (i=0;i<n;i++) { glVertex2f(pnt[i].x, pnt[i].y);}

glEnd();}

Page 10: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

PolygonPolygon adalah suatu fungsi yang mirip dengan polyline hanya saja hasilnya adalah kurva tertutup, sedangkan polyline hasilnya kurva terbukavoid drawPolygon(point2D_t pnt[],int n){ int i; glBegin(GL_LINE_LOOP);

for (i=0;i<n;i++) { glVertex2f(pnt[i].x, pnt[i].y);}

glEnd();}

Page 11: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

FillPolygon

Fungsi ini digunakan untuk mewarnai sebuah polygon dengan warna tertentuvoid fillPolygon(point2D_t pnt[],int n, color_t color){ int i; setColor(color); glBegin(GL_POLYGON);

for (i=0;i<n;i++) { glVertex2f(pnt[i].x, pnt[i].y); }

glEnd();}

Page 12: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

GradatePolygon

Fungsi ini digunakan untuk mewarnai sebuah polygon dengan warna-warna yang bergradiasi dari suatu warna ke warna lainnyavoid GradatePolygon(point2D_t pnt[],int n, color_t color){ int i; glBegin(GL_POLYGON);

for (i=0;i<n;i++) { setColor(color); glVertex2f(pnt[i].x, pnt[i].y); }

glEnd();}

Page 13: Grafik - 2 - Objek Grafik 2D.pptx

Membangun Obyek Grafik 2-D

Membangun obyek grafik 2-D dapat dilakukan dengan:

Membuat obyek grafik 2-D secara

Langsung.

Perhitungan matematis.

Page 14: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

Membuat Obyek Grafik 2-D Secara Langsung

Membuat obyek grafik 2-D secara langsung bisa dilakukan pada function userdraw() dengan menyatakan secara langsung koordinat titik-titiknyavoid userdraw(){ Point2D_t kotak[4]={{100,100},{300,100}, {300,200},{100,200}}; Polygon(kotak,4);}

Program ini digunakan untuk membuat kotak

Page 15: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

Contoh Membuat Bintangvoid userdraw(){ Point2D_t bintang[10]={{80,146},{99,90}, {157,90},{110,55},{128,1}, {80,34},{32,1},{54,55}, {3,90},{63,90}}; Polygon(bintang,10);}

My StarHasilnya adalah:

Page 16: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

Source Code#include <math.h>#include <GL/glut.h>

typedef struct {float x;float y;

} point2D_t;

typedef struct {float r;float g;float b;

} color

//==========================================================void setColor(color_t col){

glColor3f(col.r, col.g, col.b);}void drawDot(point2D_t pnt[],int n){

int i;glBegin(GL_POINTS);for (i=0;i<n;i++) {

glVertex2f(pnt[i].x, pnt[i].y);}glEnd();

}void drawPolygon(point2D_t pnt[],int n){

int i;glBegin(GL_LINE_LOOP);for (i=0;i<n;i++) {

glVertex2f(pnt[i].x, pnt[i].y);}glEnd();

}void fillPolygon(point2D_t pnt[],int n, color_t color){

int i;setColor(color);glBegin(GL_POLYGON);for (i=0;i<n;i++) {

glVertex2f(pnt[i].x, pnt[i].y);}glEnd();

}void gradatePolygon(point2D_t pnt[],color_t col[],int num){

int i;glBegin(GL_POLYGON);

for (i=0;i<num;i++) {setColor(col[i]);glVertex2f(pnt[i].x, pnt[i].y);

}glEnd();

}//==========================================================

Page 17: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

Cont..void userdraw() {

//menggambar obyek disinicolor_t warna={0.2,0.6,1.0}; setColor(warna);point2D_t bintang[10]={{80,146},{99,90},{157,90},{110,55},{128,1},{80,34},

{32,1},{54,55},{3,90},{63,90}};glLineWidth(3);drawPolygon(bintang,10);

// fillPolygon(bintang,10,warna);

}

void display(void) { glClear(GL_COLOR_BUFFER_BIT); userdraw(); glutSwapBuffers();}

int main (int argc, char ** argv) { // insert code here. glutInit(&argc,argv); //inisialisasi toolkit glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowPosition(100,100); glutInitWindowSize(800,600); glutCreateWindow("Percobaan Pertama"); glClearColor(1.0,1.0,1.0,0); gluOrtho2D(-400.,400.,-300.,300.); glutIdleFunc(display); glutDisplayFunc(display); glutMainLoop(); return 0;}

Page 18: Grafik - 2 - Objek Grafik 2D.pptx

Nand’13

Tugas

Gambarlah rumah dengan menggunakan objek 2D