亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

3D數學知識簡介

2019-11-18 16:13:12
字體:
來源:轉載
供稿:網友

前言(PReface

前段時間有些朋友在論壇里問到一些關于3D數學的知識,就想為大家寫點這方面的文章。由于之前比較忙,又遇到過春節,所以最近才著筆寫了這篇文章,希望大家喜歡。這些內容主要是一些理論知識,看上去難免有些枯燥,之后的文章我會加入一些實例進行講解的。如果內容存在錯誤和不全,就請你來更正和添加了。

 

三維坐標系(3D Coordinate System

三維坐標是把二維的平面坐標推廣到三維空間中,在三維坐標中,點(x,y,z)的齊次坐標為(nx,ny,nz,n),其中n為任意不為0的數,規范化的齊次坐標為(x,y,z,1),與之相對應,三維變換的變換矩陣為4×4矩陣。

在三維空間中,我們通常使用右手坐標系(Right-Handed Coordinate System),因為它符合數學上的習慣,而在計算機圖形學中,我們會使用左手坐標系(Left-Handed Coordinate System),因為它比較符合日常習慣。其實,我們可以任意的旋轉這些坐標系,而圖形仍然保持不變。常見的坐標系如下:

屏幕坐標系:相對于顯示器的原點的2D坐標系

本地坐標系:相對于對象的原點的3D坐標系 

世界坐標系:相對于3D世界的原點三維坐標系

對齊(視點)坐標系:世界坐標系的變換,觀察者的位置在世界坐標系的原點。

 

點(Point

點是在某一個坐標系中使用坐標值指定的位置。因此,點到坐標原點之間的距離與坐標系的選擇有關。點P在坐標系A中的坐標為(0,0,0),而在坐標系B中的坐標則為(x,y,z)。

 

向量(Vector

向量是指兩點的差值,具有大小和方向,即給定兩點,就能唯一確定一個向量,向量的大小和方向與坐標系的選擇無關。向量V=(Vx,Vy,Vz)=P1P2=(x2-x1,y2-y1,z2-z1)其中,Vx,Vy和Vz分別為向量V在x,y和z軸上的投影,稱為向量V的x分量(x component),y分量(y component)和z分量(z component)。該向量的大小為:

       向量V與x,y和z軸形成的方向角(Direction Angle):α,β和γ,其中cosα,cosβ和cosγ稱為方向余弦(Direction Cosine)。

    向量加法:V1+V2=(V1x+V2x,V1y+V2y,V1z+V2z

    向量標量乘:aA=(aVx,aVy,aVz


    向量標量積:V1·V2= V1x+V2x,V1y+V2y,V1z+V2z

向量積(叉積):V1×V2=(V1yV2z-V1zV1y,V1zV2x-V1xV2z,V1xV2y-V1yV2z

                    =Ux  Uy  Uz

V1x  V1y  V1z

                                    V2x  V2y  V2z

注:其中Ux,Uy,Uz分別表示沿x軸,y軸和z軸的單位向量。在以后的編程中,我們經常會用到向量積。

 

矩陣(Matrix

矩陣是由若干個數值構成的矩形陣列,這些數值通常為實數,稱為矩陣的元素。如果一個矩陣的行和列數相同,我們則稱該矩陣為方陣(Square Matrix),而只有一行或者一列的矩陣用常用向量表示,例如:[x,y,z]稱為行向量(Row Vector),

x

y 則稱為列向量(Colume Vector)。

z

 

矩陣加法:A11  A12  A13  B11  B12  B13  A11+ B11  A12+ B12  A13+ B13


                A21  A22  A23 + B21  B22  B23 = A21+ B21  A22+ B22  A23+ B23

                A31  A32  A33  B31  B32  B33  A31+ B31  A32+ B32  A33+ B33

 

矩陣標量乘: A11  A12  A13  nA11  nA12  nA13

                    nA21  A22  A23 = nA21  nA22  nA23

                     A31  A32  A33  nA31  nA32  nA33


 

矩陣的乘:

 

矩陣變換(Matrix Transform

三維平移的矩陣表示為:

[x`,y`,z`,1]=[x,y,z,1]  1  0  0  0  

 0  1  0  0 

 0  0  1  0 

 tx ty  tz 1 

 

三維縮放的矩陣表示為:

[x`,y`,z`,1]=[x,y,z,1]  sz  0  0  0 

 0  sy  0  0 

 0  0  sx  0 

 0  0  0  1 

      

繞x軸旋轉的矩陣表示為:

              [x`,y`,z`,1]=[x,y,z,1]  1    0     0    0 

 0  cosα  sinα  0 

 0  -sinα  cosα 0 

 0    0     0    1 

      

繞y軸旋轉的矩陣表示為:

              [x`,y`,z`,1]=[x,y,z,1]  cosα  0  -sinα  0 


  0     1    0    0 

 sinα   0  cosα  0 

  0     0    0    1 

 

繞z軸旋轉的矩陣表示為:

              [x`,y`,z`,1]=[x,y,z,1]  cosα  sinα  0  0 

-sinα  cosα  0  0 

   0      0    1  0 

   0      0    0  1 

 

反射(Reflection

       反射變換也稱為對稱(Symmetric)變換或鏡像(Mirror Image)變換,三維反射變換可以相對于反射軸(Reflection Axis)進行,也可以相對于反射平面進行。相對于反射軸的三維反射變換是通過將圖形繞反射軸旋轉180°來實現的。

       相對于xy平面的反射變換矩陣為:

              1  0  0  0

              0  1  0  0

              0  0  1  0

              0  0  0  1

 

       相對于yz平面的反射變換矩陣為:

              -1  0  0  0

              0  1  0  0

              0  0  1  0


              0  0  0  1

 

       相對于zx平面的反射變換矩陣為:

              1  0  0  0

              0  -1  0  0

              0  0  1  0

              0  0  0  1

 

錯切(Shear

       錯切變換會改變圖形的形狀。

       相對于x軸的錯切變換矩陣為:

               1  0   0   0

              shY  1   0   0

              shz  0   1   0

               0  0   0   1

 

       相對于y軸的錯切變換矩陣為:

              1  shX  0   0

              0   1   0   0

              0  shz  1   0

              0   0   0   1


 

       相對于z軸的錯切變換矩陣為:

1  0  shX  0

              0  1  shY  0

              0  0   1   0

              0  0   0   1

 

從簡單的平移、縮放和旋轉等可以延伸到復合平移、復合縮放、復合旋轉、固定點縮放等概念,這些就要靠讀者自己查閱資料了,在這里我就不多講了。

 

三維轉換(3D Transform

最常見的轉換有以下三種類型:

1、世界坐標系轉換:通過這種轉換方式,可以改變3D物體的位置、大小、角度等等。就是改變3D世界中的物體位置相關的特性;

2、透視轉換:透視轉換決定了三維場景如何透視到二維平面上。包括觀察三維世界攝象機鏡頭的觀察范圍等屬性;

3、觀察坐標系轉換:這種轉換方式決定了三維世界中觀察者的位置,觀察方向等屬性。

 

投影變換(Projection Transformation

       投影變換就是將維數為n的點變換成維數小于n的點。我們會用到的就是將三維空間中的點變換成二維平面上的點。要對三維物體進行投影變換,首先要在三維空間中選擇一個點,稱為投影中心(Center of Projection);再定義一個不經過投影中心的平面,稱為投影平面(Projection Plane);從投影中心向物體的沒一點引射線,這些射線稱為投影線(Projection Ray),投影線與投影平面的交點集合就稱為三維物體在二維投影平面上的投影。

       投影可以分為兩大類,即透視投影(Perspective Projection)和平行投影(Parallel Projection);如果投影中心到投影平面的距離是有限的,那么投影線是從投影中心發出的無數條射線,這種投影稱為透視投影;如果投影中心到投影平面的距離越來越遠,那么投影線就越來越趨于平行,當投影中心到投影平面的距離為無窮遠的時候,投影線為一組平行線,這種投影稱為平行投影。

 

透視投影(Perspective Projection

       設投影中心為PC(XC,YC,ZC),投影平面為Z=ZP平面(ZP≠ZC),即投影平面平行與xy平面(垂直于z軸)并且不經過投影中心,三維空間中的點P(x,y,z)在投影平面上的透視投影為點PP(XP,YP,ZP)。


則透視投影矩陣為:

ZP-ZC    0    XC    -XCZP

  0    ZP-ZC  YC    -YCZP

  0      0    ZP    -ZCZP

  0      0    1      -ZC 

 

       如果投影中心PC在坐標原點,投影平面仍然是Z=ZP平面,即XC=YC=ZC=0,那么透視投影矩陣變成:

              1    0    0    0

0    1    0    0

0    0    1    0

0    0   1/zP   0

 

       如果投影中心PC在z軸上,投影平面是xy平面,即XC=YC=0,那么透視投影矩陣變成:

1    0    0    0

0    1    0    0

0    0    0    0

0    0  -1/zP   1

 

       對于三維空間中任意一組平行線來說,如果它們平行于投影平面,那么它們的透視投影仍然保持平行;如果他們不平行于投影平面,那么它們的透視投影不再保持平行,并且會匯聚到一個點,該點稱為滅點(Vanishing Point);平行于坐標軸的一組平行線形成的滅點稱為主滅點(Principal Vanishing Point)或軸滅點(Axis Vanishing Point)。透視投影的主滅點的數目等于與投影平面相交的坐標軸的數目,而三維空間中的任意投影平面最少與一個坐標軸相交,最多與x,y,z三個坐標軸都相交,所以主滅點的數目最少為1個,最多為3個。根據主滅點的數目,我們可以將透視投影分為三類,即一點透視、二點透視和三點透視。

       如果投影平面只與一個坐標軸相交,與另外兩個坐標軸平行,那么透視投影只形成一個主滅點,稱為一點透視。


 

       如果投影平面與兩個坐標軸相交,與剩下的一個坐標軸平行,那么透視投影形成兩個主滅點,稱為二點透視。二點透視比一點透視具有更強的真實感,被廣泛地應用于建筑、工程、廣告等領域。

 

平行投影(Parallel Projection

       根據投影方向的不同,我們可以把平行投影分為兩類:如果投影方向與投影平面垂直,既投影方向與投影平面法向量的方向相同,那么這種投影稱為正平行投影(Orthographic Parallel Projection),簡稱為正投影;如果投影方向與投影平面斜交,那么這種投影稱為斜平行投影(Ohlique Parallel Projection),簡稱為斜投影。

1、  正投影

正投影經常用于產生物體的三視圖。因為三視圖能準確地反映物體的長度和角度。三視圖是指投影方向分別取作x軸、y軸和z軸方向,投影平面分別垂直于x軸、y軸和z軸事的正投影,產生的視圖分別成為前視圖(Front View)、側視圖(Side View)和頂視圖(Top View)。產生三視圖的投影矩陣分別為:

Mfront= 0  0  0  0

              0  1  0  0

              0  0  1  0

              0  0  0  1

 

Mside= 1  0  0  0

              0  0  0  0

              0  0  1  0

              0  0  0  1

 

Mtop= 1  0  0  0

              0  1  0  0

              0  0  0  0


              0  0  0  1

當投影方向不取坐標軸方向,投影平面不垂直于坐標軸時,產生的正投影稱為軸測正投影(Axonometric Orthographic Projection)。軸測正投影又分為正等測(Isimetric Projection)、正二測和正三測三種。當投影平面與三個坐標軸的交點到坐標原點的距離都相等時為正等測,也稱為等軸測;當投影平面與兩個坐標軸的交點到坐標原點的距離相等時為正二測;當投影平面與三個坐標軸的交點到坐標原點的距離都不相等時為正三測。

在這三種軸測正投影中,正等測應用最為廣泛。由于正等測的投影平面與三個坐標軸的焦點到坐標原點的距離都相等,因此投影方向(即投影平面的法向量)與三個坐標軸的夾角也相等。

 

2、  斜投影

投影方向與投影平面斜交的平行投影稱為斜投影。假設投影平面為Z=ZP平面,投影方向為(XD,YD,ZD)(ZD≠0),三維空間中的點P(x,y,z)在投影平面上的斜投影為點PP(xP,yP,zP)。則斜投影矩陣為:

               ZD   0   -XD   XDZP

               0    ZD  -YD   YDZP

               0    0    0    ZDZP

               0    0    0     ZD 

如果投影平面為z=0平面,即ZP=0,那么斜投影矩陣變成:

               1   0  -XD/ZD   0

               0   1  -YD/ZD   0

               0   0    0      0

               0   0    0      1

 

總結(Conclusion


       上面所提到的知識,都是我們平時編程時經常會用到的,可能還有些知識沒提到,只好靠自己翻翻線形代數書了。如果對上面知識有什么不懂的和錯誤的,可以跟我討論。如果你有基礎知識,把這些理論用于實踐應該是很輕松的事,如果你沒有基礎知識,也沒什么大不了的,可以先看看關于OpenGL的書入門。這樣上手會快一些。另外,上面的內存可能存在一些格式問題,請大家諒解。

(出處:http://www.49028c.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品日韩激情在线电影| 日韩一区二区在线视频| 亚洲欧美日韩视频一区| 日韩免费av一区二区| 亚洲视频777| 国产不卡av在线| 色婷婷综合成人| 日韩在线观看免费全集电视剧网站| 欧美乱大交做爰xxxⅹ性3| 久热在线中文字幕色999舞| 国产午夜精品全部视频在线播放| 精品亚洲男同gayvideo网站| 性欧美xxxx交| 国产精品无码专区在线观看| 欧美大片欧美激情性色a∨久久| 91久久精品国产| 国产区精品在线观看| 亚洲精品美女在线观看| 国产一区二区日韩精品欧美精品| 久久久免费观看| 日本精品一区二区三区在线播放视频| 欧美大片va欧美在线播放| 欧美孕妇与黑人孕交| 国产手机视频精品| 欧美一级视频一区二区| 色一区av在线| 久久久久这里只有精品| 伊人久久久久久久久久| 久精品免费视频| 91探花福利精品国产自产在线| 日韩电影免费观看在线| 亚洲韩国日本中文字幕| 欧美成人激情视频免费观看| 国产日韩欧美日韩大片| 国产97在线视频| 日韩av色综合| 亚洲精品456在线播放狼人| 日韩乱码在线视频| 久久久www成人免费精品| 成人性教育视频在线观看| 国产精品久久久久久av福利软件| 欧美大尺度激情区在线播放| 国产精品成人一区二区| 精品视频—区二区三区免费| 91精品视频在线| 日韩在线中文字| 91在线精品播放| 国产成人精品久久亚洲高清不卡| 亚洲小视频在线观看| 精品国偷自产在线视频| 在线精品高清中文字幕| 国产不卡av在线免费观看| 国产在线视频2019最新视频| 欧美老少做受xxxx高潮| 日韩在线视频线视频免费网站| 亚洲偷欧美偷国内偷| 色综合天天狠天天透天天伊人| 91老司机精品视频| 欧美黄色免费网站| 九九热这里只有精品6| 国产一区二区三区高清在线观看| 日韩亚洲在线观看| 久久久电影免费观看完整版| 色香阁99久久精品久久久| 久久91精品国产91久久跳| 精品视频在线观看日韩| 久久久久久久影视| 国产欧美欧洲在线观看| 欧美日韩一区二区在线| 成人欧美一区二区三区在线湿哒哒| 国产精品电影观看| 日韩欧亚中文在线| 国产成人精品一区二区在线| 欧美噜噜久久久xxx| 久久精品一偷一偷国产| 精品久久久av| 97色伦亚洲国产| 成人中心免费视频| 久久精品国产精品亚洲| 亚洲色图欧美制服丝袜另类第一页| 欧美极品第一页| 国产精品高潮呻吟久久av黑人| 国产精品中文久久久久久久| 久久香蕉国产线看观看av| 亚洲精品一区二区久| 久久免费少妇高潮久久精品99| 亚洲欧美激情精品一区二区| 97精品国产97久久久久久春色| 国产精品视频自拍| 国产91精品最新在线播放| 日本免费在线精品| 性欧美在线看片a免费观看| 中文字幕久热精品视频在线| 久久91精品国产91久久跳| 中文欧美日本在线资源| 亚洲午夜久久久影院| 日韩美女在线观看| 97人人爽人人喊人人模波多| 国产精品男人爽免费视频1| 色婷婷综合成人| 欧美激情第99页| 久久精品国产久精国产思思| 亚洲免费一在线| 久久夜色精品国产亚洲aⅴ| 欧美激情喷水视频| 国产精品夜色7777狼人| 国产精品久久久久久久久久久新郎| 少妇高潮久久77777| 国产精品网红直播| 中文字幕亚洲国产| 久久久久亚洲精品成人网小说| 日本精品一区二区三区在线| 96国产粉嫩美女| 欧美成人性色生活仑片| 亚洲电影成人av99爱色| 亚洲高清一二三区| 国产精品久久久久久久av电影| 亚洲成人a**站| 亚洲国产欧美日韩精品| 亚洲国产欧美一区二区三区久久| 欧美成在线视频| 国内精品久久久久久久久| 欧美成人午夜激情视频| 国产精品2018| 亚洲国产精品久久久久| 日韩视频免费大全中文字幕| 91久久久久久久一区二区| 国产精品男人爽免费视频1| 97国产精品久久| 亚洲欧洲高清在线| 国产日韩在线看片| 亚洲欧美一区二区精品久久久| 久久久久免费视频| 国产一级揄自揄精品视频| 亚洲福利小视频| 性金发美女69hd大尺寸| 69av视频在线播放| 精品久久久久久久久久| 2019av中文字幕| 九九热r在线视频精品| 亚洲欧美成人精品| 欧美成人国产va精品日本一级| 国产精品99蜜臀久久不卡二区| 欧美日韩国产专区| 欧美性资源免费| 精品伊人久久97| 91在线观看免费观看| 国产午夜一区二区| 日韩精品亚洲元码| 91系列在线播放| 成人精品一区二区三区电影黑人| 在线观看日韩视频| 亚洲人成电影网站色…| 狠狠色狠色综合曰曰| 午夜精品国产精品大乳美女| 色诱女教师一区二区三区| 26uuu日韩精品一区二区| www.久久草.com| 欧美激情va永久在线播放| 欧美精品国产精品日韩精品| 久久综合国产精品台湾中文娱乐网| 91av视频导航| 久久视频在线看| 国内自拍欧美激情|