grafika1

84
Grafika Grafika Komputer Komputer Achmad Basuki Group Riset Computer Vision dan Pattern Recognition Politeknik Elektronika Negeri Surabaya

description

Grafika 1

Transcript of grafika1

  • GrafikaGrafika KomputerKomputer

    Achmad BasukiGroup Riset Computer Vision dan Pattern Recognition

    Politeknik Elektronika Negeri Surabaya

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tujuan Perkuliahan

    Mahasiswa dapat membuat program untuk membangun grafik 2D dan 3D menggunakan bahasa pemrogramanC++ dan grafik library OpenGL.

    Mahasiswa dapat menerapkan prinsip-prinsip dasar grafika komputer untukkeperluan visualisasi, animasi dansimulasi pada bidang ilmu lainnya.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Ide Dasar Grafika Komputer

    Grafika komputer adalah suatu bidang ilmuyang mempelajari bagaimanamembangun grafik (gambar) baik 2D maupun 3D yang kelihatan nyatamenggunakan komputer.

    Salah satu bidang grafika komputer yang sangat terkenal adalah Desain Grafis.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Apa Grafika Komputer?

    Grafika komputer adalah caramembuat gambar atau grafikyang menggunakan komputer.

    Aplikasi Grafika komputermerupakan perangkat (tool) dasaryang digunakan untuk membuatgambar dengan komputer.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Beberapa Penerapan Grafika Komputer

    Entertainment, misalnya dalam pembuatan film animasi. Terminator II dan Titanic merupakan contohfilm non animasi yang memanfaatkan efek-efekgrafika komputer yang sangat canggih.

    Visualisasi Proses dan hasil penelitian, misalnyamenggambarkan layout kinerja proses pabrik, proses-proses yang dalam modul ajar, grafik performance, grafik perubahan bahkan grafik model hasil simulasidan implementasi program.

    Bersama-sama dengan image processing digunakansebagai algoritma identifikasi, seperti yang dilakukanpada kepolisian untuk menggambarkan wajahseseorang secara 3D dan identifikasi seseorang.

    GIS (Geographic Information System) Masil banyak yang lainnya.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Apakah Beda Gambar Dan Photo ?Ini adalah pertanyaan dasar dalam membangun gambar secara nyata

    PHOTOGAMBAR

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Beda Gambar Dan Photo ?

    Photo merupakan gambar yang dihasilkandengan proses capture dari kegiatan nyata. Hasilnya setiap detail akan muncul, misalnyajumlah kumis pada kucing sama.

    Gambar adalah proses pembentukangambar yang dilakukan dengan menirukegiatan nyata. Hasilnya ada beberapadetail yang tidak dapat ditampilkan. Siapayang peduli pada jumlah kumis pada kucingpada saat menggambar?

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Macam-Macam gambar Komputer

    Raster Image, adalah gambar yang strukturnyaberupa matrik. Dimana setiap titik (x,y) mempunyainilai berupa warna sesuai dengan model warnayang digunakan seperti RGB atau CYMK. File dengan ekstensi BMP, GIF, TIFF, JPG dan PNG merupakan contoh dari Raster Image. Model gambar semacam ini digunakan dalam Image Processing.

    Vector Image, adalah gambar yang strukturnyaberupa vektor. Gambar yang dibuat menggunakanAutoCAD, 3D studio Max atau Maya, atau gambar-gambar pada GIS merupakan contoh dari Vector Image. Model gambar semacam ini digunakandalam Grafika Komputer dan GIS.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Materi Dasar Grafika Komputer

    Primitive Drawing Obyek Grafik 2D Transformasi 2D Obyek Grafik 3D Transformasi 3D Shading dan Optical View Z-order dan Z-buffer Morphing

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Primitive Drawing Menggambar obyek-obyek dasar grafik yang

    berupa: titik, garis, polyline, polygon. Memberikan warna pada obyek grafik

    misalkan dengan setcolor, fillpolygon, gradatepolygon.

    Polyline

    Polygon

    FillPolygon

    GradatePolygon

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Obyek Grafik 2D

    Struktur data obyek grafik 2D, dalamhal ini digunakan bentuk struktur (type data record) dan array.

    Menggambar obyek grafik 2D denganstruktur data yang sudah ditentukan.

    Bab ini membahas bagaimana membangun obyek grafik 2D

    typedef struct {float x,y;

    } point2D_t;

    point2D_t P[3];drawPolygon(P,3);

    Implementasi :Definisi struktur :

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Transformasi 2D Macam-macam transformasi 2D, seperti

    Translasi (pindah), Rotasi (berputar) dan Scaling (berubah ukuran).

    Model Matrik Transformasi. Perubahan Struktur Data Point2D ke Vektor2D

    dan sebaliknya. Implementasi tranformasi 2D

    translasi

    rotasi

    scaling

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Obyek Grafik 3D

    Sistem Koordinat 3D Struktur data obyek grafik 3D

    menggunakan struktur (tipe data record) untuk titik 3D, face (sisi), dan array.

    Mengambar obyek grafik 3D sesuai denganstruktur data yang sudah ditentukan.

    Bab ini membahas bagaimana membangun obyek grafik 3D

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Struktur Data Obyek Grafik 3D

    typedef struct {float x,y,z;

    } point2D_t;

    Definisi struktur titik 3D:

    titik3D

    Face

    typedef struct {int NumberofPoint;int p[32];

    } face_t;

    Definisi struktur face :

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Transformasi 3D Macam-macam transformasi 3D, seperti

    Translasi (pindah), Rotasi (berputar), Scaling (berubah ukuran) dan Perspektif.

    Model Matrik Transformasi 3D. Perubahan Struktur Data Point3D ke Vektor3D

    dan sebaliknya. Implementasi tranformasi 3D

    RotasiTranslasi

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Shading dan Optical View

    Wire-Frame Pewarnaan Pada Face Dasar-dasar Optival View Flat Shading Garoud Shading

    Flat Shading Garoud Shading

    View vector

    Light vector

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Z-order dan Z-buffer

    Obyek 1 Obyek 2

    Bila obyek 1 digambarkan terlebihdahulu baru obyek 2 maka hasilnyaadalah sebagai berikut:

    Jika obyek 2 ternyata lebih jauhdari titik mata, apa yang terjadi?

    Pada Z-order atau Z-buffer, obyek yang posisinya lebih jauh

    harus digambarkan terlebihdahulu dengan mengurutkan

    obyek berdasarkan posisi z-nya.

    Salah satu teknik dalam melukisadalah menggambar obyek yang

    posisinya jauh dilanjutkan smapaiobyek yang posisinya paling dekat

    agar pada saat pewarnaan tidak adawarna yang hilang (Afandi)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    MorphingVisualisasi perubahan obyek gambar menjadi obyek gambaryang lain yang dilakukan secara perlahan sehinggamenimbulkan efek yang dinamakan dengan morphing.

  • Workshop 1

    Pemrograman Grafis Dengan OpenGL

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Perangkat Yang Dibutuhkan

    Komputer PC Sistem Operasi Microsoft Windows, Unix,

    Mac OS atau Linux Bahasa C++: menggunakan Microsoft

    Visual C++ untuk sistem operasi MS-Windows, CodeX untuk Mac OS dang++ untuk sistem operasi Linux.

    Open-GL, sebagai library untuk grafikakomputer.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    OpenGL

    OpenGL adalah library yang khususmenyediakan perangkat-perangkatpembuatan grafik.

    OpenGL bekerja dalam bahasa C OpenGL dapat bekerja pada

    beberapa platform, seperti SGI, Unix, dan Windows

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Instalasi OpenGL for Windows

    Ada 3 file penting dalam OpenGL yang akandigunakan dalam sistem operasi MS-Windows, yaitu glut.h, glut32.lib dan glut32.dll

    Letakkan glut.h di direktori include padaVisual C (vc98/include)

    Letakkan glut32.lib di direktori lib pada Visual C (vc98/lib)

    Letakkan glut32.dll di direktoriwindows/system untuk windows 98, windows/system32 untuk windows 2000 danwindows XP

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Struktur Dasar Program OpenGL#include void userdraw(){static int tick=0;//program grafik ditulis disini}void display(void){glClear(GL_COLOR_BUFFER_BIT);userdraw();glutSwapBuffers();}int main(int argc, char **argv){glutInit(&argc,argv);glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutInitWindowPosition(100,100);glutInitWindowSize(640,480);glutCreateWindow(Drawing By Achmad Basuki");glClearColor(1.0,1.0,1.0,0.0);gluOrtho2D(0.,640.,-240.,240.);glutIdleFunc(display);glutDisplayFunc(display);glutMainLoop();return 0;}

    Header glut.h dari OpenGL

    Tempat program untukmenggambar

    Fungsi manipulasi layar

    Program utama yang digunakanuntuk mendefinisikan sistemgrafis yang dipakai

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Statement Manipulasi Grafis

    glutInitWindowPosition(100,100);glutInitWindowSize(640,480);

    Membuat windows dengan ukuran(640,480) dengan titik kiri atas jendeladiletakkan pada posisi (100,100) di layarkomputer

    glutCreateWindow(Drawing By Achmad Basuki");Memberi judul pada windows denganDrawing By Achmad Basuki

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Statement Manipulasi Grafis

    glClearColor(1.0,1.0,1.0,0.0);Mendefinisikan warna dari windows yang dibuat dengan warna (1,1,1) yaitu warnaputih

    gluOrtho2D(0.,640., 0.,480.);Mendefinisikan besarnya sistem koordinatdengan range sumbu x adalah [0,640] dan range untuk sumbu y adalah [-0,480]

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Sistem Koordinat

    Drawing Windows

    (0,0)x

    y (640,480)

    (640,0)

    (0,480)

  • Workshop 2

    Primitive Drawing

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Polyline

    Polyline adalah dereten garis-garis lurusyang berhubungan. Polyline ini adalah dasardari setiap pembuatan grafik.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Filled Region

    Filled-Region adalah bagaimana memberi(memblok) warna atau pattern pada sebuahluasan

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Raster Image

    Raster image adalah penyajian gambarmenggunakan matrik dari setiap sel gambar, dimana sebuah gambar didefinisikan sebagaiarray dari besar-besaran numeris.

    1 1 1 1 11 0 0 0 11 0 2 0 11 2 0 2 12 0 1 0 2

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Menggambar Titik

    Untuk menggambar titik di posisi (x,y) dimanax dan y didefinisikan sebagai bilangan bulat(integer) digunakan

    glVertex2i(x,y) Untuk menggambar titik di posisi (x,y) dimana

    x dan y didefinisikan sebagai bilanganpecahan (float/double) digunakan

    glVertex2f(x,y)glVertex2d(x,y)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh 1: Menggambar TitikglBegin(GL_POINTS);

    glVertex2i(100,50);glVertex2i(100,130);glVertex2i(150,130);

    glEnd();My first Drawing

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh 2: Menggambar Galaksiint n;float x,y;glBegin(GL_POINTS);for(n=0;n

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Menggambar Garis

    Untuk membuat garis diperlukan library GL_LINES dengan menyatakan titik awaldan titik akhir dari garis.

    glBegin(GL_LINES);glVertex2i(100,100);glVertex2i(200,150);

    glEnd();

    My first drawing

    (100,100)

    (200,150)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Gridfloat x,y;for(x=0;x

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Polyline

    Polyline adalah sekumpulan garis yang terhubung satu dengan yang lainnyahingga membentuk sebuah obyekgambar. Pembuatannya menggunakanlibrary GL_LINE_STRIP

    glBegin(GL_LINE_STRIP);glVertex2i(x1,y1);glVertex2i(x2,y2);glVertex2i(x3,y3);glVertex2i(xn,yn);

    glEnd();

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Polyline

    glBegin(GL_LINE_STRIP);glVertex2i(100,100);glVertex2i(200,150);glVertex2i(300,50);

    glEnd();

    My first drawing

    (100,100)

    (200,150)

    (300,50)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Polygon

    Polygon adalah sekumpulan garis yang terhubung satu dengan yang lainnya danberbentuk kurva tertutup hingga membentuksebuah obyek gambar. Pembuatannyamenggunakan library GL_LINE_LOOP

    glBegin(GL_LINE_LOOP);glVertex2i(x1,y1);glVertex2i(x2,y2);glVertex2i(x3,y3);glVertex2i(xn,yn);

    glEnd();

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Polygon

    glBegin(GL_LINE_LOOP);glVertex2i(100,100);glVertex2i(200,150);glVertex2i(300,50);

    glEnd();

    My first drawing

    (100,100)

    (200,150)

    (300,50)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Pewarnaan

    glColor3f(red,green,blue);

    Red,green,blue bervariasi diantara 0. S/d 1.glColor3f(0.,0.,0.);//blackglColor3f(0.,0.,1.);//blue glColor3f(0.,1.,0.);//greenglColor3f(0.,1.,1.);//cyan glColor3f(1.,0.,0.);//red glColor3f(1.,0.,1.);//magenta glColor3f(1.,1.,0.);//yellowglColor3f(1.,1.,1.);//white

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tugas 1Membuat Rumah Dari Primitive Drawing

    My House

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tugas 2Membuat TV Dari Primitive Drawing

    My TV

  • Workshop 3

    Obyek Grafik 2D

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Struktur Data Titik 2D Titik didefinisikan dalam sistem koordinat yang menggunakan

    bilangan pecahan (float)

    Titik didefinisikan dalam sistem koordinat yang menggunakanbilangan bulat (integer)

    Obyek 2D adalah array dari titik-titik 2D

    typedef struct {float x;float y;

    } point2D_t;

    typedef struct {int x;int y;

    } point2D_t;

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Struktur Data Warna

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

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

    } color_t;

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Mengubah Warna

    Tanpa struktur data warna

    Dengan struktur data warnavoid setColor(color_t col){

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

    void setColor(float r, float g, float b){

    glColor3f(r, g, b);}

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Membuat Titik

    void drawDot(float x, float y){

    glBegin(GL_POINTS);glVertex2f(x,y);glEnd();

    }

    Tanpa struktur data

    void drawDot(point2D_t p){

    glBegin(GL_POINTS);glVertex2f(p.x,p.y);glEnd();

    }

    Dengan struktur data

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Membuat Garis

    void drawLine(float x1,float y1,float x2,float y2){

    glBegin(GL_LINES);glVertex2f(x1,y1);glVertex2f(x2,y2);

    glEnd();}

    Tanpa Struktur Data

    void drawLine(point2D_t p1,point2D_t p2){

    glBegin(GL_LINES);glVertex2f(p1.x,p1.y);glVertex2f(p2.x,p2.y);

    glEnd();}

    Dengan Struktur Data

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Grid Berwarnafloat x,y;for(x=0;x

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Membuat Polyline

    void drawPolyline(point2D_t pnt[],int n){

    int i;glBegin(GL_LINE_STRIP);

    for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Membuat Polygon

    void drawPolyline(point2D_t pnt[],int n){

    int i;glBegin(GL_LINE_LOOP);

    for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Membuat fillPolygon

    void fillPolyline(point2D_t pnt[],int n, color_t col){

    int i;setColor(col);glBegin(GL_POLYGON);

    for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Fungsi Membuat gradatePolygon

    void gradatePolyline(point2D_t pnt[],int n, color_t col[]){

    int i;glBegin(GL_POLYGON);

    for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Kotak 1

    void userdraw(){ point2D_t kotak[4]={{100,100},{300,100},

    {300,200},{100,200}};setColor(1,1,0);drawPolygon(kotak,4);

    }Program ini menghasilkan kotak yang garisnya berwarnakuning.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Kotak 2

    void userdraw(){ point2D_t kotak[4]={{100,100},{300,100},

    {300,200},{100,200}};color_t magenta={0,1,1};fillPolygon(kotak,4,magenta);

    }Program ini menghasilkan kotak yang isinya berwarna magenta.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Bintang

    void 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 Star

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Kotak 3

    void userdraw(){ point2D_t kotak[4]={{100,100},{300,100},

    {300,200},{100,200}};color_t magenta={0,1,1};fillPolygon(kotak,4,magenta);setColor(1,1,0);drawPolygon(kotak,4);

    }Program ini menghasilkan kotak yang isinya berwarna magenta dan garis tepinya berwarna kuning.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Grafik Koordinat Polar

    Dengan persamaan matematik y=f(x) dapatdigambarkan kurva dengan variasi bentuk yang menarik seperti sinus, cosinus, exponential danlogaritma, atau fungsi gabungannya. Bentukpersamaan matematik yang menarik untuk dibuatadalah persamaan matematik denganmenggunakan sistem koordinat polar.

    )sin(.)cos(.

    )(

    ryrxfr

    === adalah sudut yang berjalan dari 0 s/d

    360 yang dinyatakan dalam radian (0 s/d 2p). Macam-macam r=f() dapatmenghasilkan gambar yang bervariasi.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Konsep Koordinat Polar

    0 360

    r r

    0 360

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Beberapa Fungsi Polar

    r=sin() Lingkaranr=sin(2) Rose 4 daunr=sin(3) Rose 3 daunr=sin(n) Rose n daun bila n bilangan primar= Spiral

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Contoh: Membuat Lingkaranvoid userdraw(){ point2D_t kotak[90];

    int i; float s;for(i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Animasi

    Membuat obyek grafik 2-D menjadibergerak.

    Animasi yang dilakukan adalahmemindahkan posisi gambar.

    Pada sistem koordinat kartesian animasiakan berefek gerakan linier (translasi), pada sistem koordinat polar akanberefek gerakan berputar (rotasi)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Pembuatan Animasi

    Pada main() ditambahkan fungsiglutIdleFunc(display) sebelum fungsiglutDisplayFunc(display).

    Pada awal fungsi userdraw() didefinisikanstatic int tick

    Pada akhir fungsi userdraw() ditambahkanperintah untuk menambah nilai tick secaraterus menerus dengan tick++.

    Tambahkan nilai tick ini pada nilai variabeldasar pembuatan grafik

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tugas 1Membuat Rumah Dari Primitive Drawing

    My House

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tugas 2Membuat TV Dari Primitive Drawing

    My TV

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tugas 3Membuat gambar roda dari Logo ITS dengan fungsi koordinat polar

  • Workshop 4

    Transformasi 2D

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Struktur Data Titik Dan Vektor

    Struktur data dari titik 2D

    typedef struct {float x,y;

    } point2D_t;

    typedef struct {float v[3];

    } vector2D_t;Struktur data dari vektor 2D

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Konversi Titik vs Vektor

    v[0] xv[1] yv[2] 1

    vektor 2D

    titik 2D

    Point2Vector Vector2Point

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Point2VectorFungsi ini digunakan untuk konversi struktur data titik menjadi struktur data vektor

    vector2D_t point2vector(point2D_t pnt){

    vector2D_t vec;vec.v[0]=pnt.x;vec.v[1]=pnt.y;vec.v[2]=1.;

    }

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Vector2PointFungsi ini digunakan untuk konversi struktur data vektor menjadi struktur data titik

    point2D_t vector2point(vector2D_t vec){

    point2D_t pnt;pnt.x=vec.v[1];pnt.y=vec.v[2];

    }

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tranformasi

    Transformasi adalah proses untuk memindah, memutar dan mengubah skala dari obyekgambar

    Transformasi dari obyek gambar X denganperubahan T yang hasilnya Y ditulis dengan:

    Y = T . X T adalah matrik transformasi yang berukuran

    3x3. Y adalah vektor hasil transformasi dan X adalah vektor dari obyek gambar.

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Matrik Identitas

    =

    100010001

    I

    matrix2D_t createIdentity(void) {matrix2D_t u;int i,j;for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Translasi

    P(x,y)

    P(x,y)

    dx

    dy

    Matrik transformasi:

    Proses transformasi:

    =

    3

    2

    1

    3

    2

    1

    1001001

    vvv

    dd

    vvv

    y

    x

    =

    1001001

    y

    x

    dd

    T

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Matrik Translasi

    matrix2D_t translationMTX(float dx,float dy){

    matrix2D_t trans=createIdentity();trans.m[0][2]=dx;trans.m[1][2]=dy;return trans;

    }

    =

    1001001

    y

    x

    dd

    T

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Scaling

    x

    y

    P(x,y)

    P(x,y)

    mx.x

    my.y

    Matrik transformasi:

    Proses transformasi:

    =

    3

    2

    1

    3

    2

    1

    1000000

    vvv

    mm

    vvv

    y

    x

    =

    1000000

    y

    x

    mm

    T

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Matrik Scaling

    =

    1000000

    y

    x

    mm

    T

    matrix2D_t scalingMTX(float mx,float my){

    matrix2D_t scale=createIdentity();scale.m[0][0]=mx;scale.m[1][1]=my;return scale;

    }

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Rotasi

    x

    y

    P(x,y)

    P(x,y)

    Matrik transformasi:

    Proses transformasi:

    =

    3

    2

    1

    3

    2

    1

    1000)cos()sin(0)sin()cos(

    vvv

    vvv

    =

    1000)cos()sin(0)sin()cos(

    T

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Membuat Matrik Rotasi

    =

    1000)cos()sin(0)sin()cos(

    T

    matrix2D_t rotationMTX(float theta){

    matrix2D_t rotate=createIdentity();float cs=cos(theta);float sn=sin(theta);rotate.m[0][0]=cs; rotate.m[0][1]=-sn;rotate.m[1][0]=sn; rotate.m[1][1]=cs;return rotate;

    }

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Perkalian Matrik

    Perkalian matrik dengan matrik menghasilkanmatrik, digunakan untuk proses komposisitransformasi (transformasi yang lebih dari satuperubahan)

    Perkalian matrik dengan vektor menghasilkanvektor, digunakan untuk menghitung prosestransformasi sehingga diperoleh titik baru hasiltransformasi

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Perkalian Matrik vs Matrik

    =

    =2

    0kkjikij bac

    matrix2D_t operator * (matrix2D_t a, matrix2D_t b){

    matrix2D_t c;//c=a*bint i,j,k;for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Perkalian Matrik vs Vektor

    =

    =2

    0kkiki bac

    vector2D_t operator * (matrix2D_t a, vector2D_t b){

    vector2D_t c;//c=a*bint i,j;for (i=0;i

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Komposisi Transformasi

    Kompisisi transformasi adalah menggabungkanbeberapa tranformasi, sehingga dapatmenghasilkan bentuk transformasi yang lebihkompleks

    Komposisi tranformasi dapat dilakukan denganmengalikan matrik-matrik transformasi

    Translasi(d,0)

    Rotasi()

    Translasi(d,0)

    Rotasi()

    T=Translasi(d,0). Rotasi(q) T= Rotasi(q) .Translasi(d,0)

  • Laboratorium Computer Vision, Jurusan Teknologi InformasiPoliteknik Elektronika Negeri Surabaya PENS-ITS

    Tugas 1: Orbit Bumi dan Bulan

    Grafika Komputer Tujuan PerkuliahanIde Dasar Grafika Komputer Apa Grafika Komputer?Beberapa Penerapan Grafika KomputerApakah Beda Gambar Dan Photo ?Beda Gambar Dan Photo ?Macam-Macam gambar KomputerMateri Dasar Grafika KomputerPrimitive Drawing Obyek Grafik 2DTransformasi 2DObyek Grafik 3DStruktur Data Obyek Grafik 3DTransformasi 3DShading dan Optical ViewZ-order dan Z-bufferMorphingWorkshop 1Perangkat Yang DibutuhkanOpenGLInstalasi OpenGL for WindowsStruktur Dasar Program OpenGLStatement Manipulasi GrafisStatement Manipulasi GrafisSistem KoordinatWorkshop 2PolylineFilled RegionRaster ImageMenggambar TitikContoh 1: Menggambar TitikContoh 2: Menggambar GalaksiMenggambar GarisMembuat GridMembuat PolylineContoh: Membuat PolylineMembuat PolygonContoh: Membuat PolygonPewarnaanTugas 1Tugas 2Workshop 3Struktur Data Titik 2DStruktur Data WarnaFungsi Mengubah WarnaFungsi Membuat TitikFungsi Membuat GarisContoh: Grid BerwarnaFungsi Membuat PolylineFungsi Membuat PolygonFungsi Membuat fillPolygonFungsi Membuat gradatePolygonContoh: Membuat Kotak 1Contoh: Membuat Kotak 2Contoh: Membuat BintangContoh: Membuat Kotak 3Grafik Koordinat PolarKonsep Koordinat PolarBeberapa Fungsi PolarContoh: Membuat LingkaranAnimasiPembuatan AnimasiTugas 1Tugas 2Tugas 3Workshop 4Struktur Data Titik Dan VektorKonversi Titik vs VektorPoint2VectorVector2PointTranformasiMembuat Matrik IdentitasTranslasiMembuat Matrik TranslasiScalingMembuat Matrik ScalingRotasiMembuat Matrik RotasiPerkalian MatrikPerkalian Matrik vs MatrikPerkalian Matrik vs VektorKomposisi TransformasiTugas 1: Orbit Bumi dan Bulan