2016年3月21日 星期一

BOZC Week05


课堂作业:


123、打开档案
做translate后做rotate
发现转动轴心在物件上
switch后(交换trans跟rotate的位置)先做translate后做rotate
发现转动轴心在物件translate之前的位置





心得:程式内的运行顺序有差异,先执行translate则会改变转动轴心
先执行rotate时不会改变转动轴心。

2、(ROTATION)打开glut project
      key入程式码:

#include<GL/glut.h>
float rotX=0;
void display()
{
    glClearColor(1,1,1,1);
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glRotatef(rotX, 0,1,0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x, int y)
{
    rotX=x;
    display();

}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("hello3D");

    glutDisplayFunc(display);
    glutMotionFunc(motion);

    glutMainLoop();
}



运行
可以转动





3、更改初始window大小、加入y轴转动;

加入程式码:
 glutInitWindowSize(500,500); glutInitWindowPosition(500,300);

改变初始windowsize,windowpositon

 glRotatef(rotY, 1,0,0);

加入滑鼠控制的y轴旋转






沒有留言:

張貼留言