2019年4月26日 星期五

week10


開啟Transformation.exe(自轉跟公轉)



















順序概念,用GLUT來完成下圖樣子















程式碼:
#include <GL/glut.h>
float angle=0;  ///角度初始化
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glTranslatef(0 , 0.5 , 0);
        glutWireTeapot( 0.3 );   /// Wire >> 透視、網格
    glPopMatrix();

    glPushMatrix();
       /// TRT ↓
        glTranslatef(0.51 , 0.63 , 0);  /// 設定主要顯示視窗,要放置的位置
        glRotatef(angle, 0 , 0 , 1);  /// 開始旋轉
        glTranslatef(0.6 , 0 , 0); /// 先移動原圖片的位置,中心點作為旋轉軸
      /// TRT ↑

        glRotatef(-90, 0 , 1 , 0); /// 先做旋轉,中心點一樣在圖片的正中間
        glutWireCone(0.1, 0.6, 10 , 10); ///製出圓錐
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x , int y) ///用滑鼠控制圓錐
{
    angle = x;
    display();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("06161180_Week10 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion); ///用滑鼠控制
    glutMainLoop();
}

沒有留言:

張貼留言