freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

長方體體的光照效果_計(jì)算機(jī)圖形學(xué)課程設(shè)計(jì)(編輯修改稿)

2024-08-19 11:51 本頁面
 

【文章內(nèi)容簡介】 rush。 (RGB(faces[j].I*255,faces[j].I*255,faces[j].I*255+40))。 (amp。Brush)。 ()。 (p[0])。 for(int i=1。i4。i++) (p[i])。 (p[0])。 ()。 ()。 ()。 13 四、 流程圖 開 始定 義 長 方 體 頂 點(diǎn) 列 表 , 面 列表 , 每 個(gè) 面 的 漫 反 射 系 數(shù) ,環(huán) 境 光 反 射 系 數(shù) , 視 線 方 向定 義 點(diǎn) 光 源 位置 , 環(huán) 境 光 光 強(qiáng)進(jìn) 行 3 維 圖 形 變 換計(jì) 算 變 換 后 的 各 個(gè) 面 的 外 法 向量 , 面 中 點(diǎn) 坐 標(biāo) , 光 照 方 向判 斷 各 個(gè) 面 可 見 性 , 計(jì) 算 各個(gè) 面 的 平 均 光 照 強(qiáng) 度在 屏 幕 上 輸出 可 見 面結(jié) 束對(duì) 正 方 體 進(jìn) 行 平 行 投 影變 換 , 窗 口 視 區(qū) 變 換 14 五、源程序 文件 //定義三維齊次向量結(jié)構(gòu)體 typedef struct Vector3D { float x。 float y。 float z。 int f。 //f 表示所在的平面的編號(hào) }VECTOR。 //定義三維齊次坐標(biāo)結(jié)構(gòu) typedef struct tagHOMOCOORD { float x。 float y。 float z。 float w。 }HOMOCOORD。 //定義面的結(jié)構(gòu) typedef struct tagPLANE { int v0, v1, v2, v3。 15 VECTOR n。 //外法向量 HOMOCOORD center。 //中心點(diǎn) float Id。 //漫反射光強(qiáng) int flag。 float kd。 //漫反射率 float ka。 //環(huán)境光反射率 float Ie。 //環(huán)境光反射光強(qiáng) float I。 //光強(qiáng) }PLANE。 //定義點(diǎn)的結(jié)構(gòu),需要浮點(diǎn)數(shù)的 x, y typedef struct tagMYPOINT { float x,y。 }MYPOINT。 public: VECTOR CalculateVector(HOMOCOORD start, HOMOCOORD end, int face)。//計(jì)算一個(gè) 3 維向量的函數(shù) , //從 start 點(diǎn)指向 end 點(diǎn)的屬于 face 面的向量 VECTOR VecCross(VECTOR vec1, VECTOR vec2)。//計(jì)算兩個(gè)向量叉積,即外法向量 float InnerProduct(VECTOR vec1, VECTOR vec2)。//計(jì)算兩個(gè)向量 16 的內(nèi)積 float GetModule(VECTOR vec)。 //計(jì)算向量的模 void RotateY(int angle)。 //繞 y 軸逆時(shí)針旋轉(zhuǎn) void RotateX(int angle)。 //繞 x 軸逆時(shí)針旋轉(zhuǎn) void DrawMy3DGraphics()。 //繪制長方體 virtual ~CDraw3DView()。 protected: HOMOCOORD illuminant。 //定義光源坐標(biāo) float Ip。 //定義光源光強(qiáng) float Ia。 //環(huán)境光光強(qiáng) VECTOR *light_vec。 //各個(gè)面的光照方向指針 HOMOCOORD *pts。 //三維頂點(diǎn)指針 MYPOINT *pts2D。 //自定義的二維浮點(diǎn)數(shù)結(jié)構(gòu),表示變換后的二維點(diǎn) PLANE *faces。 //長方體的面指針 int ptn,fn。 //頂點(diǎn)個(gè)數(shù)與面的個(gè)數(shù) 文件 int x_angle = 0。 int y_angle = 0。 void CDraw3DView::DrawMy3DGraphics() { 17 int i。 //形體定義 ptn=8。 pts=new HOMOCOORD[ptn]。 //設(shè)置長方體 pts[0].x=1。 pts[0].y=2。 pts[0].z=1。 pts[0].w=1。 pts[1].x=1。 pts[1].y=2。 pts[1].z=1。 pts[1].w=1。 pts[2].x=1。 pts[2].y=2。 pts[2].z=1。 pts[2].w=1。 pts[3].x=1。 pts[3].y=2。 pts[3].z=1。 pts[3].w=1。 pts[4].x=1。 pts[4].y=2。 pts[4].z=1。 pts[4].w=1。 pts[5].x=1。 pts[5].y=2。 pts[5].z=1。 pts[5].w=1。 pts[6].x=1。 pts[6].y=2。 pts[6].z=1。 pts[6].w=1。 pts[7].x=1。 pts[7].y=2。 pts[7].z=1。 pts[7].w=1。 ///給定義面的指針分配內(nèi)存; fn=6。 faces=new PLANE[fn]。 //設(shè)置立方體各面 faces[0].v0=0。 faces[0].v1=1。 faces[0].v2=2。 faces[0].v3=3。 faces[1].v0=4。 faces[1].v1=5。 faces[1].v2=1。 faces[1].v3=0。 faces[2].v0=5。 faces[2].v1=6。 faces[2].v2=2。 faces[2].v3=1。 faces[3].v0=6。 faces[3].v1=7。 faces[3].v
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1