week03
step01
開啟網站連結. 👉https://jsyeh.org/3dcg10/
下載三個檔案 👉(windows.zip , data.zip , glut32.dll)
解壓縮(務必記得是解壓縮至此!!!)
開啟檔案. 👉Transformation.exe
成果如圖
step02下載freeglut-MinGW-3.0.0-1.mp.zip
解壓縮檔案到桌面(freeglut)
複製檔案libfreeglut更名成libglut32.a
開啟codeblocks > create new project
點選 GLUT project
next >
儲存到桌面新增資料夾week03
開啟fleeglut 資料夾
finish~~
step03
新增程式碼
#include <GL/glut.h>
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}
成果如圖 出現茶壺
修改並新增程式碼
#include <GL/glut.h>
void display()
{
glPushMatrix();
glTranslatef(0.5 , 0 , 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}
成果如圖 茶壺向右移動了
step05
修改並新增程式碼
#include <GL/glut.h>
void display()
{
glPushMatrix();
glTranslatef(0.5 , 0 , 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
#include <stdio.h>
void mouse (int botton , int state , int x , int y)
{
printf ("%d %d %d %d\n",botton , state , x , y);
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
成果如圖 點按滑鼠左右鍵會跑出相對應座標
step06
修改並新增程式碼
#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);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
#include <stdio.h>
void mouse (int botton , 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");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
成果如圖 茶壺可以隨滑鼠移動
step08
開啟codeblocks > create new project
點選 GLUT project
儲存到桌面新增資料夾 week03_mouse
step09
修改並新增程式碼
#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);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
#include <stdio.h>
void mouse (int botton , int state , int x , int y)
{
float X = (x-150)/150.0;
float Y = -(y-150)/150.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);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
修改並新增程式碼
#include <GL/glut.h>
float X=0,Y=0;
void display()
{
glBegin(GL_POLYGON);
glVertex2f(-0.300, 0.747);
glVertex2f(-0.520, 0.747);
glVertex2f(-0.640, 0.520);
glVertex2f(-0.667, 0.447);
glVertex2f(-0.727, 0.133);
glVertex2f(-0.667, -0.033);
glVertex2f(-0.540, -0.160);
glVertex2f(-0.187, -0.247);
glVertex2f(0.000, -0.307);
glVertex2f(0.280, -0.300);
glVertex2f(0.440, -0.187);
glVertex2f(0.500, -0.013);
glVertex2f(0.580, 0.240);
glVertex2f(0.527, 0.373);
glVertex2f(0.340, 0.547);
glVertex2f(0.173, 0.620);
glVertex2f(0.000, 0.727);
glVertex2f(-0.147, 0.747);
glVertex2f(-0.260, 0.753);
glEnd();
glutSwapBuffers();
}
#include <stdio.h>
void mouse (int botton , 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);
}
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
成果如圖
滑鼠點擊過後會生成座標
step10
上傳檔案git指令
1. git指令
2. cd desktop
3. git clone https://github.com/你的帳號/2023graphicsa
4. cd 2023graphicsa
5. start .
6. git add .
7. git status
8. git config --global user.email "電子郵件"
9. git config --global user.name "帳號名chiche0306"
10. git commit -m "week"
11. git push























沒有留言:
張貼留言