1. 程式人生 > >【計算幾何】

【計算幾何】

一、基礎概念

1.點:

在解決平面幾何問題時,都是在平面座標系下計算。點都用A(x,y)來表示。

對於一個點(x,y),它既可以表示一個點,也可以表示一個向量。

 

2.向量

向量可以形象化地表示為帶箭頭的線段。箭頭所指代表向量的方向,線段的長度代表向量的大小。如果給定了向量的起點 A 與終點B ,則向量可以表示為 \overrightarrow{AB},也可以用字母(如abuv)表示(書寫時需要在字母頂加上小箭頭)。

用一個點表示一個向量,它的起點就是原點。

若起點A(x1,y1),終點B(x2,y2),那麼\overrightarrow{AB}可以表示為(x2-x1,y2-y1)。

  • 向量的模

對於一個向量\underset{a}{\rightarrow}

,它的長度,也就是它的大小,稱作向量的模,用|\underset{a}{\rightarrow}|表示。

\underset{a}{\rightarrow}的座標表示為(x,y),那麼它的模就是|\underset{a}{\rightarrow}|=\sqrt{x^{2}+y^{2}}

  • 向量的加減法:

可以用座標直觀地表示出來。

對於\underset{a}{\rightarrow}\underset{b}{\rightarrow},如果它們用點表示分別為:(x1,y1),(x2,y2),那麼\underset{a}{\rightarrow}+\underset{b}{\rightarrow}=\underset{c}{\rightarrow}=(x1+x2,y1+y2)。

構造一個平行四邊形取其對角線大概就是這個向量。

  • 向量的乘除法:

代表向量的伸長或縮短,乘以一個負數可以使向量的方向反向。

\underset{a}{\rightarrow}=(x,y),則:\underset{a}{\rightarrow}*k=(kx,ky),\underset{a}{\rightarrow}/k=(x/k,y/k)。

  • 向量的夾角

在空間裡任取一點O,再任取兩點A,B,令\overrightarrow{OA}=\underset{a}{\rightarrow}\overrightarrow{OB}=\underset{b}{\rightarrow},則∠AOB叫做\underset{a}{\rightarrow}\underset{b}{\rightarrow}的夾角,記作<\underset{a}{\rightarrow}

,\underset{b}{\rightarrow}>

  • 向量的點積

對於兩個向量:\underset{a}{\rightarrow}=(x1,y1),\underset{b}{\rightarrow}=(x2,y2),它們的點積用\underset{a}{\rightarrow}·\underset{b}{\rightarrow}表示,\underset{a}{\rightarrow}·\underset{b}{\rightarrow}=x1*x2+y1*y2。它的結果是一個標量。

它的幾何意義是\underset{a}{\rightarrow}\underset{b}{\rightarrow}方向上的投影與|\underset{b}{\rightarrow}|的乘積。即:\underset{a}{\rightarrow}·\underset{b}{\rightarrow}=|\underset{a}{\rightarrow}|*|\underset{b}{\rightarrow}|*cos<\underset{a}{\rightarrow},\underset{b}{\rightarrow}>。

影象上就是OH*OB。∠AOH就是<\underset{a}{\rightarrow},\underset{b}{\rightarrow}>。

用途:

由它的幾何意義可知:\underset{a}{\rightarrow}·\underset{b}{\rightarrow}=0\Leftrightarrow\underset{a}{\rightarrow}\underset{b}{\rightarrow},同時,利用點積的式子也可以算出夾角的餘弦值,進而知道夾角的大小。

同時,一個與\underset{a}{\rightarrow}=(x,y)垂直的向量為\underset{b}{\rightarrow}=(y,-x)。

  • 向量的叉積

很複雜的一個東西,建議自行百度。做題記一下結論就行了。

我們定義二維叉積為a×b=x1y2-x2y1,它的幾何意義是,叉積結果大小=以a,b兩條邊為鄰邊所作成的平行四邊形的有向面積。即:a×b=|a|×|b|×sin<a,b>。

用途:

根據叉積結果,我們可以判斷a,b的方向。若a×b>0,則b在a的逆時針方向。若a×b<0,則b在a的順時針方向。

同時可以推出:a×b=-b×a,a×b=0\Leftrightarrowa,b共線。

  • 向量的旋轉

向量a=(x,y)沿起點逆時針旋轉\theta(弧度),得到的向量b的座標為b=((x*cos\theta)-(y*sin\theta),(x*sin\theta)+(y*cos\theta))。證的話用和角公式套一下再展開就行了。

3.線段:

①可以用兩個端點來表示,例如:線段AB。

②可以用一個點+向量來表示。

點-點=向量;點+向量=點;點-向量=點。

線段AB上的任意一點C滿足:∀C∈AB,∃p∈[0,1],C=pA+(1-p)B【A、B是向量,C也是向量。】

4.弧度制

用弧長與半徑之比度量對應圓心角角度的方式,叫做弧度制,用符號rad表示,讀作弧度。等於半徑長的圓弧所對的圓心角叫做1弧度的角。

弧度制的基本思想是使圓半徑與圓周長有同一度量單位,然後用對應的弧長與圓半徑之比來度量角度,這一思想的雛型起源於印度。那麼半圓的弧長為π,此時的正弦值為0,就記為sinπ= 0,同理,1/4圓周的弧長為π/2,此時的正弦為1,記為sin(π/2)=1。從而確立了用π、π/2分別表示半圓及1/4圓弧所對的中心角。其它的角也可依此類推。

 

二、幾個問題

  • 求兩直線(線段)的交點(假設有交點且兩直線不共線)

S1=\overrightarrow{AC}\times\overrightarrow{AD},S2=\overrightarrow{BD}\times\overrightarrow{BC},那麼E=A+\frac{\overrightarrow{AB}\times{S1}}{S1+S2}

【E指 向量\overrightarrow{OE}

  • 求E到直線AB的垂足D:

D=A+\overrightarrow{AD},\overrightarrow{AD}=\overrightarrow{AB}\times{\frac{|\overrightarrow{AD}|}{|\overrightarrow{AB}|}}=\overrightarrow{AB}\times\frac{\overrightarrow{AE}\cdot \overrightarrow{AB}}{\overrightarrow{AB}\cdot \overrightarrow{AB}}

那麼:D=A+\overrightarrow{AB}\times\frac{\overrightarrow{AE}\cdot \overrightarrow{AB}}{\overrightarrow{AB}\cdot \overrightarrow{AB}}

  • 求多邊形面積

大概就是把多邊形分成很多的三角形,三角形的面積是有向的,然後加起來大概就會抵消一部分,就變成多邊形面積了。

  • 判定點的位置

具體見部落格​​​​​​​