极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【L51】計算機圖形學:OpenGL 三維空間 三維房間、家具、房屋

2022-01-13 17:19:08      索煒達電子      1179     

文件編號:L51

文件大?。?/strong>7.1M

代碼行數(shù):2036行(主程序)

開發(fā)環(huán)境:VS2019、OpenGL

猿創(chuàng)承諾:該源碼均通過親自測試可正常運行

簡要概述:計算機圖形學實驗,用OpenGL實現(xiàn)三維空間,繪制三維房間、家具、房屋建筑等。OpenGL實現(xiàn)三維空間、方向轉換、按鍵交互、含源代碼、執(zhí)行文件。

實現(xiàn)圖形場景等包括:房屋、草坪、小路、天空、教學樓、樹木、圍墻、燈光、紋理;包括多種交互場景。室內繪制豐富。

用到的OpenGL 函數(shù)

 glColor3f(blue); //設置顏色

 glutSolidCube(size);//繪制正方體

 glVertex3f(x, y, z);//設置點坐標

 glLightfv(a,b,c);  //設置光源      

 glTranslatef(x, y, z`)`;//平移函數(shù)

 glScalef(x, y, z); //放大/縮小函數(shù)

 glRotatef(angle, x, y, z);//繞軸旋轉函數(shù)

 glutSolidSphere(radius, slices, stacks);//繪制球體

glBegin(圖形類型) 與 glEnd(void)

在glBegin(arg)的參數(shù)部分選擇要繪制的圖形類型; 在glBegin()與glEnd()之間添加坐標點。比如繪制三角形,就選擇glBegin()的參數(shù)為GL_TRIANGLES, glVertex3f(x, y, z)添加三角形三個頂點的坐標,末尾加上glEnd().這種代碼繪制的圖形一般是一個三維空間中的平面圖形。

   glBegin(GL_TRIANGLES);

   glVertex3f(x1, y1, z1);

   glVertex3f(x2, y2, z2);

   glVertex3f(x3, y3, z3);

   glEnd();

glPushMatrix() 與 glPopMatrix()

在glPushMatrix() 與 glPopMatrix() 之間添加繪制基本平面圖形,通過組合、平移、放大縮小就能輕易的實現(xiàn)復雜三維視圖。

比如: 用glutSolidCube(1);繪制一個邊長為一個單位的立方體,這個立方體的中心坐標為(t0, 0, 0);

進行平移、放大:

glPushMatrix();

glTranslatef(1, 2, 3)

glScalef(1,1,3);

glPopMatrix();

這樣立方體的中心位置的坐標變成了(1,2,3),而且長寬高分別變成了1,1,3個單位長度。

按鍵交互:

1/2/3    燈光

4   書本

5/6    茶壺

7   老鼠

8   電視

9   機器人

0   椅子

o   開/關門

b   回到房間

a   左轉

b   右轉

方向鍵   前后左右移動

w   上移動

s   下移動

運行效果:

【L51】計算機圖形學:OpenGL 三維空間 三維房間、家具、房屋

文件列表:

目錄│文件列表:

 ├ 演示視頻

 │  └ 演示視頻.mp4

 └ 項目源碼

    │ glut32.dll

    │ opengl.CPP

    │ OPENGL1.exe

    └ README.txt

TAG三維空間
  • 4 次
  • 400 分