計算幾何基礎-初步
計算幾何基礎-初步
計算幾何
定義:對幾何外形資訊的計算機表示分析。(其實就是利用計算機建立數學模型解決幾何問題。)
計算幾何研究的物件是幾何圖形。早期人們對於影象的研究一般都是先建立座標系,把圖形轉換成函式,然後用插值和逼近的數學方法,特別是用樣條函式作為工具來分析圖形,取得了可喜的成功。然而,這些方法過多地依賴於座標系的選取,缺乏幾何不變性,特別是用來解決某些大撓度曲線及曲線的奇異點等問題時,有一定的侷限性。
平面直角座標系
平面直角座標系其實就是笛卡爾座標系,在計算幾何中,我們經常會用到座標表示,點和向量都是通過座標來儲存的。
向量及其運算
向量的基礎知識
向量(也稱為歐幾里得向量、幾何向量、向量):既有大小又有方向
有向線段:帶有方向的線段稱為有向線段。有向線段三要素:起點,方向,長度,有了三要素,終點就唯一確定。我們用有向線段表示向量。
向量的模:有向線段\(\overrightarrow{AB}\)的長度稱為向量的模,其實就是向量的大小。即為\(|\overrightarrow{AB}|\)或\(|\vec{a}|\)。
零向量:模為零的向量。零向量的方向任意。
單位向量:模為1的向量稱為該方向上的單位向量。
平行向量:方向相同或相反的兩個非零向量。記作\(a\parallel b\)
滑動向量:沿著直線作用的向量稱為滑動向量。
固定向量:作用於一點的向量稱為固定向量。
相等向量:模相等且方向相同的向量。
相反向量:模相等且方向相反的向量。
向量的夾角:已知兩個非零向量\(\vec{a},\vec{b}\),作\(\overrightarrow{OA}=\vec{a},\overrightarrow{OB}=\vec{b}\),那麼$\theta=\angle AOB \(就是向量\)\vec{a}\(與向量\)\vec{b}\(的夾角。記作:\)\left\langle a,b \right\rangle\(,顯然當\)
\({\color{Red}注意}\):平面向量具有方向性,我們並不能比較兩個向量的大小(但可以比較兩向量的模長)。但是兩個向量可以相等。
向量的運算
設\(\vec{a}=(x_1,y_1)\),\(\vec{b}=(x_2,y_2)\)。
加減法
既然向量具有平移不變性,那麼\(\vec{a}+\vec{b}\)就是將兩條有向線段相連,即:\(\vec{a}+\vec{b}=(x_1+x_2,y_1+y_2)\)。
那向量的減法\(\vec{a}-\vec{b}\),其實就是\(\vec{a}+(-\vec{b})\),即\(\vec{a}-\vec{b}=(x_1-x_2,y_1-y_2)\)。
向量的加減法是滿足以下法則的:
- 三角形法則:若要求和的向量首尾順次相連,那麼這些向量的和為第一個向量的起點指向最後一個向量的終點;
- 平行四邊形法則:若要求和的兩個向量共起點,那麼它們的和向量為以這兩個向量為鄰邊的平行四邊形的對角線,起點為兩個向量共有的起點,方向沿平行四邊形對角線方向。
所以說向量的加減法就有了幾何意義,並且滿足交換律和結合律。
數乘
規定\(\left\lceil 實數\lambda與向量\vec{a}的積 \right\rfloor\)為一個向量,這種運算就是數乘。記作\(\lambda\vec{a}\),並且滿足以下性質:
- \(|\lambda\vec{a}|=|\lambda||\vec{a}|\);
- 當\(\lambda>0\)時,\(\lambda\vec{a}\)與\(\vec{a}\)同向,當\(\lambda=0\)時,\(\lambda\vec{a}=0\),當\(\lambda<0\)時,\(\lambda\vec{a}\)與\(\vec{a}\)方向相反。
(向量的數乘其實就是對向量進行放縮)
點積
向量的點積也叫數量積、內積,向量的點積表示為\(\vec{a}·\vec{b}\),是一個實數。計算式為:
\[\vec{a}·\vec{b}=|\vec{a}||\vec{b}|cos\theta(\theta=\left\langle \vec{a},\vec{b} \right\rangle)(\theta表示\vec{a},\vec{b}的夾角) \]三角形恆等變換的推導:
\[\because \vec{a}·\vec{b}=|\vec{a}||\vec{b}|cos\theta\\ \therefore \vec{a}·\vec{b}=\sqrt{(x_1)^2+(y_1)^2}·\sqrt{(x_2)^2+(y_2)^2}·cos\theta\\ \because cos\theta=cos(\alpha-\beta)=cos\alpha cos\beta + sin\alpha sin\beta\\ \because cos\alpha=\dfrac{x_1}{\sqrt{(x_1)^2+(y_1)^2}},sin\alpha=\dfrac{x_1}{\sqrt{(y_1)^2+(y_1)^2}}\\ cos\beta=\dfrac{x_2}{\sqrt{(x_2)^2+(y_2)^2}},sin\beta=\dfrac{y_2}{\sqrt{(x_2)^2+(y_2)^2}}\\ \therefore 整理代入得:\vec{a}·\vec{b}=x_1x_2+y_1y_2 \]同時點積是滿足交換律,結合律和分配律的。
點積應用:
叉積
也叫向量積,外積。幾何意義是兩向量由平行四邊形法則圍成的面積。叉積是一個向量,垂直於原來兩個向量所在的平面。(根據叉乘的模是平行四邊形的面積我們可以想象,叉乘的結果是一個有方向的面,而面的方向平行於面的法線,所以面的方向垂直於面上任何一個向量),即:
\[|\vec{a} × \vec{b}|=|\vec{a}||\vec{b}|sin\left\langle a,b \right\rangle \]並且,\(\vec{a}×\vec{b}=(x_1y_2-x_2y_2)\)。
叉積是一個有向面積:
- \(\vec{a}×\vec{b}=0\),等價於\(\vec{a},\vec{b}\),共線(可以反向);
- \(\vec{a}×\vec{b}>0\),\(\vec{b}\)在\(\vec{a}\)左側;
- \(\vec{a}×\vec{b}<0\),\(\vec{b}\)在\(\vec{a}\)右側。
判斷兩向量共線
兩個非零向量\(\vec{a}\)與\(\vec{b}\)共線\(\iff\)有唯一實數\(\lambda\),使得\(\vec{b}=\lambda\vec{a}\)。由向量的數乘即可得證。
推論:如果\(l\)為已經過點A且平行於已知非零向量\(\vec{a}\)的直線,那麼對空間任一點O,點P在直線\(l\)上的充要條件是存在實數\(t\),滿足等式:\(\vec{OP}=\vec{OA}+t\vec{a}\)。
其中向量\(\vec{a}\)叫做直線\(l\)的方向向量。
基本定理和座標表示
平面向量基本定理
平面向量基本定理:兩個向量\(\vec{a}\)和\(\vec{b}\)不共線的充要條件是,對於和向量\(\vec{a}\),\(\vec{b}\)共面的任意向量\(\vec{p}\),有唯一實數對\((x,y)\)滿足\(\vec{p}=x\vec{a}+y\vec{b}\)。
證明(非常簡單):
\[對於平面上的任意向量可以沿指定方向被分解為任意兩個向量,\\ 平面上的任意兩個向量可以沿指定方向合成任意指定向量。\\ 對於有唯一實數對我們可以用反證法:\\ 假設有兩個及以上的實數對滿足要求為(m,n)\\ \therefore x\vec{a}+y\vec{b}=m\vec{a}+n\vec{b}\\ \therefore (x-m)\vec{a}=(n-y)\vec{b}\\ \because \vec{a}和\vec{b}不共線\\ \therefore x=m,n=y\\ 與假設矛盾所以結論成立\\證畢 \]在同一平面內的兩個不共線的向量稱為基底。
如果基底相互垂直,那麼我們在分解的時候就是對向量正交分解。
平面向量的座標表示
如果取與橫軸與縱軸方向相同的單位向量\(i,j\)作為一組基底,根據平面向量基本定理,平面上的所有向量與有序實數對\((x,y)\)一一對應。
而有序實數對
而有序數對\((x,y)\)與平面直角座標系上的點一一對應,那麼我們作\(\vec{OP}=\vec{p}\),那麼終點\(P(x,y)\)也是唯一確定的。由於我們研究的都是自由向量,可以自由平移起點,這樣,在平面直角座標系裡,每一個向量都可以用有序實數對唯一表示。
座標運算
平面向量線性運算
由平面向量的線性運算,我們可以推導其座標運算,主要方法是將座標全部化為用基底表示,然後利用運算律進行合併,之後表示出運算結果的座標形式。
對於向量\(\vec{a}=(m,n)\)和向量\(\vec{b}=(p,q)\),則有:
\[\vec{a}+\vec{b}=(m+n,n+q)\\ \vec{a}-\vec{b}=(m-n,n-q)\\ k\vec{a}=(km,kn),k\vec{b}=(kq,kq) \]向量的座標表示
已知兩點\(A(a,b),B(c,d)\),則\(\vec{AB}=(c-a,d-b)\)。
平移一點
將一點\(P\)沿一定方向平移某單位長度,只需要將要平移的方向和距離組合成一個向量,利用三角形法則,用\(\vec{OP}\)加上這個向量即可,得到的向量終點即為平移後的點。
三點共線的判定
在平面上\(A,B,C\)三點共線的充要條件是:\(\vec{OC}=\lambda\vec{OB}+(1-\lambda)\vec{OA},(O為平面內不與直線AC共線任意一點)\)。
證明:
\[若點B與AC共線,由共線向量定理可知:\vec{AC}=\lambda\vec{AB}\\ \therefore \vec{AC}=\lambda\vec{AB}\iff\vec{OC}-\vec{OA}=\lambda(\vec{OB}-\vec{OA})\iff\vec{OC}=(1-\lambda)\vec{OA}+\lambda\vec{OB}\\ 證畢 \]向量旋轉
設\(\vec{a}=(x_1,y_1)\),那麼長度\(l=\sqrt{x^2+y^2}\)。若將順時針旋轉\(\theta\)度得到\(\vec{b}=(x_2,y_2)\),則有:
\[x_2=x_1\cos \theta-y_1 \sin \theta,y2=x_1 \sin \theta+y_1 \cos\theta \]可以用點積或三角形恆等變換易證。
計算幾何基礎的內容就到這裡了,現在計算幾何的基礎都已經掌握了的話,就可以去寫更深層次的演算法了,完結撒花~。