版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、坐標系與右手定則(OpenInventor使用的坐標系統(tǒng))坐標系與右手定則(OpenInventor使用的坐標系統(tǒng))(轉) 在三維坐標系中,Z軸的正軸方向是根據右手定則確定的。右手定則也決定三維空間中任一坐標軸的正旋轉方向。 要標注X、Y和Z軸的正軸方向,就將右手背對著屏幕放置,拇指即指向X軸的正方向。伸出食指和中指,如右圖所示,食指指向Y軸的正方向,中指所指示的方向即是Z軸的正方向。 要確定軸的正旋轉方向,如右圖所示,用右手的大拇指指向軸的正方向,彎曲手指。那么手指所指示的方向即是軸的正旋轉方向。Open Inventor
2、; 對 3D 數(shù)據使用的是右手坐標系,從屏幕內指向外,表示 z 軸的正方向。所有的角度單位都是弧度。對象都是在自己的局部坐標系空間下進行描述的,既眾所周知的"對象坐標系空間"(object coordinate space)。當場景中的所有物體都已經進行完坐標變換后,那么它們就都在"世界坐標系空間"下描述了(world coordinate space)。照相機和燈光節(jié)點處于世界坐標系空間下。三維坐標系 三維坐標系三維笛卡兒坐標系是在二維笛卡兒坐標系的基礎上根據右手定則增加第三維坐標(即Z軸)而形成的。同二維坐標系一樣,AutoC
3、AD中的三維坐標系有世界坐標系WCS(World Coordinate System)和用戶坐標系UCS(User Coordinate System)兩種形式。目錄1. 1.三維笛卡爾坐標系 2. 2.圓柱坐標系 3. 3.球面坐標系展開1.右手定則 1.右手定則 在三維坐標系中,Z軸的正軸方向是根據右手定則確定的。右手定則也決定三維空間中任一坐標軸的正旋轉方向。 要標注X、Y和Z軸的正軸方向,就將右手背對著屏幕放置,拇指即指向X軸的正方向。伸出食指和中指,如右圖所示,食指指向Y軸的正方向,中指所指示的方向即是Z軸的正方向。 要確定軸的正旋轉方向,如右圖所示,用右手的大拇指指向軸的正方向,彎
4、曲手指。那么手指所指示的方向即是軸的正旋轉方向。 2.世界坐標系2.世界坐標系(WCS) 在AutoCAD中,三維世界坐標系是在二維世界坐標系的基礎上根據右手定則增加Z軸而形成的。同二維世界坐標系一樣,三維世界坐標系是其他三維坐標系的基礎,不能對其重新定義。 3.用戶坐標系3.用戶坐標系(UCS) 用戶坐標系為坐標輸入、操作平面和觀察提供一種可變動的坐標系。定義一個用戶坐標系即改變原點(0,0,0)的位置以及XY平面和Z軸的方向??稍贏utoCAD的三維空間中任何位置定位和定向UCS,也可隨時定義、保存和復用多個用戶坐標系。詳見本章第3節(jié)。 三維坐標形式在AutoCA
5、D中提供了下列三種三維坐標形式: 1.三維笛卡爾坐標 三維笛卡爾坐標(X,Y,Z)與二維笛卡爾坐標(X,Y)相似,即在X和Y值基礎上增加Z值。同樣還可以使用基于當前坐標系原點的絕對坐標值或基于上個輸入點的相對坐標值。 2.圓柱坐標 圓柱坐標與二維極坐標類似,但增加了從所要確定的點到XY平面的距離值。即三維點的圓柱坐標可通過該點與UCS原點連線在XY平面上的投影長度,該投影與X軸夾角、以及該點垂直于XY平面的Z值來確定。例如,坐標“10<60,20”表示某點與原點的連線在XY平面上的投影長度為10個單位,其投影與X軸的夾角為60度,在Z軸上的投影點的Z值為20。 圓柱坐標也有相對的坐標形式
6、,如相對圓柱坐標“ 10<45 ,30”表示某點與上個輸入點連線在XY平面上的投影長為10個單位,該投影與X軸正方向的夾角為45度且Z軸的距離為30個單位。 3.球面坐標 球面坐標也類似與二維極坐標。在確定某點時,應分別指定該點與當前坐標系原點的距離,二者連線在XY平面上的投影與X軸的角度,以及二者連線與XY平面的角度。例如,坐標“10<45<60”表示一個點,它與當前UCS原點的距離為10個單位,在XY平面的投影與X軸的夾角為45度,該點與XY平面的夾角為60度。 同樣,圓柱坐標的相對形式表明了某點與上個輸入點的距離,二者連線在XY平面上的投影與X軸的角度,以及二者連線與X
7、Y平面的角度。 數(shù)學中常用的三種三維坐標系1.三維笛卡爾坐標系三維笛卡爾坐標(X,Y,Z)是在三維笛卡爾坐標系下的點的表達式,其中,y,z分別是擁有共同的零點且彼此相互正交的x軸,y軸,z軸的坐標值。 2.圓柱坐標系圓柱坐標(,z)是圓柱坐標系上的點的表達式。設P(x,y,z)為空間內一點,則點P也可用這樣三個有次序的數(shù),z來確定,其中為點P在xoy平面的投影M與原點的距離,為有向線段PO在xoy平面的投影MO與x軸正向所夾的角。圓柱坐標系和三維笛卡爾坐標系的點的坐標的對應關系是,x=cos,y=sin,z=z。 3.球面坐標系球面坐標系由到原點的距離、方位角、仰角三個維度構成。 球面坐標(,
8、)是球面坐標系上的點的表達式。設P(x,y,z)為空間內一點,則點P也可用這樣三個有次序的數(shù)r,來確定,其中r為原點O與點P間的距離,為有向線段與z軸正向所夾的角,為從正z軸來看自x軸按逆時針方向轉到有向線段的角,這里M為點P在xOy面上的投影。這樣的三個數(shù)r,叫做點P的球面坐標,這里r,的變化范圍為 r0,+), 0, 2, 0, . r = 常數(shù),即以原點為心的球面; = 常數(shù),即以原點為頂點、z軸為軸的圓錐面; = 常數(shù),即過z軸的半平面。 其中 x=rsincos y=rsinsin z=rcos笛卡爾坐標系是直角坐標系和斜角坐標系的統(tǒng)稱。 相交于原點的兩條數(shù)軸,構成了平面仿射坐標系。
9、如兩條數(shù)軸上的度量單位相等,則稱此仿射坐標系為笛卡爾坐標系。兩條數(shù)軸互相垂直的笛卡爾坐標系,稱為笛卡爾直角坐標系,否則稱為笛卡爾斜角坐標系。 仿射坐標系和笛卡爾坐標系平面向空間的推廣 相交于原點的三條不共面的數(shù)軸構成空間的仿射坐標系。三條數(shù)軸上度量單位相等的仿射坐標系被稱為空間笛卡爾坐標系。三條數(shù)軸互相垂直的笛卡爾坐標系被稱為空間笛卡爾直角坐標系,否則被稱為空間笛卡爾斜角坐標系。 笛卡爾坐標,它表示了點在空間中的位置,和直角坐標有區(qū)別,兩種坐標可以相互轉換。舉個例子:某個點的笛卡爾坐標是493 ,454, 967,那它的X軸坐標就是4+9+3=16,Y軸坐標是4+5+4=13,Z軸坐標是9+6
10、+7=22,因此這個點的直角坐標是(16, 13, 22),坐標值不可能為負數(shù)(因為三個自然數(shù)相加無法成為負數(shù))。 這個應該是了 右手定則 在三維坐標系中,Z軸的正軸方向是根據右手定則確定的。右手定則也決定三維空間中任一坐標軸的正旋轉方向。 要標注X、Y和Z軸的正軸方向,就將右手背對著屏幕放置,拇指即指向X軸的正方向。伸出食指和中指,食指指向Y軸的正方向,中指所指示的方向即是Z軸的正方向三維坐標系與幾何學Microsoft® Direct3D®應用程序需要熟悉三維幾何學原理。本節(jié)介紹創(chuàng)建三維場景所需的最重要的幾何概念。本節(jié)涉及到以下主題。這些主題給讀者提供了一個對Direc
11、t3D應用程序所涉及到的基本概念的高層描述。更多有關這些主題的信息,請參閱更多的信息。三維坐標系通常三維圖形應用程序使用兩種笛卡爾坐標系:左手系和右手系。在這兩種坐標系中,正x軸指向右面,正y軸指向上面。通過沿正x軸方向到正y軸方向握拳,大姆指的指向就是相應坐標系統(tǒng)的正z軸的指向。下圖顯示了這兩種坐標系統(tǒng)。Microsoft® Direct3D®使用左手坐標系。如果正在移植基于右手坐標系的應用程序,必須將傳給Direct3D的數(shù)據做兩點改變。· 顛倒三角形頂點的順序,這樣系統(tǒng)會從正面以順時針的方向遍歷它們。換句話說,如果頂點是v0,v1,v2,那么以v0,v2,v
12、1的順序傳給Direct3D。 · 用觀察矩陣對世界空間中的z值取反。要做到這一點,將表示觀察矩陣的D3DMATRIX結構的_31、_32、_33和_34成員的符號取反。 要得到等同于右手系的效果,可以使用D3DXMatrixPerspectiveRH和D3DXMatrixOrthoRH函數(shù)定義投影矩陣。但是,要小心使用D3DXMatrixLookAtRH函數(shù),并相應地顛倒背面剔除的順序及放置立方體貼圖。雖然左手坐標系和右手坐標系是最為常用的系統(tǒng),但在三維軟件中還使用許多其它坐標系。例如,對三維建模應用程序而言,使用y軸指向或背向觀察者的坐標系統(tǒng)并非罕見。在這種情況下,任意軸(x,y
13、或z)的正半軸指向觀察者的被定義為右手系。任意軸(x,y或z)的正半軸背向觀察者的被定義為左手系。如果正在移植一個基于左手系進行建模的應用程序,z軸向上,那么除了前面的步驟外,還必須旋轉所有的頂點數(shù)據(譯注:如果原來的坐標系為正x軸向里,正y軸向左,正z軸向上,那么傳給Direct3D的頂點的x值對應原來的y值,y值對應原來的z值,z值對應原來的x值,亦即旋轉頂點數(shù)據)。對三維坐標系統(tǒng)中定義的三維物體執(zhí)行的最基本操作是變換、旋轉和縮放。可以合并這些基本變換以創(chuàng)建一個新的變換矩陣。細節(jié)請參閱三維變換。即使合并相同的變換操作,不同的合并順序得到的結果是不可交換的矩陣相乘的順序很重要。三維圖元三維圖
14、元是組成單個三維實體的頂點集合。三維坐標系統(tǒng)中最簡單的圖元是點的集合,稱為點表。通常三維圖元是多邊形。一個多邊形是由至少三個頂點描繪的三維形體。最簡單的多邊形是三角形。Microsoft® Direct3D®使用三角形組成大多數(shù)多邊形,因為三角形的三個頂點一定是共面的。應用程序可以用三角形組合成大而復雜的多邊形及網格(mesh)。下圖顯示了一個立方體。立方體的每個面由兩個三角形組成。整個三角形的集合構成了一個立方體圖元??梢詫⒓y理和材質應用于圖元的表面使它們看起來像是實心的??梢允褂萌切蝿?chuàng)建具有光滑曲面的圖元。下圖顯示了如何用三角形模擬一個球體。應用了材質后,渲染得到的球
15、體看起來是彎曲的。如果使用高洛德著色,結果更是如此。更多信息請參閱高洛德著色。表面和頂點法向量網格中的每個面有一個垂直的法向量。該向量的方向由定義頂點的順序及坐標系統(tǒng)是左手系還是右手系決定。表面法向量從表面上指向正向面那一側,如果把表面水平放置,正向面朝上,背向面朝下,那么表面法向量為垂直于表面從下方指向上方。在Microsoft® Direct3D®中,只有面的正向是可視的。一個正向面是頂點按照順時針順序定義的面。任何不是正向面的面都是背向面。由于Direct3D不總是渲染背向面,因此背向面要被剔除。如果想要渲染背向面的話,可以改變剔除模式。更多信息請參閱剔除狀態(tài)。Dir
16、ect3D在計算高洛德著色、光照和紋理效果時使用頂點法向。Direct3D使用頂點法向計算光源和表面間的夾角,對多邊形進行高洛德著色。Direct3D計算每個頂點的顏色和亮度值,并對圖元表面所覆蓋的所有像素點進行插值。Direct3D使用夾角計算光強度,夾角越大,表面得到的光照就越少。如果正在創(chuàng)建的物體是平直的,可將頂點法向設為與表面垂直,如下圖所示。該圖定義了一個由兩個三角形組成的平直表面。但是,更可能的情況是物體由三角形帶(triangle strips)組成且三角形不共面。要對整個三角形帶的三角形平滑著色的一個簡單方法是首先計算與頂點相關聯(lián)的每個多邊形表面的表面法向量。可以這樣計算頂點法
17、向,使頂點法向與頂點所屬的每個表面的法向的夾角相等。但是,對復雜圖元來說這種方法可能不夠有效。這種方法如下圖所示。圖中有兩個表面,S1與S2,它們的鄰邊在上方。S1與S2的法向量用藍色顯示。頂點的法向量用紅色顯示。頂點法向量與S1表面法向的夾角和頂點法向量與S2表面法向的夾角相同。當對這兩個表面進行光照計算和高洛德著色時,得到結果是中間的邊被平滑著色,看起來像是弧形的(而不是有棱角的)。如果頂點法向偏向與它相關聯(lián)的某個面,那么會導致那個面上的點光強度的增加或減少。下圖顯示了一個例子。這些面的鄰邊依然朝上。頂點法向傾向S1,與頂點法向與表面法向有相同的夾角相比,這使頂點法向與光源間的夾角變小???/p>
18、以用高洛德著色在三維場景中顯示一些有清晰邊緣的物體。要達到這個目的,只要在需要產生清晰邊緣的表面交線處,把表面法向復制給交線處頂點的法向,如下圖所示。如果使用DrawPrimitive方法渲染場景,要將有鋒利邊緣的物體定義為三角形表,而非三角形帶。當將物體定義為三角形帶時,Direct3D會將它作為由多個三角形組成的單個多邊形處理。高洛德著色被同時應用于多邊形每個表面的內部和表面之間。結果產生表面之間平滑著色的物體。因為三角形表由一系列不相連的三角形面組成,所以Direct3D對多邊形每個面的內部使用高洛德著色。但是,沒有在表面之間應用高洛德著色。如果三角形表的兩個或更多的三角形是相鄰的,那么
19、在它們之間看起來會有一條鋒利邊緣。另一種可選的方法是在渲染具有鋒利邊緣的物體時改變到平面著色模式。這在計算上是最有效的方法,但它可能導致場景中的物體不如用高洛德著色渲染的物體真實。三角形光柵化法則頂點指定的點經常不能精確地對應到屏幕上的像素。此時,Microsoft® Direct3D®使用三角形光柵化法則決定對于給定三角形使用哪個像素。三角形光柵化法則Direct3D在填充幾何圖形時使用左上填充約定(top-left filling convention)。這與Microsoft Windows®的圖形設備接口(GUI)和OpenGL中的矩形使用的約定相同。Di
20、rect3D中,像素的中心是決定點。如果中心在三角形內,那么該像素就是三角形的一部分。像素中心用整數(shù)坐標表示。這里描述的Direct3D使用的三角形光柵化法則不一定適用于所有可用的硬件。測試可以發(fā)現(xiàn)這些法則的實現(xiàn)間的細微變化。下圖顯示了一個左上角為(0,0),右下角為(5,5)的矩形。正如大家想象的那樣,此矩形填充25個像素。矩形的寬度由right減left定義。高度由bottom減top定義。在左上填充約定中,上表示水平span在垂直方向上的位置,左表示span中的像素在水平方向上的位置。一條邊除非是水平的,否則不可能是頂邊一般來說,大多數(shù)三角形只有左邊或右邊。左上填充約定確定當一個三角形穿
21、過像素的中心時Direct3D采取的動作。下圖顯示了兩個三角形,一個在(0,0),(5,0)和(5,5),另一個在(0,5),(0,0)和(5,5)。在這種情況下第一個三角形得到15個像素(顯示為黑色),而第二個得到10個像素(顯示為灰色),因為公用邊是第一個三角形的左邊。如果應用程序定義一個左上角為(0.5,0.5),右下角為(2.5,4.5)的矩形,那么這個矩形的中心在(1.5,2.5)。當Direct3D光柵化器tessellate這個矩形時,每個像素的中心都毫無異義地分別位于四個三角形中,此時就不需要左上填充約定。下圖顯示了這種情況。矩形內的像素根據在Direct3D中被哪個三角形包含
22、做了相應的標注。如果將上例中的矩形移動,使之左上角為(1.0,1.0),右下角為(3.0,5.0),中心為(2.0,3.0),那么Direct3D使用左上角填充約定。這個矩形中大多數(shù)的像素跨越兩個或更多的三角形的邊界,如下圖所示。這兩個矩形會影響到相同的像素。點、線光柵化法則點和點精靈一樣,都被渲染為與屏幕邊緣對齊的四邊形,因此它們使用與多邊形同樣的渲染法則。非抗鋸齒線段的渲染法則與GDI使用的法則完全相同。更多有關抗鋸齒線段的渲染,請參閱ID3DXLine。點精靈光柵化法則對點精靈和patch圖元的渲染,就好像先把圖元tessellate成三角形,然后將得到的三角形進行光柵化。更多信息,請參
23、閱點精靈。矩形貫穿Microsoft® Direct3D®和Microsoft Windows®編程,都是用術語包圍矩形來討論屏幕上的物體。由于包圍矩形的邊總是與屏幕的邊平行,因此矩形可以用兩個點描述,左上角和右下角。當在屏幕上進行位塊傳輸(Blit = Bit block transfer)或命中檢測時,大多數(shù)應用程序使用RECT結構保存包圍矩形的信息。C+中,RECT結構有如下定義。typedef struct tagRECT LONG left; / 這是左上角的x坐標。 LONG top; / 這是左上角的y坐標。 LONG right; / 這是右下角的
24、x坐標。 LONG bottom; / 這是右下角的y坐標。 RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT; 在上例中,left和top成員是包圍矩形左上角的x-和y-坐標。類似地,right和bottom成員組成右下角的坐標。下圖直觀地顯示了這些值。為了效率、一致性及易用性, Direct3D所有的presentation函數(shù)都使用矩形。三角形插值對象(interpolants)在渲染時,流水線會貫穿每個三角形的表面進行頂點數(shù)據插值。有五種可能的數(shù)據類型可以進行插值。頂點數(shù)據可以是各種類型的數(shù)據,包括(但不限于):漫反射色、鏡面反射色、漫反射阿爾法(三角形透
25、明度)、鏡面反射阿爾法、霧因子(固定功能流水線從鏡面反射的阿爾法分量中取得,可編程頂點流水線則從霧寄存器中取得)。頂點數(shù)據通過頂點聲明定義。對一些頂點數(shù)據的插值取決于當前的著色模式,如下表所示。著色模式描述平面 在平面著色模式下只對霧因子進行插值。對所有其它的插值對象,整個面都使用三角形第一個頂點的顏色。高洛德 在所有三個頂點間進行線性插值。根據不同的顏色模型,對漫反射色和鏡面反射色的處理是不同的。在RGB顏色模型中,系統(tǒng)在插值時使用紅、綠和藍顏色分量。顏色的阿爾法成員作為單獨的插值對象對待,因為設備驅動程序可以以兩種不同的方法實現(xiàn)透明:使用紋理混合或使用點畫法(stippling)??梢杂肈3DCAPS9結構的ShadeCaps成員確定設備驅動程序支持何種插值。向量、頂點和四元數(shù)貫穿Microsoft® Direct3D®,頂點用于描述位置和方向。圖元中的每個頂點由指定其位置的向量、顏色、紋理坐標和指定其方向的法向量描述。四元數(shù)給三元素向量的 x, y, z值增加了第四個元素。用于三
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學年陜西省渭南市韓城市高二(下)期末地理試卷
- 《精神分析治療》課件
- 上海市長寧區(qū)2024-2025學年九年級(上)期末物理試卷(一模)(含答案)
- 四年級數(shù)學(三位數(shù)乘兩位數(shù))計算題專項練習及答案
- 2025年全國計算機二級vfp全真模擬考試題庫及答案(共八套)
- 第15課 珍惜水資源 說課稿-2024-2025學年科學三年級上冊(蘇教版)001
- 責任擔當青春志
- 2024版母子公司借款合同范本
- 第四單元閱讀綜合實踐 【知識精研】八年級上冊同步備課
- 中藥藥理-解表藥課件
- 以諾書-中英對照
- 卵巢黃體破裂的護理
- 供應鏈管理師(三級)認證備考試題及答案
- 自然科學基金項目申報書(模板)
- 中華詩詞之美學習通超星期末考試答案章節(jié)答案2024年
- 廣東高中學業(yè)水平測試考綱考點必背化學
- 2023年新高考北京卷化學高考真題(含解析)
- GB/T 44273-2024水力發(fā)電工程運行管理規(guī)范
- 羅定市2024屆小升初必考題數(shù)學檢測卷含解析
- 2024至2030年中國消費級無人機行業(yè)市場預測與投資規(guī)劃分析報告
- 2024羽毛球教案36課時
評論
0/150
提交評論