Week05
下載老師給的範例
旋轉茶壺
week05-1
*使用week04-1的程式碼
#include <GL/glut.h>
float angle = 0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1, 0, 0);
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glTranslatef(0.8, 0, 0);
glutSolidTeapot( 0.3 );
glPopMatrix();
glColor3f(0, 1, 0);
glPushMatrix();
glTranslatef(0.8, 0, 0);
glRotatef(angle*1.5, 0, 0, 1);
glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week05");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
轉手
使用老師寫的openglTRT程式
*畫出人跟手
全部移出去
拉手進來
把手移到中心glTranslatef();
旋轉glRotatef();
移到要的地方glTranslatef();
week05-2
*先調中心 再轉動 最後掛到對的位子
glScalef(0.5, 0.2, 0.2);縮放
#include <GL/glut.h>
float angle = 0;
void myCube()
{
glPushMatrix();
glScalef(0.5, 0.2, 0.2);
glutSolidCube(1);
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1, 1, 1);
glutSolidCube(1);
glPushMatrix();
glTranslatef(0.5, 0.5, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
glColor3f(0, 1, 0);
myCube();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.5, 0.5, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
glColor3f(0, 1, 0);
myCube();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week05");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}






沒有留言:
張貼留言