一種利用計算機實現畫法幾何投影變換的方法
2023-12-07 17:49:36 1
專利名稱:一種利用計算機實現畫法幾何投影變換的方法
技術領域:
本發明涉及畫法幾何技術領域和計算機圖形技術領域,特別是涉及一種利用計算機實現畫法幾何投影變換的方法。
背景技術:
畫法幾何主要利用投影的原理用平面上作圖的方式表示形體並解決空間幾何問題,這種方法幾何意義明顯,直觀性強,在工程上具有廣泛的應用。當一個幾何元素處於不利於求解的位置時,需要經過投影變換,將其變換到有利於求解的位置。投影變換主要分為兩類換面法(變換投影面)和旋轉法(變換幾何元素的位置),包括四類基本問題,分別是將投影面的傾斜線變換成投影的平行線,將投影面的傾斜線變換成投影的垂直線,將投影面的傾斜面變換成投影的平行面,將投影面的傾斜面變換成投影的垂直面。對於換面法, 又分先變換H面和先變換V面,為了通過作圖的方式求得解,必須滿足一定的約束條件以換面法為例,要求滿足兩個原則(1) 一次變換隻能更換原投影體系中的一個投影面,另一投影面必須保留;(2)新投影面必須垂直於原來投影面體系中的一個投影面。否則,新投影面上的投影與原投影面上的投影失去了聯繫,無法通過作圖獲得。由於手工作圖過程效率低、精確度不足等,制約了畫法幾何學的應用。上世紀80 年代曾有人試圖將這一過程計算機化,方法是針對每種投影變換的作圖過程,將其解析化, 將圖形信息轉變為代數方程求解,提高了計算的準確度和效率。但是算法缺少統一性,對每個作圖過程都要重新計算出其解析表達式。這種方法被稱為「圖解計算法」。
發明內容
本發明所要解決的技術問題是提供一種利用計算機實現畫法幾何投影變換的方法,使得投影變換更為簡單直觀、統一。本發明解決其技術問題所採用的技術方案是提供一種利用計算機實現畫法幾何投影變換的方法,包括以下步驟(1)在原坐標系XYZ中對幾何圖元進行定義;(2)通過建立新坐標系\ Τ構建新投影面體系,使幾何圖元與新投影面處於有利於解題的位置;(3)通過新坐標系Χ Τ與原坐標系XYZ間的坐標變換矩陣得到新投影面上的投影坐標,實現投影變換。所述的步驟⑵包括以下子步驟(21)以目標投影面的法向作為一個新的坐標軸;(22)以投影面為一個新的坐標平面。所述的步驟(3)包括以下子步驟(31)通過坐標變換,將原坐標系XYZ的幾何圖元所對應的點P變換到新坐標系 Χ*Υ*Ζ*下對應的點P* ;
(32)將新坐標系下對應的點P*在新投影面上進行投影。(33)將點Pl逆變換到原坐標系XYZ得到點Pt,點Pt就是點P在新投影面上的投影。所述步驟中目標投影面為滿足與幾何圖元的位置便於解題的平面。所述步驟(32)中如果新投影面為Χ ^平面,則點P*取出其在Χ ^平面上的坐標; 如果新投影面為Zl*平面,則點P*取出其在Zl*平面上的坐標;如果新投影面為rr平面, 則點P*取出其在Tt平面上的坐標。有益效果由於採用了上述的技術方案,本發明與現有技術相比,具有以下的優點和積極效果本發明通過構建新的坐標系,並向其坐標面投影的方式,實現了畫法幾何中的投影變換。而且在傳統畫法幾何中需要一次或兩次變換,以及變換投影面及變換幾何圖元的方法都可統一到本發明中,而且這種變換對任意圖元的任何投影變換都是共性的、通用的。 本發明的變換是在兩個三維坐標系下的進行的,是三維間的變換,所謂「投影」僅需取其中二維坐標,因此,更符合人的空間直觀思維方式,而且對於「消隱」等三維處理工作需要的深度信息沒有丟失。本發明解除了傳統做法中「新投影面必須與原來投影面體系中的一個投影面垂直」的束縛,任何一種投影變換都可以一次變換完成,簡化了計算過程,使得計算過程與投影圖對應,算法直觀、便於交流,而且,統一了傳統畫法幾何中的各種投影變換方法,便於程序的自動實現。
圖1是實施例1採用現有技術的變換過程示意圖;圖2是實施例1採用現有技術的解析過程示意圖;圖3是實施例1採用本發明的變換過程示意圖;圖4是實施例2採用現有技術的變換過程示意圖;圖5是實施例2採用本發明的變換過程的軸測示意圖;圖6是實施例2採用本發明的變換過程示意圖。
具體實施例方式下面結合具體實施例,進一步闡述本發明。應理解,這些實施例僅用於說明本發明而不用於限制本發明的範圍。此外應理解,在閱讀了本發明講授的內容之後,本領域技術人員可以對本發明作各種改動或修改,這些等價形式同樣落於本申請所附權利要求書所限定的範圍。本發明的涉及一種利用計算機實現畫法幾何投影變換的方法,包括以下步驟(1)定義圖元在畫法幾何中,組合體是由基本體組合(簡單疊加、相交、相切等的交併集)而成。 「體%面(包括平面和曲面)組成,面由線(包括直線和曲線)組成,線最終由點構造。基於此,在計算機中,以點及不變量來描述幾何圖元,可以簡化和統一投影變換算法。例如,圓
4球由球心的點和圓球的半徑來描述;圓柱由底面圓的圓心點和和半徑及圓柱的高度描述; 圓錐由圓錐底面圓的圓心點及半徑及圓錐高來定義;正稜柱由特徵多邊形的頂點及高度來定義,稜錐由各頂點來定義等等。因此,求三維幾何體的投影變換,歸根到底就是求點的投影變換。(2)建立新坐標系投影變換中新坐標系的建立原則是使新投影面和幾何元素處於有利解題的位置。 這個新坐標系的每個坐標平面都對應一個新投影面。這個新投影面不必滿足傳統畫法幾何中的「新投影面必須垂直於原來投影面體系中的一個投影面」的要求,可以是任意的。例如,把投影面的傾斜線變換為投影面的垂直線, 傳統的做法是經過兩次變換,建立兩個新的坐標系。本發明則只要建立一個新坐標系,經過一次變換即可,其方法為以直線為新的ζ軸(記為T)建立新坐標系χ Τ。則該直線必與XYi坐標平面對應的新投影面垂直。(3)求取新投影面上的投影,實現投影變換。原理及技術方案如下通過新坐標系Χ Τ與原坐標系XYZ間的坐標變換矩陣新坐標系下的坐標;取出新投影面對應的新坐標系下的兩點坐標,得到點在新投影面上的投影,實現投影變換。在某坐標平面上的投影,只要取出點在該坐標平面的兩個坐標即可,例如,點 P (X,1,ζ)向XY平面的投影就是P (X,y,0)。設任意的新坐標係為Χ Τ,平面Π是這個新坐標系下的一個坐標平面,例如Π為新坐標系的廣^平面,則向平面Π的投影的工作如下 將原坐標系的點變換到新坐標系下,P(x,y,ζ)變換為Ρ*(χ /,ζ*)。 取Ρ*(χ*,y*,ζ*)在新坐標系下向坐標平面Π的投影,得到ρ*(Χ*,y*,0),則ρ*就是點P在平面π上的投影(新坐標系下)。 如果需要,還可以將ρ* (χ*,y*,0)逆變換到原始坐標下,為Pt Oct,yt,zt),則pt就是點P在平面π上的投影(原始坐標系下)。下面以點的投影變換為例進一步說明本發明。Stepl定義圖元在原始坐標系XYZ中定義點P (X,y,ζ);St印2構建新(目標)坐標系構造任意坐標系作為投影面體坐標系Χ Τ,則三個坐標平面對應新的三投影面體系,分別記為H1 (Χ*Υ*平面),V1 (Ζ*Χ*平面)和W1 (Υ*Ζ*平面);St印3求新投影面上的投影將點P(x,y,ζ)向新坐標平面投影。具體方法分為三步St印3-1通過坐標變換,將原坐標系的點變換到新坐標系下,即將點P(x, y,ζ)變換為點 P*(x*,y*,ζ*);St印3-2在新坐標系下,求點Ρ*(Χ*,/,ζ*)在新投影面上的投影 Λ實現投影變換如果新投影面為H1 (Χ*Υ*平面),則取出點P* (χ*,y*,ζ*)的x*、y*坐標,有pi* (χ*, y*, 0);如果新投影面為V1 (Z*X*平面),則取出點P*(χ*,y*,ζ*)的ζ*、χ*坐標,有pi* (x*,0, ζ*);
如果新投影面為W1 (Y*Z*平面),則取出點P*(x% y*,ζ*)的y*、z*坐標,有pl*(0,y*, ζ*);St印3-3新投影面的投影在原坐標系的坐標的求解方法將P*(X*,f, ζ*)在新投影面上的投影Pl*逆變換到原始坐標系XYZ,得到pt(xt,yt,zt),則Pt就是點P在對應的新投影面上的投影。Mep4,可以根據點在新坐標系的投影反求點原始坐標系的投影。將新投影體系中的任意點Q(X*,/,ζ*)逆變換回原始坐標系,得到其原始坐標Q(x,y, ζ)。取其相應兩個坐標,得到在原投影面得投影。下面再以兩個實施例進一步說明本發明。實施例1 參照圖3,是一種將投影面的傾斜線AB變換為投影面的垂直線的方法。 圖1和圖2給出了傳統做法的示意圖,便於與本發明對照。直線的定義以直線上兩個點A(Xl,Yl, Z1)、Β(χ2,y2, ζ2)描述直線。新坐標系的建立目標投影面為與直線AB垂直的平面,則目標投影面的法向恰為直線ΑΒ。建立方法以直線AB為新的Z軸,記為Τ,以垂直於直線AB的面為H1面(XY坐標平面),通過Ζ*的任意平面為V1面W坐標平面),得到H1W1投影面,其中,可以以點 A(Xij7ijZ1)或點B(x2,y2,z2)作為新坐標系的原點。原坐標軸X、Y、Z和新坐標軸X*、Y*、Z* 如圖3所示。需要說明的是,新坐標系的原點位置不影響投影點的位置及其在原始坐標系的坐標。為了清晰地畫出對應的投影示意圖,圖3按照畫法幾何的習慣畫出。向新投影面的投影1)將點 A(Xl,Yl, Z1)、B(x2,y2, z2)變換到新坐標系下,得到 A*(Xl*,y;,ζ;), B* (χ;,
氺氺、
y2,z2 J ο2)分別取出Α*(χΛ Y1*, Zi*),B*(x2*, y;, ζ;)在新坐標系下向H1W1面的投影,得到 Β!*(χΛ υΛΟ)^!*' (Xi*,0, Z1*)和匕廣「之氺,又〗*,。),!^*,(x2*,0,h*)。從圖 3 可知 B1IPb1* 相重合,且線段 」b廣的長度反應直線段AB的實長。3)將 ai*(Xl*,y;,0),a;' (Xl*,0, Z1*)和 1^( *, y2*,0),b;' (χ2*,0,ζ;)逆變換到原始坐標系XYZ下,對應得到at (χ it,Yif zit),at,(χη' Yif zit)禾口 bt (x2t' Y2t' z2t),bt' (x2t, y2t,Z2t),分別對應點A、B在H1W1面的投影的原始坐標。實施例2 參照圖5和圖6,是一種為方便求直線與圓球交點而進行投影變換的方法流程。圖4給出了傳統做法的示意圖,便於與本發明對照。圖元的定義直線以兩點A、B定義,圓球以球心C及球的半徑R定義。新坐標系的建立目標投影面為方便作出球與直線交點的平面。例如,可以將直線變換為投影面的垂直面,且保持球的投影為圓,其方程為球的標準方程。建立方法以球心 C為原點Cf,直線AB為新坐標軸X*,建立新坐標系XYz* ;對應得到了 H1W1投影面。需要說明的是,新坐標系的原點位置不影響投影點的位置及其在原始坐標系的坐標。為了清晰地畫出對應的投影示意圖,圖6按照畫法幾何的習慣畫出。向新投影面的投影1)將球與直線的參數(即點Α、B、C的坐標)正變換到新的坐標系下得到k*、B*. C* ;2)分別取出A*、B*、C*的χ*,y*坐標,得到在H1投影面(X*Y*坐標平面)的投影a;,b;, C1* ;分別取出k*、B*. C*的χ*,ζ*坐標,得到在V1投影面(ZY坐標平面)的投影 」, b廣,c廣,實現投影變換; 3)分別將 < 與 」,b;與Y』,C1*與c廣逆變換到原始坐標系XYZ下,得到 (xlt, ylt, zlt), at,(xlt, ylt, zlt)禾口 bt(xM, y2t, z2t), bt,(x2t, y2t, z2t);得至Ll的點 at、點 bt 禾口點 ct 即分別為點Α、點B和點C在H1\V1面投影的在原始坐標系的坐標。根據新坐標系的坐標反求原始坐標系的坐標可以根據需要,將在新坐標系下點 (例如求得的直線與圓球的交點)的坐標逆變換回原始坐標系。從圖4中可知,在傳統投影變換方法中,經一次投影變換,將直線變為投影面的平行線,如果要變換為投影面得垂直線,還需進一步投影變換。而本發明提供的方法通過合理選擇新的坐標系,可直接將直線變換為投影面的垂直線。不難發現,本發明解除了傳統做法中「新投影面必須與原來投影面體系中的一個投影面垂直」的束縛,任何一種投影變換都可以一次變換完成,簡化了計算過程,使得計算過程與投影圖對應,算法直觀、便於交流,而且,統一了傳統畫法幾何中的各種投影變換方法,便於程序的自動實現。
權利要求
1.一種利用計算機實現畫法幾何投影變換的方法,其特徵在於,包括以下步驟(1)在原坐標系XYZ中對幾何圖元進行定義;(2)通過建立新坐標系\ Τ構建新投影面體系,使幾何圖元與新投影面處於有利於解題的位置;(3)通過新坐標系\ Τ與原坐標系XYZ間的坐標變換矩陣得到新投影面上的投影坐標,實現投影變換。
2.根據權利要求1所述的利用計算機實現畫法幾何投影變換的方法,其特徵在於,所述的步驟( 包括以下子步驟(21)以目標投影面的法向作為一個新的坐標軸;(22)以投影面為一個新的坐標平面。
3.根據權利要求1所述的利用計算機實現畫法幾何投影變換的方法,其特徵在於,所述的步驟C3)包括以下子步驟(31)通過坐標變換,將原坐標系XYZ的幾何圖元所對應的點P變換到新坐標系Χ Τ 下對應的點P* ;(32)將新坐標系下對應的點P*在新投影面上進行投影得到點Ρ1,點Pl為在新投影面上的投影在新坐標系Χ Τ的坐標;(33)將點Pl逆變換到原坐標系XYZ得到點Pt,點Pt就是點P在新投影面上的投影在原坐標系XYZ的坐標。
4.根據權利要求1所述的利用計算機實現畫法幾何投影變換的方法,其特徵在於,所述步驟中目標投影面為滿足與幾何圖元的位置便於解題的平面。
5.根據權利要求3所述的利用計算機實現畫法幾何投影變換的方法,其特徵在於,所述步驟(32)中如果新投影面為XYi平面,則點P*取出其在XYi平面上的坐標;如果新投影面為tf平面,則點P*取出其在tf平面上的坐標;如果新投影面為ft平面,則點P*取出其在壙壙平面上的坐標。
全文摘要
本發明涉及一種利用計算機實現畫法幾何投影變換的方法,包括以下步驟在原坐標系XYZ中對幾何圖元進行定義;通過建立新坐標系X*Y*Z*構建新投影面體系,使幾何圖元與新投影面處於有利於解題的位置;通過新坐標系X*Y*Z*與原坐標系XYZ間的坐標變換矩陣得到新投影面上的投影坐標,實現投影變換。本發明解除了傳統做法中「新投影面必須與原來投影面體系中的一個投影面垂直」的束縛,任何一種投影變換都可以一次變換完成,簡化了計算過程,使得計算過程與投影圖對應,算法直觀、便於交流,而且,統一了傳統畫法幾何中的各種投影變換方法,便於程序的自動實現。
文檔編號G06T15/00GK102324103SQ20111026141
公開日2012年1月18日 申請日期2011年9月6日 優先權日2011年9月6日
發明者於海燕, 何援軍 申請人:上海可人計算機軟體有限公司, 東華大學