Nama : Salahuddin
Kelas :B
NIM : 070 310 079
Animasi 2 Dimensi
C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek, seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan karena bahasa ini memiliki beberapa kompiler yang berbeda. Ada empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP. Setiap kompiler ini agak berbeda. Setiap kompiler akan dapat menjalankan fungsi fungsi standar C++ ANSI/ISO, tetapi masing masing kompiler juga akan dapat menjalankan fungsi fungsi nonstandard. Kadang kadang pemakaian fungsi nonstandard akan menimbulkan masalah pada saat anda hendak mengkompilasi kode sumber data (source code) (yaitu program berbahasa C++ yang ditulis oleh seorang programer) mempergunakan kompiler yang berbeda.
Dalam tugas ini tidak terlepas dari masalah seperti itu. Sebuah kompiler sederhana sudah cukup untuk dipergunakan seperti tugas minggu lalu (Tugas 1). Bahasa pemrograman C++ adalah bahasa yang amat berbeda. Untuk kompiler C++ berbasis DOS, akan memerlukan beberapa kata kunci ; keyword sendiri tidak cukup untuk difungsikan sebagai input dan output.
Pada tugas yang ke dua ini saya mencoba membuat dua buah model bintang dengan variasi warna yang berbeda. Pada source kode di bawah saya juga membuat keterangan sebagai fungsi2 dari soure kode tersebut.
Berikut adalah souce kodenya
#include <stdio.h>
#include <stdlib.h>
#include <glut.h>
void userdraw(void);
void drawDot(float x, float y)
{
glBegin(GL_POINTS);
glVertex2f(x,y);
glEnd();
}
void drawLine(float x1, float y1, float x2, float y2)
{
glBegin(GL_LINES);
glVertex2f(x1,y1);
glVertex2f(x2,y2);
glEnd();
}
void setColor(float red,float green,float blue)
{
glColor3f(red, green, blue);
}
void userdraw(void)
{
setColor(0.,1.,0.);
//bintang ijoooooo
drawLine(18.,78.,42.,156.);
drawLine(42.,156.,69.,78.);
drawLine(69.,78.,3.,126.);
drawLine(3.,126.,84.,126);
drawLine(84.,126.,18.,78.);
setColor(0.,2.,1.);
//bintang pink
drawLine(78.,99.,102.,168.);
drawLine(102.,168.,123.,99.);
drawLine(123.,99.,66.,144.);
drawLine(66.,144.,138.,141.);
drawLine(138.,141.,78.,99.);
setColor(0.,0.,1.);
//bintang biru tua
drawLine(135.,123.,153.,174.);
drawLine(153.,174.,168.,123.);
drawLine(168.,123.,126.,156.);
drawLine(126.,156.,180.,156);
drawLine(180.,156,135.,123.);
setColor(0.,1.,2.);
//bintang biru
drawLine(177.,141.,192.,180.);
drawLine(192.,180.,204.,141.);
drawLine(204.,141.,171.,165.);
drawLine(171.,165.,213.,165.);
drawLine(213.,165.,177.,141.);
setColor(1.,1,1.);
//bintang black alias hitam
drawLine(210.,156.,222.,183.);
drawLine(222.,183.,228.,156.);
drawLine(228.,156.,207.,171.);
drawLine(207.,171.,234.,171.);
drawLine(234.,171.,210.,156.);
setColor(0.,1,0.);
//Menulis nama dengan drawLine / Huruf U
drawLine(50.,60.,50.,50.);
drawLine(50.,50.,60.,50.);
drawLine(60.,50.,60.,60.);
setColor(1.,0,1.);
// Huruf D
drawLine(70.,60.,65.,60.);
drawLine(65.,60.,65.,50.);
drawLine(65.,50.,70.,50.);
drawLine(70.,50.,75.,53.);
drawLine(75.,53.,75.,58.);
drawLine(75.,58.,70.,60.);
setColor(0.,0,1.);
//Menulis nama dengan drawLine / Huruf I
drawLine(80.,60.,80.,50.);
setColor(0.,1,2.);
//Menulis nama dengan drawLine / Huruf N
drawLine(85.,50.,85.,60.);
drawLine(85.,60.,95.,50.);
drawLine(95.,50.,95.,60.);
setColor(0.,0.,0.);
drawLine(55,10,159,145);
drawLine(130,230,130,61);
drawLine(205,10,101,145);
drawLine(10,145,177,93.7);
drawLine(250,145,83.5,93.7);
setColor(1.,0.,1.);
drawLine(55,10,83.5,93.7);
drawLine(101,145,130,230);
drawLine(130,230,159,145);
drawLine(177,93.7,205,10);
drawLine(205,10,130,61);
drawLine(10,145,83.5,93.7);
drawLine(250,145,159,145);
drawLine(10,145,101,145);
drawLine(250,145,177,93.7);
drawLine(55,10,130,61);
setColor(0.,2.,0.);
drawLine(130,230,145,220);
drawLine(145,220,174,145);
drawLine(250,145,265,135);
drawLine(265,135,192,83.7);
drawLine(192,83.7,220,0);
drawLine(55,10,70,0);
drawLine(205,10,220,0);
drawLine(70,0,145,51);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glFlush();
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB| GLUT_SINGLE);
glutInitWindowSize(650, 500);
glutInitWindowPosition(100, 150);
glutCreateWindow("Draw Line");
glClearColor(0.1, 0.1, 0.1, 1.1);
gluOrtho2D(0., 500., 0.1, 200.0);
glutDisplayFunc(display);
}