2023年3月2日 星期四

天命2新賽季啊 week03 Translate


Week03-1模型下載


1. 去https://jsyeh.org/3dcg10/下載範本 Win32.zip data.zip



2.解壓縮win32.zip及data.zip到同個資料夾



3.執行Transformation.exe測試是否能運作(成功的話 視窗內的數值可隨意調整)





Week03-1 Translate


1. 用codeblock創建GLUT專案,過程如前幾周一樣

    編寫出茶壺圖案的程式碼



2.Github Gist功能

    登入Github 選取Gist功能 輸入檔名及附檔名 使用Embedded JavaScript的方式來讓程式插入至Blog的HTML


3.使用程式碼glPushMatrix及glTranslatef來改變茶壺的位置


Week03-2 Translate滑鼠應用


1.首先複製上個程式碼繼續演用並改寫

 開頭改寫為

#include <GL/glut.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);

    glPopMatrix();

    glutSwapBuffers();

}


2.新增滑鼠相關的座標程式碼


void mouse(int button,int state,int x,int y)

{

    X=(x-150)/150.0;

    Y=-(y-150)/150.0;

}


3. 在int main內追加glutMouseFunc(mouse);程式碼

  確認視窗內圖形是否會因滑鼠點擊而影響位置座標 以下為成果





Week03-3 Translate滑鼠應用繪畫


1.衍用03-2的程式碼  開頭多加 #include<stdio.h>  

void mouse 多加

if(state==GLUT_DOWN)printf("    glVertex2f(%.2f,%.2f);\n",X,Y);


2.在 void display 部分刪掉部分程式碼 剩下

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glutSwapBuffers();


3.執行視窗 開始點擊確認想要的頂點座標




4.利用以下程式碼開始繪畫

    glBegin(GL_POLYGON);

    glVertex2f ( XY座標 );

    glEnd();



















































































沒有留言:

張貼留言