Minggu, 08 April 2012

Truk Bergerak C++ Tugas Grafika Komputer

dibawah ini adalah script C++ OpenGL untuk Truk Bergerak, semoga bermanfaat buat teman-teman.


#include <stdio.h>
#include <math.h>
#include <glut.h>
typedef struct {
float x,y;
} c2k;
typedef struct {
float m[3][3];
} matrix2D_t;

typedef struct {
float v[3];
} vector2D_t;

typedef struct {
float x;
float y;
} point2D_t;

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

matrix2D_t createIdentity(void)
{
matrix2D_t u;
int i,j;
for (i=0;i<3;i++) {
for(j=0;j<3;j++) u.m[i][j]=0.;
u.m[i][i]=1.;
}
return u;
}
void drawLingkaran(c2k p[],int n){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(int i=0;i<n;i++)
glVertex2f(p[i].x,p[i].y);
glEnd();
}
static float tick;
c2k ban[360];
c2k ban3[360];
double srad,r;
matrix2D_t translationMTX(float dx,float dy)
{
matrix2D_t trans=createIdentity();
trans.m[2][2]=dx;
trans.m[1][2]=dy;
return trans;
}

point2D_t Vector2Point(vector2D_t vec)
{
point2D_t pnt;
pnt.x=vec.v[1];
pnt.y=vec.v[2];
return pnt;
}

vector2D_t Point2Vector(point2D_t pnt)
{
vector2D_t vec;
vec.v[0]=pnt.x;
vec.v[1]=pnt.y;
vec.v[2]=1.;
return vec;
}

void setColor(float red,float green,float blue)
{
glColor3f(red, green, blue);
}

void setColor(color_t col)
{
glColor3f(col.r, col.g, col.b);
}

void drawPolygon(point2D_t pnt[],int n)
{
int i;
glBegin(GL_LINE_LOOP);
for (i=0;i<n;i++) {
glVertex2f(pnt[i].x, pnt[i].y);
}
glEnd();
}

void userdraw(void);

void display(void)
{
glClear( GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}

void userdraw(void)
{
static double tick=0;
// kepala
point2D_t ab[8]={
{-400+tick,160},{-400+tick,240},{-330+tick,300},{-240+tick,300},{-240+tick,240},
{-240+tick,160},{-360+tick,160},{-340+tick,160},
};
// badan
point2D_t ac[4]={
{-240+tick,160},{-240+tick,200},{0+tick,200},{0+tick,160},
};
// box
point2D_t ad[4]={
{-220+tick,200},{-220+tick,340},{0+tick,340},{0+tick,200},
};
for(int i=0;i<360;i++)
{

srad=(i+tick)*3.14/10;
r=(float)60*sin(1*srad);
ban[i].x=((float)(r*sin(srad-0.001))-150+tick);
ban[i].y=((float)(r*cos(srad-0.001))+160);
}
for(int a=0;a<360;a++)
{

srad=(a+tick)*3.14/10;
r=(float)60*sin(1*srad);
ban3[a].x=((float)(r*sin(srad-0.001))-350+tick);
ban3[a].y=((float)(r*cos(srad-0.001))+160);
}


vector2D_t vec[50];
matrix2D_t trans,rot,scale,refxaxis,refyaxis,reforg;
point2D_t buff[50];
int loop;
setColor(1,0,0);
drawPolygon(ab,8);
drawPolygon(ac,4);
drawPolygon(ad,4);
drawLingkaran(ban,360);
drawLingkaran(ban3,360);
if(tick<0)
tick=800;
else
tick=tick-0.1;
}


int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow("azis(085623015)");
glClearColor(0.25,0.94,0.21,0.0);
gluOrtho2D(0.,640.,0.,480.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

Oh ya buat kamu yang suka promo dan diskonan, ini ada aplikasi voucher belanja yang lengkap. Aku kemarin sudah download dan ternyata aplikasinya keren banget cuyy, voucher dan diskon nya lengkap mulai lazada, shopee, ovo, grab, gojek dan subsidi PLN , pencarian lagunya juga gampang banget, desainnya juga OKE. Download aja aplikasi PROMO LAZADA INDOMARET DISINI

2 komentar:

  1. boleh minta file nya,, soalnya sudah sya coba tidak bisa,, boleh dikirim hardiyanroni@gmail.com

    BalasHapus
  2. boleh minta file nya,, soalnya sudah sya coba tidak bisa,, boleh dikirim
    maulanamiqbal55@gmail.com

    BalasHapus