求三角形面積有諸多公式:
s = 1/2 ah
s = 1/2 absinc,
s = sqrt(p*(p-a)(p-b)(p-c))…
對於不同的場合,每個公式都有自己的優勢,若是已知三個頂點座標a(x1,y1), b(x2,y2), c(x3,y3),若要求三點圍成的三角形的面積,對計算機而言這個公式應該是最適合的:
s = 1/2 * |(x2 - x1) * (y3-y1) - (y2 - y1) * (x3 - x1)|也可以展開成:
s = 1/2 * |(x1y2 + x2y3 + x3y1 - x1y3 - x2y1 - x3y2)|,
不過這種寫法的乘法運算要相對多一些。
當然比較常見是寫成行列式的樣子:
相信許多人對這條公式並不陌生,下面我按照自己的理解推導一下這個公式:
第一種理解:
已知:三角形三個頂點及座標a(x1,y1), b(x2,y2), c(x3,y3)
因為我們的目的是求面積,所以三角形的位置是無所謂的,首先,保持三角形整體不變,捉住三角形的某乙個頂點,把它拖到座標原點,如下圖,這裡就以點a為例,經過這樣的操作後三點座標就變成了a(0,0), b(x2-x1, y2-y1), c(x3-x1, y3-y1)。
把三角形整個捉走幹什麼呢,其實是為了得到兩個向量:
把邊ab,邊ac分別看成向量b=(x2-x1, y2-y1, 0)和向量c=(x3-x1, y3-y1, 0),這時先回憶一下向量叉乘:
兩個向量叉乘的結果是乙個新向量,這個新向量垂直於原向量組成的平面,並且新向量的長度等於原向量合成的平行四邊形的面積。
因為向量b,向量c 在xoy平面,所以叉乘得到的向量一定落在z軸上,設新向量d = (0 ,0 , z),|z| 便是向量b,c 合成的平行四邊形的面積,所以平行四邊形的一半,|z|/2便是我們要求的三角形abc的面積。
有了這個思路,直接套上向量叉乘公式:
行列式的運算就不具體展示了,結果得:
向量d = (0, 0, (x2 - x1) * (y3-y1) - (y2 - y1) * (x3 - x1))。
根據上文,三角形abc的面積為|z|/2,即:
s = 1/2 * |(x2 - x1) * (y3-y1) - (y2 - y1) * (x3 - x1)|。
向量運算(點積,叉積)
向量加減法 兩向量a與b的和為乙個向量,記為c,即 c a b c與兩向量a與b的關係遵循平行四邊形法則。設二維向量 p x1,y1 q x2 y2 則向量的加法定義為 p q x1 x2,y1 y2 同理,向量減法為 p q x1 x2,y1 y2 顯然有性質 p q q p p q q p 向量...
向量的叉積
它可以用來判斷點在直線的某側。進而可以解決點是否在三角形內,兩個矩形是否重疊等問題。向量的叉積的模表示這兩個向量圍成的平行四邊形的面積。設向量p x1,y1 q x2,y2 則向量叉積定義為由 0,0 p1 p2和p1 p2所組成的平行四邊形的帶符號的面積,即 p q x1 y2 x2 y1,其結果...
向量的點積和叉積
點乘 也叫向量的內積 數量積.顧名思義,求下來的結果是乙個數.向量a 向量b a b cos 在物理學中,已知力與位移求功,實際上就是求向量f與向量s的內積,即要用點乘.叉乘 也叫向量的外積 向量積.顧名思義,求下來的結果是乙個向量,記這個向量為c.向量c 向量a 向量b a b sin 向量c的方...