生活中存在許多與圓或球相關的符號或物品,然而,是否想過:真正的圓或球只是數學上的概念,實際上並不存在嗎?例如,根據維基百科「圓」條目,其定義是「同一平面內到定點的距離等於定長的點的集合」,簡單來說,圓心到圓周上各點距離都相等,但這在現實不可能出現。
對許多人來說,這違反直覺,透過圓規等工具,不就可以畫出漂亮的圓嗎?
不!無論筆再怎麼細,放大到一定程度來看,一定會有不連續。就電腦繪圖來說,圓其實就只是正n多邊形,或者看成是n個相同的等腰三角形。
若要畫出完美的圓,n必須趨近於無限,而無限是一個概念,而不是個數,只不過在電腦繪圖上,一般只要取n為96就足夠了,因為再大的n,多數的人也看不出差異了。
世上沒有完美的圓
許多與圓相關的問題,其實都違反許多人的直覺,面對這些問題需要數學上的思考。
例如:「在圓中均勻地散布點」。因為圓的公式是x=r*cos(θ)、y=r*sin(θ),許多人會隨機地取0到圓半徑R間的值作為r,0到360度間的值作為θ,再計算出座標。但這是錯的,因為結果是越接近圓周的點越稀疏,越接近圓心的點越密集。
解決的方式之一是,在圓的外接正方形中隨機散布點,若點落於圓內就保留,否則就去除,這令人聯想到蒙地卡羅法求圓周率,不過,這方法容易有許多點落在圓外,計算上顯得沒有效率。
有人則用圓公式x^2+y^2=R^2來解,會先隨機生成0到圓半徑間的x,再用來計算出y。然而,這是錯的,由於x^2的關係,x影響力會變大,從而令y範圍變小,形成了越接近圓周的點越密,越接近圓心的點越稀疏。
正確的方式應該是,隨機生成0到360度間的θ,以及0到1間的n,求得r =sqrt(n)*R,再用x=r*cos(θ)、y=r*sin(θ)求座標。關於這些計算,我們可以在線上數學百科全書MathWorld的〈Disk Point Picking〉條目中,找到相關的說明。
地球上最接近完美的球
既然沒有完美的圓,也就不會有完全的球,地球本身不是嗎?不!兩極間的半徑與赤道上的半徑,大有幾十多公里的差距,目前地球上最接近完美的球,是由多國科學家聯合,耗費五年製作出來的高純度矽晶球,一顆要價一百萬歐元左右,第一顆矽晶球目前在德國,而2018年臺灣購買了第二顆,這高純度矽晶球,若放大到地球的層級來看,相當於兩極間的半徑與赤道上的半徑,差距縮小到不到十公尺,相對而言是比較接近完美了。
面對球,也有許多與直覺不同的概念。
例如,在平面幾何中,構成兩點間最短的距離會是直線,而在球面幾何中,構成兩點間最短的距離不是直線而是弧線,其專門名稱是測地線(geodesic)。同時,在平面幾何中,夾角被定義為兩直線間的角度,而三角形的三個角和會是180度,而球面上三角形的夾角是兩個大圓的弧,內角和會大於180度。
在電腦繪圖中,要怎麼構造球的三維模型呢?有非常多種方式,最簡單的一種方式是,將平面上的圓在三維空間中繞軸旋轉,每次旋轉後的圓會構成經度部份,將圓上某點旋轉後的點連接起來,會構成緯度部份。
因為沒有完美的圓,這種方式構成的圓,其實也就是多面體罷了,而且,極點附近的點會比赤道附近的點密集,然而,好處是,面的頂點索引非常容易構造,而且要對球面貼圖時,可以很容易地對應至圖片來源座標,貼圖來源座標通常用u、v代表,因此,這種球又稱為UV球(UV sphere),最常見於CAD建模軟體之中。
球面不可能直接攤成平面,想將橘子皮攤平只會讓它變形,相對地,將平面圖貼到球上只會變形,而將球對應至平面,自古一來一直在做,成果就是至今各種的地圖投影法。
例如,常見的平面地圖多半採用麥卡托投影法,它在赤道附近的面積看來會變小,兩極看來會變大,舉例來說,地圖上非洲的面積看來還好,然而,實際上卻是超大,就連印度、美國、歐洲、中國加起來,都沒非洲大。
方才談到在圓中均勻地散布點,並不是單純地隨機取r、θ,類似地,想在球上均勻地散佈點,也不是單純地隨機取r、θ、φ,然後用球座標公式來計算,這會造成兩極密集而赤道稀疏的情況。
想在圓上均勻取布點,我們可以在線上數學百科全書MathWorld的〈Sphere Point Picking〉條目中,找到相關的說明;另外,要注意!物理與數學上的球座標,θ、φ的定義不同喔!
柏拉圖多面體只有五個
上述球上均勻地散布點,是指點的密度均勻,沒有哪邊過密或過疏的問題;另一個球上散布點的問題是「球面n個點,相鄰的點間距離相等」,但能滿足此需求的n只有五個,也就是4、6、8、12與20。
換言之,只有柏拉圖多面體的頂點才有可能如此,因它們的頂點位於外接球,也因為是正多面體,球面相鄰的頂點間等距,而柏拉圖多面體只有五個。
這個問題退而求其次,是讓球面n個點中,距離相等或相近的相鄰點數量儘可能地多。而且,此問題是至今許多人的論文研究主題,多半是基於球面螺線,先前專欄〈螺線之美與用〉談過的費式球、鮑爾螺線,以及〈Point Picking and Distributing on the Disc and Sphere〉,都是相關的瞭解方向。
既然可以儘量地讓球面n個點彼此距離相等或相近,若將這些頂點連接成三角面,構成的多面體看來,其中每個三角形在視覺效果上會接近正三角形,麻煩的是面索引的計算,不過,因為這些頂點會構成凸多面體,所以,我們可以用三維的凸包(hull)演算,來求得每個三角面的索引。
另一種方式是取柏拉圖正二十面體,因為它每個面就是三角形,可以對每個面細分出四個三角形,再將各三角形的頂點投影至球面,若細分三角面的次數越多,就會更接近完美的球,由於過程中被細分出來的面都是三角形,要建立三角形索引相對就簡單多了,視覺效果大致上也像是正三角形。
因為正二十面體原文icosahedron,這種球稱為isosphere。一些CAD建模軟體(像是blender)會提供這種球體,便於進一步以頂點來建立模型,但它在貼圖方面會比UV球麻煩一些,有興趣的人可以參考〈球的N種畫法〉。
實際上,其他的柏拉圖多面體,也可以採用這種先細分再投影至球上的做法,而這類逼近球體的方式構造出來的多面體,稱為測地線多面體(Geodesic polyhedron),在面數少的情況下,可營造出不同的視覺效果。
從圓與球中學數學
關於圓與球的需求很多,不過,實際在面對時,能尋得的相關資料,卻是相對地少,大概是因為畫圓或畫球對許多人來說,只是個簡單需求,或者就算是實現的方式是錯的,也能勉強滿足需求吧!
有機會的話,你可以試著認識一些從圓或球延伸出來的需求,這時,可藉由以上提及的資源或關鍵字出發,從圓與球中認識一些數學上要考量的要素。記得,圓與球有時並不如直覺中那麼的單純。
專欄作者
熱門新聞
2024-11-25
2024-11-25
2024-11-15
2024-11-15
2024-11-28