这是我用C++画的东西^^
好幼稚^^
超难画。。。。
(Picture 1 source code)
#include <windows.h>
#include <gl/glut.h>
void rectangle()
{
glRectf(0,0,4,4);
}
void triangle()
{
glBegin (GL_TRIANGLES);
glVertex2f(0,0);
glVertex2f(4,0);
glVertex2f(2,4);
glEnd();
}
void line()
{
glBegin (GL_LINES);
glVertex2f(0,0);
glVertex2f(4,0);
glEnd();
}
void diamond()
{
glBegin (GL_POLYGON);
glVertex2f(0,0);
glVertex2f(2,2);
glVertex2f(0,5);
glVertex2f(-2,2);
glEnd();
}
void circle()
{
GLUquadric *quadric = gluNewQuadric();
gluDisk (quadric , 0 , 4 , 20 , 20);
}
void drawScene(void)
{
float invT[16], invS[16];
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glPushMatrix();
glColor3f(0.87,0.72,0.53);
glScalef(10,1,1);
glTranslatef(-2,-4.5,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,1.0f);
glScalef(1.3,1.3,1);
glTranslatef(-0.6,-1.7,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.45,0.45,1);
glTranslatef(4,7.5,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.45,0.45,1);
glRotatef(-90,0,0,1);
glTranslatef(-7,4.5,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.45,0.45,1);
glRotatef(90,0,0,1);
glTranslatef(7,-3.5,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.45,0.45,1);
glRotatef(180,0,0,1);
glTranslatef(-4,-6.5,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.0f,1.0f);
glScalef(0.15,0.15,1);
glTranslatef(12,20.5,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.0f,1.0f);
glScalef(0.25,0.4,1);
glTranslatef(5,-5.5,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.4,0.3,1);
glTranslatef(20,23,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.0f,0.0f);
glScalef(0.4,0.3,1);
glTranslatef(17.5,23,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glTranslatef(50,60,0);
diamond();
glColor3f(1.0f,1.0f,0.0f);
glRotatef(-90,0,0,1);
glTranslatef(1,1,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glRotatef(90,0,0,1);
glTranslatef(59,-49,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glRotatef(180,0,0,1);
glTranslatef(-50,-58,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glTranslatef(115,77,0);
diamond();
glColor3f(1.0f,1.0f,0.0f);
glRotatef(-90,0,0,1);
glTranslatef(1,1,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glRotatef(90,0,0,1);
glTranslatef(76,-114,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glRotatef(180,0,0,1);
glTranslatef(-115,-75,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glTranslatef(100,50,0);
diamond();
glColor3f(1.0f,1.0f,0.0f);
glRotatef(-90,0,0,1);
glTranslatef(1,1,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glRotatef(90,0,0,1);
glTranslatef(49,-99,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,0.0f);
glScalef(0.1,0.1,1);
glRotatef(180,0,0,1);
glTranslatef(-100,-48,0);
diamond();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,0.0f);
glScalef(0.3,0.3,1);
glTranslatef(20,0,0);
triangle();
glColor3f(0.0f,1.0f,0.0f);
glTranslatef(0,-2,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,0.0f);
glScalef(0.1,0.4,1);
glTranslatef(64,-3,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,0.0f);
glScalef(0.3,0.3,1);
glTranslatef(27,0,0);
triangle();
glColor3f(0.0f,1.0f,0.0f);
glTranslatef(0,-2,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,0.0f);
glScalef(0.1,0.4,1);
glTranslatef(85,-3,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,0.0f);
glScalef(0.3,0.3,1);
glTranslatef(34,0,0);
triangle();
glColor3f(0.0f,1.0f,0.0f);
glTranslatef(0,-2,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,1.0f,0.0f);
glScalef(0.1,0.4,1);
glTranslatef(106,-3,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.35,0.35,1);
glTranslatef(20,0,0);
triangle();
glColor3f(1.0f,1.0f,1.0f);
glTranslatef(0,-2,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.1,0.4,1);
glTranslatef(75,-3,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.35,0.35,1);
glTranslatef(26,0,0);
triangle();
glColor3f(1.0f,1.0f,1.0f);
glTranslatef(0,-2,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.1,0.4,1);
glTranslatef(96,-3,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.35,0.35,1);
glTranslatef(32,0,0);
triangle();
glColor3f(1.0f,1.0f,1.0f);
glTranslatef(0,-2,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.1,0.4,1);
glTranslatef(117,-3,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.98f,0.8f);
glScalef(0.3,0.25,1);
glTranslatef(0,28,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.98f,0.8f);
glScalef(0.25,0.2,1);
glTranslatef(-6,35,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.98f,0.8f);
glScalef(0.25,0.2,1);
glTranslatef(6,35,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.0f,0.0f);
glScalef(0.2,0.2,1);
glTranslatef(10,-2,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.0f,0.0f);
glScalef(0.2,0.2,1);
glTranslatef(4,-2,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.1,0.1,1);
glTranslatef(10,-2,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.1,0.1,1);
glTranslatef(22,-2,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.98f,0.8f);
glScalef(0.3,0.25,1);
glTranslatef(20,36,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.98f,0.8f);
glScalef(0.25,0.2,1);
glTranslatef(17,45,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,0.98f,0.8f);
glScalef(0.25,0.2,1);
glTranslatef(30,45,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.55f,0.27f);
glScalef(0.3,1,1);
glTranslatef(20,-1.7,0);
glRotatef(-15,0,0,1);
glLineWidth(5.0);
line();
glPopMatrix();
glPushMatrix();
glColor3f(0.55f,0.27f,0.07f);
glScalef(0.2,0.1,1);
glTranslatef(30,-14,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(0.6f,1.0f,0.6f);
glScalef(0.3,0.2,1);
glTranslatef(18,-11,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.6f,1.0f,0.6f);
glScalef(0.3,0.2,1);
glRotatef(180,0,0,1);
glTranslatef(-20,7,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.6f,1.0f,0.6f);
glScalef(0.3,0.2,1);
glRotatef(180,0,0,1);
glTranslatef(-24,7,0);
triangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.0f,0.0f);
glScalef(0.15,0.1,1);
glTranslatef(37,-24,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glScalef(0.07,0.05,1);
glTranslatef(79,-48,0);
circle();
glPopMatrix();
glPushMatrix();
glColor3f(0.6f,1.0f,0.6f);
glScalef(0.3,0.05,1);
glTranslatef(23,-32,0);
rectangle();
glPopMatrix();
glPushMatrix();
glColor3f(0.0f,0.0f,0.0f);
glScalef(0.15,0.05,1);
glTranslatef(50,-32,0);
rectangle();
glPopMatrix();
glFlush();
}
void init(void)
{
glClearColor(0.0f,0.0f,0.0f,0.0f);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-4,14,-3,9);
glMatrixMode ( GL_MODELVIEW );
}
void main(void)
{
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize (600,600);
glutInitWindowPosition (50,50);
glutCreateWindow(“Geometri Transformation”);
init();
glutDisplayFunc(drawScene);
glutMainLoop();
}