Senin, 12 Mei 2008

SEPEDA dgn VC++

/* LINGKARAN */
#include
#include
void lingkaran(int x,int y,int jari,int r,int g,int b)
{
int x1,y1;
glPointSize(5);
float rad=3.14/180;
glColor3f(r,g,b);
glBegin(GL_POINTS);

for (int a=0;a<=360;a++)
{
x1=jari*cos(a*rad);
y1=jari*sin(a*rad);
glVertex2i(x+x1,y+y1);
}
glEnd();
}
//linkaran penuh
void lingkaran_penuh(int x,int y,int jari,int r,int g,int b)
{
float rad=3.14/180;
glColor3f(r,g,b);
glBegin(GL_POINTS);
for (int p=0;p<=jari;p++)
for (int a=0;a<=360;a++)
{
int x1=p*cos(a*rad);
int y1=p*sin(a*rad);
glVertex2i(x+x1,y+y1);
}
glEnd();
}
//ellips
void ellips (int x,int y,int jari1,int jari2,int r,int g,int b)
{
float rad=3.14/180;
glColor3f(r,g,b);
glBegin(GL_POINTS);
for (int i=0; i<=360; i++)
{
int x1=jari1*cos(i*rad);
int y1=jari2*sin(i*rad);
glVertex2f(x+x1,y+y1);
}
glEnd();
}
void ellips_stg (int x,int y,int jari1,int jari2,int r,int g,int b)
{
float rad=3.14/180;
glColor3f(r,g,b);
glBegin(GL_POINTS);
for (int i=0; i<=180; i++)
{
int x1=jari1*cos(i*rad);
int y1=jari2*sin(i*rad);
glVertex2f(x+x1,y+y1);
}
glEnd();
}
//ellips penuh
void ellips_penuh (int x,int y,int Rx,int Ry,int r,int g,int b)
{

float rad=3.14/180;
glColor3f(r,g,b);
glBegin(GL_POINTS);
for (int vx=0;vx<=Rx;vx++)
{
for (int vy=0;vy<=Ry;vy++)
{
for (int i=0; i<=360; i++)
{
int x1=vx*cos(i*rad);
int y1=vy*sin(i*rad);
glVertex2f(x+x1,y+y1);
}}}
glEnd();
}
//GARIS
void garis(int x1,int y1,int x2,int y2,int r,int g,int b)
{
glColor3f(r,g,b);
glLineWidth(3);
glBegin(GL_LINES);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glEnd();
}
void garis_tebal(int x1,int y1,int x2,int y2,int r,int g,int b)
{
glColor3f(r,g,b);
glLineWidth(5);
glBegin(GL_LINES);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glEnd();
}
void kotak(int x1,int y1,int x2,int y2,int r,int g,int b) //kotak
{
glColor3f(r,g,b);
glBegin(GL_LINES);
for(int i=y1;i<=y2;i++)
{
glVertex2i(x1,i);
glVertex2i(x2,i);
}
glEnd();
}
void userdraw()
{
lingkaran(120,150,70,1,0,0); //roda1
lingkaran(475,150,70,1,0,0); //roda2
lingkaran_penuh(300,150,30,1,0,0); //roda tengah
lingkaran(300,150,30,0,0,0); //bingkai roda tengah
lingkaran_penuh(475,150,15,0,0,0); //link dalam roda2
garis(300,180,475,165,0,0,0); //rantai atas
garis(300,120,475,135,0,0,0); //rantai bawah
garis_tebal(300,150,475,150,0,0,0); //rantai tengah
garis_tebal(300,80,300,220,0,0,0); //tangkai pedal
ellips_penuh(315,220,15,7,0,0,1); //pedal atas
ellips(315,220,15,7,0,0,0); //pedal atas
ellips_penuh(285,80,15,7,0,0,1); //pedal bawah
ellips(285,80,15,7,0,0,0); //pedal bawah
garis_tebal(120,150,195,375,0,0,0); //tangkai setir
garis_tebal(150,320,175,320,0,0,0); //tangkai lampu
ellips_penuh(143,320,7,15,1,0,1); //lampu
ellips(143,320,7,15,0,0,0); //lampu
garis_tebal(193,375,230,375,0,0,0); //setir
garis_tebal(217,379,243,379,0,0,0); //setir
garis_tebal(193,375,243,375,0,0,0); //setir
garis_tebal(217,371,243,371,0,0,0); //setir
garis_tebal(170,300,436,300,0,0,0); //talang
garis_tebal(475,150,430,325,0,0,0); //tangkai sedel
ellips_penuh(430,335,25,10,0,0,1); //sadel
ellips(430,335,25,10,0,0,0); // bingkai sadel
garis_tebal(165,275,300,150,0,0,0); //talang miring1
garis_tebal(300,150,438,285,0,0,0); //talang miring 2
garis(50,151,190,151,0,0,0); // jeruji horisontal dpn
garis(120,220,120,80,0,0,0); //jeruji vertikal dpn
garis(70,107,175,200,0,0,0); //jeruji diagonal 2
garis(70,200,170,105,0,0,0); //jeruji diagonal
garis(405,150,545,150,0,0,0); //jeruji horizontal blkg
garis(475,220,475,80,0,0,0); //jeruji vertikal blkg
garis(430,200,525,100,0,0,0); //jeruji diagonal1
garis(425,107,520,200,0,0,0); //jeruji diagonal 2
kotak(90,240,140,291,0,0,0); //keranjang 1
garis_tebal(127,290,170,290,0,0,0); //tangkai keranjang
kotak(95,245,135,286,1,1,1); //keranjang 2
garis(105,240,105,290,0,0,0); //arsiran keranjang1
garis(115,240,115,290,0,0,0); //arsiran keranjang2
garis(125,240,125,290,0,0,0); //arsiran keranjang3
ellips_stg(120,220,40,8,0,0,0); //slebor depan
ellips_stg(475,220,40,8,0,0,0); //slebor belakang
}
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("sepeda");
glClearColor(1,1,1,0.0);
gluOrtho2D(0,640,0,480);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}



Tidak ada komentar: