Week03-1
下載
-data data.zip
-win32 windows.zip
-glut32.dll
將data解壓縮放入win32的解壓縮檔,Transformation.exe物體移動範本就可以使用了
glPushMatrix();///備分矩陣
glTranslatef(0.5, 0, 0);///往右0.5格
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
讓茶壺右移,若是缺少備分矩陣與還原矩陣,在點擊按鍵時,茶壺會亂跑。
茶壺右移
#include<stdio.h>
void mouse(int button, int state, int x, int y)
{
printf("%d %d %d %d\n",button,state,x,y);///印出 按鍵、點擊狀態、x位置、y位置
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMouseFunc(mouse);///請mouse函式執行
glutMainLoop();
}
顯示點擊按鍵與位置。
按鍵與位置的顯示方式
#include <GL/glut.h>
float X=0,Y=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清除背景
glPushMatrix();///備分矩陣
glTranslatef(X, Y, 0);///移動到座標(X,Y)
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
}
void mouse(int button, int state, int x, int y)
{
X=(x-150)/150.0;///X的實際位置
Y=-(y-150)/150.0;///Y的實際位置
}
利用https://gist.github.com發布私人的程式。複製該程式的網址再使用部落格的HTML檢視編輯,可把在GitHub發布的程式以GitHub的顯示方式使其出現在部落格。
Week03-2
#include <GL/glut.h>
#include <stdio.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
void mouse(int button, int state, int x, int y)
{
float X=(x-250)/250.0;
float Y=(y-250)/250.0;
if(state==GLUT_DOWN)
{
printf(" glVertex2f(%.3f, %.3f);\n",X,Y);
}
}
沒有留言:
張貼留言