2d中的三个点的面积等于行列式

时间:2013-11-03 13:04:55

标签: math computational-geometry

假设我们有一个线段(pq)和一个接近它的点r。如何显示三角形pqr的面积等于|D|/2

如果

          |1   px     py |
  D = det |1   qx     qy |
          |1   rx     ry |

p=(px,py)q=(qx,qy)r=(rx,ry)

2 个答案:

答案 0 :(得分:2)

考虑向量PQPR

vector PQ = (qx-px, qy-py, 0)
vector PR = (rx-px, ry-py, 0)

可以使用cross product formulaPQPR来表示三角形的区域:

Area = 1/2 |PR| · |PQ| · sin(theta)     # theta = included angle between PR and PQ
     = 1/2 |PR ⨯ PQ|

这个交叉产品可以用行列式来写:

             |               |
2·Area = det |rx-px   ry-py   0|
             |qx-px   qy-py   0|

       = abs((rx-px)·(qy-py) - (qx-px)·(ry-py))

       = abs(rx·qy - rx·py - px·qy + px·py - qx·ry + qx·py + px·ry - px·py)
                                     ^^^^^                           ^^^^^
       = abs(rx·qy - rx·py - px·qy - qx·ry + qx·py + px·ry)
             ^^^^^   ^^^^^   ^^^^^   ^^^^^   ^^^^^   ^^^^^
             term1   term2   term3   term4   term5   term6 

另一方面,您发布的决定因素也可以扩展:

    |1   px   py |
det |1   qx   qy | = abs(qx·ry - rx·qy + rx·py - px·ry + px·qy - qx·py)
    |1   rx   ry |       ^^^^^   ^^^^^   ^^^^^   ^^^^^   ^^^^^   ^^^^^
                         term4   term1   term2   term6   term3   term5

所以

             |1   px   py |
2·Area = det |1   qx   qy |
             |1   rx   ry |

答案 1 :(得分:1)

如果按空间表示区域,请记住三角形的面积是基于高度除以2。基数可以是从p到q的距离,高度,从rect pq到r点的距离。写下方程式,你就可以得到它。