(1)老師的範例
1.打開http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
![]() |
| 下載紅色標記的文件 |
![]() |
(2)滑鼠画图
1.新建一個GLUT project,講原先程式刪除,寫入一下程式
![]() |
| 可以畫出一個茶壺 |
#include<stdio.h>
#include<GL/glut.h> ///整套GLUT外掛
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers(); ///搭配GLUT_DOUBLE兩倍顯示
}
int main(int argc, char*argv[]) ///完整的main()參數
{
glutInit(&argc,argv); ///初始的參數,照著丟進去
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Week03 Mouse");
glutDisplayFunc(display); ///等一下樓上會有display()
///glutMouseFunc(mouse); ///等一下樓上會有mouse()滑鼠的事件
///glutMotionFunc(motion); ///等一下樓上會有mouse()滑鼠motion事件
glutMainLoop(); ///主要GLUT迴圈
}
2.再加入一些代碼
void mouse(int button ,int state ,int x, int y)
{
///button(左,中,右鍵, state: 接下來/彈起來, x,y: mouse位置
///printf("%d %d %d %d\n", button,state,x,y);
}
int main()
{
glutMouseFunc(mouse);///等一下樓上會有mouse()滑鼠的事件
}
3.改變一些代碼
3.改變一些代碼
void mouse(int button ,int state ,int x, int y)
{
///button(左,中,右鍵, state: 接下來/彈起來, x,y: mouse位置
///printf("%d %d %d %d\n", button,state,x,y);
if(state==GLUT_DOWN) printf("glVertex2f(%f,%f);\n",(x-150)/150.0,(150-y)/150.0);
}




沒有留言:
張貼留言