Minggu, 08 April 2012

Segitiga Degradasi C++ Tugas Grafika Komputer

kali ini akan memposting Segitiga dengan degadrasi warna menggunakan C++ dan OpenGL, Semoga bermanfaat.


# include <glut.h>
# include <stdio.h>
# include <stdlib.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;
//int w=i;
setColor(color[w]);
glVertex2f(a[i].x,a[i].y);
}
glEnd();
}
void userDraw(void)
{
point2D_t segitiga1[3]={{0,100},{50,200},{100,100}};
color_t wrnsegitiga1[3]={{1.0,0.0,0.0},{1.0,0.0,1.0}};

point2D_t segitiga2[3]={{100,100},{150,200},{200,100}};
color_t wrnsegitiga2[3]={{0.0,0.0,1.0},{1.0,0.0,0.0}};

point2D_t segitiga3[3]={{200,100},{250,100},{300,100}};
color_t wrnsegitiga3[3]={{1.0,1.0,1.0},{1.0,0.0,1.0}};

point2D_t segitiga4[3]={{200,100},{250,0},{300,100}};
color_t wrnsegitiga4[3]={{0.0,1.0,0.0},{1.0,0.0,0.0}};

point2D_t segitiga5[3]={{300,100},{350,0},{400,100}};
color_t wrnsegitiga5[3]={{1.0,0.0,0.0},{0.0,0.0,1.0}};



fillPolygonGradate(segitiga1,3,wrnsegitiga1);
fillPolygonGradate(segitiga2,3,wrnsegitiga2);
fillPolygonGradate(segitiga3,3,wrnsegitiga3);
fillPolygonGradate(segitiga4,3,wrnsegitiga4);
fillPolygonGradate(segitiga5,3,wrnsegitiga5);


}
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(1.0,1.0,1.0,0.0);
gluOrtho2D(0.,640.,0.0,480.0);
glutDisplayFunc(display);
glutMainLoop();
}


Tidak ada komentar:

Posting Komentar