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
沒有留言:
張貼留言