Kamis, 01 Mei 2008

Puck Up menggunakan Open GL C++


#include
#include

void lingkaran (int x, int y, int j, float r, float g, float b)
{
float rad=3.14/180;
glPointSize(2);
glColor3f(r,g,b);
glBegin(GL_POINTS);
for(int p=0;p<=j;p++)
{
for (int a=0;a<=360;a++)
{
int x1=p*cos(a*rad);
int y1=p*sin(a*rad);
glVertex2f(x+x1,y+y1);
}
}
glEnd();
}

void setengah_ling (int x,int y, int j, float r, float g, float b)
{
float rad=3.14/180;
glPointSize(2.5);
glColor3f(r,g,b);
glBegin(GL_POINTS);
for (int a=0;a<=180;a++)
{
int x1=j*cos(a*rad);
int y1=j*sin(a*rad);
glVertex2f(x+x1,y+y1);
}
glEnd();
}

void tembereng (int x,int y,int j,float r,float g,float b)
{
float rad=3.14/180;
glPointSize(2);
glColor3f(r,g,b);
glBegin(GL_POINTS);
for (int a=0;a<=90;a++)
{
int x1=j*cos(a*rad);
int y1=j*sin(a*rad);
glVertex2f(x+x1,y+y1);
}
glEnd();

}

void kotak (int x1, int y1,int x2,int y2, float r, float g, float b)
{
glColor3f(r,g,b);
glBegin(GL_LINES);
for(int i=y1;i
{
glVertex2i(x1,i);
glVertex2i(x2,i);
}
glEnd();
}

void userdraw()
{
lingkaran(420,180,20,0.13,0.24,0.63);//depan box
lingkaran(40,168,10,0.13,0.24,0.63);//belakang box
kotak(40,144,420,264,0.08,0.15,0.40);//box_alas
kotak(200,264,320,364,0.13,0.24,0.63);//kaca belakang_alas
tembereng(320,264,100,0.13,0.24,0.63);
lingkaran(120,144,50,0,0,0);//roda belakang
lingkaran(300,144,50,0,0,0);//roda depan
setengah_ling(120,144,60,0,0,0);//setengah lingkaran roda belakang
setengah_ling(300,144,60,0,0,0);//setengah lingkaran roda depan

}

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("LingkaraN_ElipS");
glClearColor(1,1,1,0.0);

gluOrtho2D(0,640,0,480);

glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}


0 komentar: