week06
先複製上週的程式碼,再來更改圖形以及旋轉中心
#include <GL/glut.h>
float angle = 0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSolidSphere(0.02,30,30); ///中心點
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glTranslatef(0.46, 0.05, 0); ///把轉動的中心放中心
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
從week06-1的程式碼下去更改week06-2放一個茶壺在中央,掛一個在壺口
#include <GL/glut.h>
float angle = 0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSolidSphere(0.02,30,30);
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.49, 0.13, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.46, 0.05, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
接著在掛一個茶壺在第二個茶壺上,並使他旋轉#include <GL/glut.h>
float angle = 0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
///glutSolidSphere(0.02,30,30);
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.49, 0.13, 0)
glRotatef(angle, 0, 0, 1);
glTranslatef(0.46, -0.05, 0);
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.49, 0.13, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.46, -0.05, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
week06-3#include <GL/glut.h>
float angle = 0;
void drawhand()
{
glPushMatrix();
glScaled(1,0.3,0.3);
glutSolidCube(0.5);
glPopMatrix();
}
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glPushMatrix();
glTranslatef(0.25, 0, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
drawhand();
glPushMatrix();
glTranslatef(0.25, 0, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
drawhand();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.25, 0, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(-0.25, 0, 0);
drawhand();
glPushMatrix();
glTranslatef(-0.25, 0, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(-0.25, 0, 0);
drawhand();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}











沒有留言:
張貼留言