2021年3月15日 星期一

week04

 Week04

1.滑鼠的button,state,x,y

#include <GL/glut.h> ///(0)記得include

#include <stdio.h>///TODO

void display()

{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空


    glutSolidTeapot(0.3);///實心茶壺


    glutSwapBuffers();///交換兩倍的buffers

}


void mouse(int button,int state,int x,int y)///TODO

{

    printf("button:%d state:%d x:%d y:%d\n",button,state,x,y);

}


int main(int argc, char ** argv)

{

    glutInit(&argc, argv);///(1)設定GLUT的初始碼


    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式


    glutCreateWindow("08162412");///(3)開GLUT視窗


    glutDisplayFunc(display);///(4)顯示的函式


    glutMouseFunc(mouse);///TODO


    glutMainLoop();///(5)GLUT主要的迴圈,卡住不要結束

}

2.滑鼠座標


輸出替換為:
    if(state==GLUT_DOWN){
    printf("glVertex3f((%d-150)/150.0,-(%d-150)/150.0,0);\n",x,y);
    }
3.滑鼠移動茶壺


#include <GL/glut.h> ///(0)記得include
#include <stdio.h>///TODO
float teapotX=0,teapotY=0;///茶壺的座標
void display()
{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
    glPushMatrix();///矩陣備份
    glTranslatef(teapotX,teapotY,0);///根據座標,移動
    glutSolidTeapot(0.3);///實心茶壺
    glPopMatrix();///矩陣還原
    glutSwapBuffers();///交換兩倍的buffers
}
///void mouse(int button,int state,int x,int y)///TODO
///{
///}
void motion(int x,int y)///motion函式
{
    teapotX=(x-150)/150.0;///換算座標
    teapotY=-(y-150)/150.0;
    display();///更新
}

int main(int argc, char ** argv)
{
    glutInit(&argc, argv);///(1)設定GLUT的初始碼

    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式

    glutCreateWindow("08162412");///(3)開GLUT視窗

    glutDisplayFunc(display);///(4)顯示的函式

    ///glutMouseFunc(mouse);///TODO
    glutMotionFunc(motion);///motion移動的函事

    glutMainLoop();///(5)GLUT主要的迴圈,卡住不要結束
}
4.旋轉
右手大拇指為軸旋轉
右手大拇指為y軸旋轉75

x,y軸為1旋轉

5.github
(1)NEW新增
(2)填寫
(3)寫網頁
(4)修改為gh-pages
main-view all branches-main改為gh-pages
(5)settings-choose theme



沒有留言:

張貼留言

Week18期末作業(橘貓的跳舞熊熊)

 期末作業(橘貓的跳舞熊熊) 影片: https://youtu.be/R89tptMaQZw 程式碼: #include <opencv/highgui.h> #include <opencv/cv.h> #include <GL/glut.h...