2023年3月2日 星期四

聯邦圖學院 Week03 移動 Translate

Week03-1
到https://jsyeh.org/3dcg10/ 並下載data.zip以及windows.zip兩個檔案




接著把兩個壓縮檔解壓縮之後將data資料夾放到windows資料夾裡面


開啟transformation.exe就可以看到有趣的3D模型程式
第一行數值可以用滑鼠調整,能調整鏡頭的位置





















Week03-2
新建一個新的week03-1_translate,並複製上一個禮拜的基礎10行程式碼
(執行跑出來應該會是一個白色茶壺)


想要貼出好看的程式碼的話,使用Github Gist功能,新增程式並將檔名寫好,網站就會依照程式語法變色,使用Enbedded Javascript就能將那一行程式用到自己Blog的HTML

在display函數中加入這兩行,執行程式之後點一下茶壺便會向左及向上各移動0.5單位
glPushMatrix();
glTranslatef(0.5,0.5,0)





下一步我們要做出可以跟著滑鼠點擊哪裡就去那裡的茶壺
程式碼如下:
#include <GL/freeglut.h>
float X=0,Y=0,Z=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(X,Y,Z);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
void mouse (int button,int state,int x,int y)
{
    X=(x-150)/150.0;
    Y=-(y-150)/150.0;
}
int main(int argc,char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week03");
    glutMouseFunc(mouse);
    glutDisplayFunc(display);

    glutMainLoop();
}


沒有留言:

張貼留言