Kamis, 12 April 2012

Grafika Komputer: Segitiga degradasi

dibawah ini adalah code program untuk objek segitiga degradasi, tugas pertama saya dalam mata kuliah grafika komputer yang menggunakan OpenGL lib.

#include<glut.h>
#include<stdlib.h>
#include<stdio.h>

typedef struct{
float x,y;
}point2D_t;

typedef struct{
float x,y,z;
}color_t;


void setColor(color_t color)
{
glColor3f(color.x,color.y,color.z);
}
void fillPolygonGradate(point2D_t a[],int n,color_t color[])
{
int i;
glBegin(GL_POLYGON);
for(i=0;i<n;i++)
{
int w=i/2;

setColor(color[w]);
glVertex2f(a[i].x,a[i].y);
}
glEnd();
}
void userdraw(void)
{

point2D_t persegi1[4]={{200,110},{100,110},{100,210},{200,210}};
color_t warna1[4]={{1.0,1.0,0.1},{1.0,0.0,1.0}};
point2D_t segitiga1[3]={{210,220},{310,220},{260,300}};
color_t warna2[3]={{0.0,0.0,1.0},{1.0,0.0,1.0}};

point2D_t segitiga2[3]={{100,100},{200,100},{150,10}};
color_t warna4[4]={{1.0,0.0,0.0},{0.0,1.0,0.1}};

point2D_t persegi2[4]={{310,110},{210,110},{210,210},{310,210}};
color_t warna3[3]={{1.0,0.0,0.0},{0.0,0.0,1.1}};

fillPolygonGradate(persegi1,4,warna1);
fillPolygonGradate(segitiga1,3,warna2);
fillPolygonGradate(segitiga2,3,warna3);
fillPolygonGradate(persegi2,4,warna4);

}

void display (void) 
{
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glFlush();
}
void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE |GLUT_RGB);
glutInitWindowPosition(100,150);
glutInitWindowSize(640,480);
glutCreateWindow("Gradasi warna");
glClearColor(0.0,0.0,0.0,1.0);
gluOrtho2D(0.,640.,0.0,480.0);
glutDisplayFunc(display);
glutMainLoop();
}

Tidak ada komentar:

Posting Komentar