介於要醒跟不醒之間 困阿ˊ ωˋ~
第一節課 上課本然後講一下上禮拜的作業~
第一個先把老師的網址裡的東西載下來(在隨身碟裡)
windows/data/glut32.dll
開始作業
#include <GL/glut.h>
void display()
{
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{///上面是特別的main()函式 有很多參數
glutInit(&argc, argv);///把GLUT開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///顯示設定
glutCreateWindow("GLUT Shapes");///要開視窗
glutDisplayFunc(display);///要顯示對應的函式
glutMainLoop();///最後用main迴圈,壓在最後面
}
接下來加移動程式
glPushMatrix();///備份
glTranslatef(0.5,0,0);///移動
glPopMatrix();///還原
#include <GL/glut.h>
void display()
{
glPushMatrix();///備份
glTranslatef(0.5,0,0);///加了還不夠黑
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
glPopMatrix();///還原
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{///上面是特別的main()函式 有很多參數
glutInit(&argc, argv);///把GLUT開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///顯示設定
glutCreateWindow("GLUT Shapes");///要開視窗
glutDisplayFunc(display);///要顯示對應的函式
glutMainLoop();///最後用main迴圈,壓在最後面
}
這是變更後移動的樣子 往右跑了
第二階段
滑鼠幫大忙
glutMouseFunc(mouse);///02-1加入滑鼠
滑鼠點下去會跑數字#include<stdio.h>
#include<stdio.h>
void mouse(int button,int state,int x,int y)
{///02-2滑鼠幫大忙
printf("%d %d %d %d\n",button,state,x,y);
}
#include <GL/glut.h>
void display()
{
glPushMatrix();///備份
glTranslatef(0.5,0,0);///加了還不夠黑
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
glPopMatrix();///還原
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
#include<stdio.h>
void mouse(int button,int state,int x,int y)
{///02-2滑鼠幫大忙
printf("%d %d %d %d\n",button,state,x,y);
}
int main(int argc, char *argv[])
{///上面是特別的main()函式 有很多參數
glutInit(&argc, argv);///把GLUT開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///顯示設定
glutCreateWindow("GLUT Shapes");///要開視窗
glutDisplayFunc(display);///要顯示對應的函式
glutMouseFunc(mouse);///02-1加入滑鼠
glutMainLoop();///最後用main迴圈,壓在最後面
}
分別是滑鼠按鍵/按下放開/x/y座標
下一階段
加入程式
X=(x-150)/150.0;
Y=-(y-150)/150.0;///02-3修改X Y(口決:都減150再除150.0 Y要負號)
float X=0,Y=0;///02-4設定X Y
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///02-5清個背景
很煩我知道 所以有完整的 不客氣O WO#include <GL/glut.h>
float X=0,Y=0;///02-4設定X Y
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///02-5清個背景
glPushMatrix();///備份
glTranslatef(X,Y,0);///加了還不夠黑
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
glPopMatrix();///還原
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
#include<stdio.h>
void mouse(int button,int state,int x,int y)
{///02-2滑鼠幫大忙
///printf("%d %d %d %d\n",button,state,x,y);
X=(x-150)/150.0;
Y=-(y-150)/150.0;///02-3修改X Y(口決:都減150再除150.0 Y要負號)
}
int main(int argc, char *argv[])
{///上面是特別的main()函式 有很多參數
glutInit(&argc, argv);///把GLUT開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///顯示設定
glutCreateWindow("GLUT Shapes");///要開視窗
glutDisplayFunc(display);///要顯示對應的函式
glutMouseFunc(mouse);///02-1加入滑鼠
glutMainLoop();///最後用main迴圈,壓在最後面
}
可以跟著滑鼠變位置拉~
gitHub有個gist.github可以弄程式 但我不想弄 所以算了ˊ ωˋ
沒有留言:
張貼留言