tugaswoi
DESCRIPTION
dfTRANSCRIPT
Animasi Perahu Layar
Kelompok 3:
SITI MUSAFIRA NISAADE RANDI
HERI ABRIANTOANDI MUKHTARAM
SUDIRMANMURTADHA
Komponen Pembuat Objek
Komponen pada pembuatan animasi perahu layar ini kebanyakan menggunakan GL_QUADS dan GL_POLYGON untuk menggambar kerangka perahu. Juga menggunakan fungsi-fungsi OpenGL lainnya seperti GL_POINTS dan GL_TRIANGLES. Terdapat sebuah perahu layar Langit dan Bintang-Bintang Laut biru
Langkah-langkah
Langkah-langkah membuat animasi perkotaan:1. Membuat Laut dan langit 2. Membuat Bintang dilangit 3. Membuat perahu, tiang dan layar4. Menetukan pewaktu dan callback display
Laut Membuat laut //laut glBegin(GL_QUADS); glColor3f(0, 0, 1); //blue glVertex2i(0, -310); glVertex2i(800, -310); glColor3f(0.372549, 0.623529, 0.623529); glVertex2i(800, -500); glVertex2i(0, -500); glEnd();
LangitLangit ini terdiri dari bintang-bintang//langit glBegin(GL_QUADS); glColor3f(0, 0, 0); glVertex2i(0, 0); glVertex2i(800, 0); glVertex2i(800, -310); glVertex2i(0, -310); glEnd();//bintang glBegin(GL_POINTS); glColor3f(1, 1, 1); glVertex2i(800, -20); glVertex2i(700, -10); glVertex2i(600, -30); glVertex2i(500, -10); glVertex2i(400, -40); glVertex2i(300, -30); glVertex2i(200, -40); glVertex2i(100, -30);
glEnd();
Perahu/Kapal
Pembuatan kapal terdiri rangka,tiang dan layar Mendefinisikan nilai x dan y untuk membuat perahu
terlihat bergerak. xx sebagai kecepatan gerak. GLint x=600,y=-500,xx=0;
void idle ialah prosedur yang mengatur pergerakan perahu.
void idle(){
xx+=1; glutPostRedisplay();
}
Rangka void kapal( int x){ y=-500; //rangka glBegin(GL_POLYGON); glColor3f (0.35, 0.16, 0.14); glVertex2i(x+240, y+90); glVertex2i(x+30, y+90); glVertex2i(x-30, y+160); glVertex2i(x+300, y+160); glEnd();
Tiang//tiang glBegin(GL_POLYGON); glColor3f (1.0, 1.0, 1.0); glVertex2i(x+140, y+160); glVertex2i(x+135, y+160); glVertex2i(x+135, y+300); glVertex2i(x+140, y+300); glEnd();
Layar //layar glBegin(GL_TRIANGLES); glColor3f (0.81, 0.71, 0.23); glVertex2i(x+140, y+300); glVertex2i(x+240, y+240); glVertex2i(x+140, y+240); glEnd();
}
Void untuk mengatur urutan tampilan objek yang telah dibuatvoid display(){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glPushMatrix(); latar(); glTranslated(-xx,0,0); kapal(50); kapal(1000); kapal(2000); kapal(3000); kapal(4000); kapal(5000); kapal(6000); kapal(7000); kapal(8000); kapal(9000); kapal(10000);
glPopMatrix(); glutSwapBuffers();}
MAIN
int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowPosition(150,150); glutInitWindowSize(800,500); glutCreateWindow("ANIMASI"); glutDisplayFunc(display); glutIdleFunc(idle); myinit(); glutMainLoop(); return 0;}
Tampilan Akhir