設計(25) 《DESARGUE定理》軟體設計
Desargues定理和3D作圖
。
(繪製僅與Desargues構型相關的3D圖形)
引 言
引言。
本文介紹Desargues定理(中文譯為德薩格定理),這是國內外數學界公認的漂亮的幾何定理,也是和3維作圖關係最密切的一個數學定理。但這一定理有什麼漂亮之處?並不是每個人實際都瞭解,只是外國人這樣說,所以我們也這樣講。它和繪圖有什麼關係?更不是那麼容易理解,我曾化了許多時間。下面我想來介紹我所理解的問題,或許對大家有所啟發。
我把證明Desargues定理時所用圖形(即所謂Desargues構型)由2維平面圖轉化成3維空間圖開始講起,再不斷深入瞭解定理的實際意義和構型的美妙與豐富的對稱性,並同時加入用到的圖形編程方面的許多知識。
圖 1. 點擊菜單條中的設計菜單,就可得上述畫面。此圖左上方的圖形就是一個Desargues構型。右上方說明了此圖的一個構作過程,右下方驗證了按此方法構造的圖中10條線都是真的直線(3點不構成有面積的三角形)。左下方紅框內介紹的就是Desargues定理及其逆定理。所涉及的圖就是左上方的構型。證明原要點擊後彈出,現將其列在下面:
【證明】設直線14、25和36的共同交點為0。我們把這一平面圖形想象為一個三維空間中的立體圖形,0是以123和456兩個三角形為截面的三角錐體的頂點,
因線段12和45在三角錐的同一側面上,它們延長後的交點7同時包含在兩個三角形所在的兩個平面上,因此也就是包含在這兩個平面的公用交線(即連線789)上。同理可以說明23和56,或31和64延長後交點8與9也在包含兩三角形的兩個平面的共同交線789上。
現重新把圖看成平面圖,則7,8和9三點也位於一直線上。由此Desargues定理證畢。
【逆定理】設三角形123和456的對應邊12和45,23和56、31和64的三個交點在同一直線上,則它們對應頂點連線14、25和36交於同一點。證法與上完全類似,略。
【注0】 我們以上的證明是把圖1看成一個空間3d圖才得到證明。一個2d平面圖能看成一個3d空間圖是要有條件的,即它實際就是一個3d圖的投影。如果不是3d圖的投影就不可能看成3d圖,上述證明也就不可能進行。在平面射影幾何中,若不利用空間幾何關係,Desargues定理要作為公理承認才行。
【注1】 三角形123和456稱為相互透視對應的三角形, 0為它們的透視中心,789則為透視軸。透視中心和透視軸代表什麼實際意義下面將會說明。
【注2】 Desargues定理與它的逆定理實際上也是相互對偶的, 即把點和線互換,前提就變成結論,結論變成了前提,這種對偶關係叫自對偶。
* 證明所利用的透視實際是兩個空間圖形(不在同一平面的兩個三角形)之間的透視,它是平面上2個三角形或其他圖形之間的透視概念的推廣,這種透視恰恰就是我們人類最習以為常的3D透視。證明得到的透視則是兩個平面圖形(在同一平面的兩個三角形)之間的透視。
* 我們下面會指出,上面的圖1是一個極有趣的圖。它一共包含10個點10條線。我們前面是把123, 456看成以點0為透視中心、以789作為透視軸的2個相互透視的三角形,但你可以把10個點中的任意一點看成透視中心,10條線中的任意一條作為透視軸。當然,改變了透視中心和軸, 相互透視的兩個基本點三角形已不再是原來的,而要相應改變。讀者不妨作為一個練習,把與每個點對應的兩個透視三角形和透視軸統統找出來。
【特例1】在上面的定理中,作為透視中心的0點可以為無窮,也就是說,14,25,36三條直線可以平行, 這時定理同樣成立,如下邊中間的一個圖所示。
【特例2】在上面的定理中, 兩個透視三角形的對應邊可以平行不相交, 即三角形123和456所在的兩個平面平行,,這時,3個交點都在無窮遠,且它們交在同一無窮遠直線上。(兩個無窮遠點可構成一條無窮遠直線,三個無窮遠點則每兩條可構成一條無窮遠直線,共有3條無窮遠直線。 3個交點在同一條無窮遠直線上是一特殊情況。)
【特例3】兼備以上兩個特例的所有特點。即兩個三角形全同且所在的面平行。這時三角形123和456對應頂點連線14,25,36相互平行, 兩個三角形對應邊12和45, 23和56、31和64也平行, 即交點都在無窮遠,也就是交點都在無窮遠直線上, 因此也共線。
圖2. 特例和推廣
這個立體感很強的圖形也是Desargues構型的特例:2個透視三角形3對邊中,有一對邊平行,即它們的交點在無窮遠,所以透視軸上只有2個有窮點。
同上:也是特例。以左下角黃點為透視中心,對應的2個透視三角形有綠,紫,紫和黃,綠,綠色的頂點,這兩個空間三角形的3對對應邊中有一對邊:紫-紫,綠-綠,平行不交(或說在無窮遠點相交),因而第三對也平行,它們的交點有一個在無窮遠,透視軸上只看到兩個黃色有限點。
【注3】 我們把上述各種特例與原來有限情況合并起來,說明定理不僅在歐氏空間成立,在射影空間也成立,Desargues定理是射影空間的一個定理。在射影空間中,點不分有窮或無窮,兩條線總會相交,而且反之,兩個點總可以連成一條線,不管其中有沒有無窮遠點,以及有幾個無窮遠點。如果2個都是無窮遠點,則所連直線是無窮遠直線。
【注4】 Desargues定理不僅適用於三角形,也可以推廣到四邊形、五邊形,或手繪多邊形。2中右邊最下面的那個圖說明4邊形的情況。這時,透視中心是串連4根線,透視軸上有4個點,整個Desargues構型有13點。證明方法與雙三角形的完全類似,讀者不妨自己思考一下。
根據以上討論,我們就容易發現,什麼樣繪圖正確,什麼樣繪圖不正確。如下列各例那樣:
真實照片的透視:等寬公路收斂到一個無窮遠點,通過無窮遠點的地平線是無窮遠直線
正確畫圖:相等高度的平行線收斂到同一個無窮遠點,共有2個無窮遠點X1,X2
一個錯誤的立體圖畫法例子。
此圖錯誤的原因,簡單地說,就是沒有透視。沒有透視,就一定違背Desargues定理。下面我們來說明這一點。
此圖包括最大的牧馬區在內,一共有8個長方體,每個長方體有12條邊,它們分成三組,這裡畫的三組邊都相互平行。但這是不可能的。因為,它們都是有限大小的長方體,如果從有限遠點作為視點(透視中心)來觀察它們,最多隻可能有2組邊平行,第三組一定收斂為一點,例如,假設視點在頂部,則4條垂直邊會收斂;如果視點在正前方,則深度方向的一組邊會收斂。三組邊均不收斂,說明視點(透視中心)一定在無窮遠,但如果視點在無窮遠處,則有限的東西都應該是無窮小,不可能畫得那樣大。
實際畫圖時,大物體是否違背近大遠小的透視原則比較容易發現。如中,牧馬區不透視就比順馬區看得清楚。
【注5】 Desargues定理除了有一個Desargues逆定理是它的對偶外,還有一個空間對偶(見後)。為了區別, 我們把現在考察的定理稱為平面Desargues定理。
【注6】 Desargues定理不只一個, 如有關圓錐曲線也有一個Desargues定理:圓錐曲線任一截線與曲線及曲線內接四點形各對邊的截點組成對合共軛點對.見Cremona17章。為了區別, 把我們現在考察的定理稱為關於兩個三角形的Desargues定理。
圖 2. 點擊一下置中功能表項目就可得此畫面,其中中間的圖就是前面那個圖,其頂視側視圖中十個點在一條線上,說明此圖是平的。
圖 3 點擊 三維 功能表項目就可得以,這是與前面相同的圖,但已3維化。不同於3維變2維的垂直投影,由2維變3維是無窮的,左下例證了這一過程。中間上面是其頂視圖,圖中十個點不在一條直線上,說明它們有了不同z座標,其下面的正視圖的確已是立體了。
圖 4 點擊 造型 功能表項目就可得以形,其中點和線都用體積的球和棒代替,3d感覺就明顯。
圖 5 點 彩顯 功能表項目就可得上彩色圖形。本圖配文說明畫家演算法(按物體深度確定畫出物體次序)的不可靠以及用分段法解決此問題。
圖6 點 填充 功能表項目就使兩個對應三角形被彩色填充的圖形。右邊是畫棒要用的十色調色盤。
圖 7 下面一排是對圖形進行旋轉、平移、放大等操作的各種工具。例如,點擊其中的 放大
按鈕就可得以上放大的彩色圖形。
圖8 點擊菜單條中的透視菜單就可得上面8個圖,什麼是透視請看以上底部的解釋。以上8圖中,上4圖不透視,下4圖才透視。 3d圖形是否透視,只要繞x和y軸旋轉再加個外框後就能看得很清楚。
從這些圖,尤其是從圖6、圖7或圖8,你能更加看清Desargues構型是一個在3d空間的非平面的圖形。它與外框的6個面都有點相接觸。
到此,我們已把一個3d化的Desargues構型的透視圖畫出來了。下面轉來討論Desargues構型的豐富對稱性。
圖·8a 點擊菜單條中的視點菜單就可得。此圖說明十個點中每一點都可以當作視點(透視中心),都有一對相對應的透視三角形和一根相應的透視軸。我們這裡分別用深藍色點和深藍色線代表透視中心和透視軸,用橘黃色和天藍色畫出了透視對應著的兩個三角形。(注意:要細心看哦!)
圖1是十個點的名稱不變,而圖2是將其中2個圖的頂點名稱作了置換。無論用那一種觀點,都說明構型的對稱性。
圖 8a 在同一透視中心 0 之下,其他頂點可有12個置換,使定理照樣成立。其他點為透視中心時也一樣。此圖進一步說明了Desargues構型的豐富的對稱性(置換對稱)。
圖9 點擊 對偶 功能表項目就可得,此圖要說明Desargues定理有另一種對偶:三維空間點與面的對偶。請仔細閱讀下面的注釋(1)。
圖9 前面說:空間對偶的任何不過頂點的截面是一平面Desargues構型, 企圖用全表單的平面圖形來說明此關係。但不行,所以改成全視窗來畫。
Desargues構型的空間對偶是非常複雜的圖形,因為它是一個由十個面組成的圖形,這十個面相互交叉覆蓋,有的地方甚至覆蓋5次之多,你要清晰看到十個面十分困難,即使你使用什麼透明技術。
注意:這不是一個簡單的多面體,它的點線面數量關係不滿足Euler公式:p+f=e+2。因為這裡p=5,e=10,f=10,p+f=e+5 。
上面我們討論了平面Desargues構型的空間對偶,不管Desargues構型是平面或空間的,它們的點和線最終都以球與棒表示,下面來介紹球與棒又是怎樣畫出來的?
圖10 畫球和棒可用許多方法,最簡單的也畫家演算法和z緩衝法。點擊編程功能表項目會彈出一下拉式功能表,點擊畫中的畫家演算法畫球, 就可見以上畫面。後畫的球總是覆蓋先畫的球。
圖11 點擊編程功能表項目的下拉式功能表中的編程按鈕中的深度緩衝器演算法畫球。這種演算法畫球按深度由近的球覆蓋遠的球,同樣深或差不多深的就會相互嵌入。
圖12 再點擊編程按鈕中的深度緩衝法畫空間Desargues構型,就得上面這個與平面Desargues構型對偶的空間Desargues構型 。但沒有畫出與平面構型10點對應10個面,因為這10個面相互覆蓋,必須使用半透明作圖,畫出來不容易,現僅以點和線來表示。此圖正確畫出了空間構型的5個點與線的空間關係,例如P3(244,199,,500)最深,即z=500最大,P1(475,366,100)最淺,即z=100最小,其餘3點的深度=300,由此與5個球(點)相連的棒(線)插進球(點)的形狀各不相同;連線的深淺也一目瞭然。左邊兩個圖是說明不用z緩衝法很難表示的兩種圖形。
圖13 用半透明畫面法畫出的空間Desargues構型(待畫)
到此,已把要講的東西基本講完,你從Desargues定理和Desargues構型的豐富性質以及3D作圖技術應有一點瞭解了吧。
圖0。最後,作為練習,再回頭來看一看這個封面,徹底弄清它代表了什嗎?注意上面的紅字和底下的注釋。