HW1. 複習上一周畫茶壺
像之前一樣,打開GLUT專案,修改裡面的程式碼以簡潔並劃出一個茶壺。
程式碼:
#include <GL/glut.h>
static void display (void)
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("I am number 1!!!");
glutDisplayFunc(display);
glutMainLoop();
}
HW2. 加入MouseFunc,抓滑鼠點下去的數據並可改變茶壺顏色
在主函式中加入glutMouseFunc(mouse);
並且在上方加入mouse 函式 static void mouse (int button, int state, int x , int y )
並且加入 #include <stdio.h> ,讓我們可以用到 printf。 可以將mouse的4個數據列印出來。完成後如下圖:
接下來希望再點不同地方的時候茶壺可以更改顏色,在printf()函式下加入這兩行程式碼:
glColor3f(1,x/300.0,y/300.0);
glutPostRedisplay(); //呼叫此函式來重新顯示(整理)螢幕
*note 在main主函示中可該便是窗的大小(預設是300X300)
只要加入 glutInitWindowSize(500,
500); 可改變為500X500的視窗大小哦。
接著是要邊移動滑鼠邊改變顏色了,在主函式中加入glutMotionFunc(motion); 並在上方加入motion函式:
static
void motion (int x, int y )
{
printf("%d %d\n", x, y);
}
把 glColor3f(
1, x/300.0, y/300.0);
glutPostRedisplay();加入motion函式中
即為:
static
void motion (int x, int y )
{
printf("%d %d\n", x, y);
glColor3f( 1, x/300.0, y/300.0);
glutPostRedisplay();
}




沒有留言:
張貼留言