#include<GL/freeglut.h>
void display(){
glClear(GL_COLOR_BUFFER_BIT);
glRotatef(0.05,0.3,0.4,0);
glutWireTorus(0.3,0.5,30,30);
glFlush();
}
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutCreateWindow("02160393_DownChess");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
建兩個旋轉的黑白方形
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glRotatef(0.05,0.1,0.3,0);
//glutWireTorus(0.3,0.5,30,30);
glBegin(GL_LINE_LOOP);
glVertex3f(0.3,0.3,0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,0.5);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glFlush();
}
建立立體方形
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glRotatef(0.05,0.1,0.3,0);
//glutWireTorus(0.3,0.5,30,30);
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(0.3,0.3,0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,0.5);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glBegin(GL_QUAD_STRIP);
glVertex3f(0.3,0.3,0.5);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glFlush();
}
加上邊線
glColor3f(0,0,0);
glBegin(GL_LINE_LOOP);
glVertex3f(0.3,0.3,0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,0.5);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glBegin(GL_LINES);
glVertex3f(0.3,0.3,0.5);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
用滑鼠控制旋轉
#include<GL/freeglut.h>
#include<stdio.h>
float a=0,b=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(b,-1,0,0);
glRotatef(a,0,1,0);
//glutWireTorus(0.3,0.5,30,30);
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(0.3,0.3,0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,0.5);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glBegin(GL_QUAD_STRIP);
glVertex3f(0.3,0.3,0.5);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glColor3f(0,0,0);
glBegin(GL_LINE_LOOP);
glVertex3f(0.3,0.3,0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,0.5);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glBegin(GL_LINES);
glVertex3f(0.3,0.3,0.5);
glVertex3f(0.3,0.3,-0.5);
glVertex3f(-0.3,0.3,0.5);
glVertex3f(-0.3,0.3,-0.5);
glVertex3f(-0.3,-0.3,0.5);
glVertex3f(-0.3,-0.3,-0.5);
glVertex3f(0.3,-0.3,0.5);
glVertex3f(0.3,-0.3,-0.5);
glEnd();
glPopMatrix();
glFlush();
}
void motion(int x,int y)
{
printf("%d %d\n",x,y);
a=x;
b=y;
}
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutCreateWindow("02160393_DownChess");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}
沒有留言:
張貼留言