2023年3月1日 星期三

SangMo Translate移動 Week03

 Week03 step1-1

到https://jsyeh.org/3dcg10/

下載 data windows glut32.dll




下載後解壓縮data windows

把data拖進解壓縮後的windows

接者打開Transformation.exe

出現車子為成功

Step1-2
開啟codeblock
並和上週相同方式開啟GLUT
並將程式碼改成以下10行(可在GitHub複製)
執行得到茶壺即可

接者新增glTranslatef(0.5,0,0);
並在其程式上下加上glPushMatrix(); glPopMatrix();
成功後會看到向右移動的茶壺
Step 2-1
利用mouse得到位置
新增glutMouseFunc(mouse);
接著給予函式
執行後即可得到
第一行對應botton 第二行對應state 三四行對應X與Y

Step2-2
滑鼠點哪圖就在哪
把print刪除並改為

在第2行新增float X=0,Y=0;
並改掉glTranslatef的數字(0.5,0,0); 改成(X,Y,0);
在display函式加上glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
執行後可以得到滑鼠點擊就移動的茶壺

Step2-3

老師介紹GitHub的gist功能
只要在gist.github.com 裡面新增一個不公開的小程式,便能放在你的blog裡

step 3-1

新增一個GLUT專案
並將程式改成
#include <GL/glut.h>
#include <stdio.h>
float X=0,Y=0;
void display()
{
    glutSolidTeapot(0.3);

    glutSwapBuffers();
}
void mouse (int button, int state,int x,int y)
{
    X = (x-250)/250.0;
    Y= -(y-250)/250.0;
    if(state==GLUT_DOWN){
        printf(" glVertex2f(%.3f,%.3f);\n",X,Y);
    }
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutInitWindowSize(500,500);
    glutCreateWindow("Week03");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();

}
執行後點擊茶壺可以得到座標
選取複製並利用得到的座標來作圖

step3-2上傳GitHub

下載Git Bash
git clone 下載2023graphicsa 並進入
start . 可以開檔案,整理今天的2個程式
用git add . 可以修改(git status 會秀紅色or綠)
用git commit -m "訊息"確認 (先git config設定名+email)
用git push推送

沒有留言:

張貼留言