计算二维空间点到线距离,如下图,求p1到线段p2p3的距离
按行列式计算三角形面积可得
Δ
=
0.5
∗
∣
1
x
1
y
1
1
x
2
y
2
1
x
3
y
3
∣
=
0.5
∗
∣
1
x
1
y
1
0
x
2
−
x
1
y
2
−
y
1
0
x
3
−
x
1
y
3
−
y
1
∣
=
0.5
∗
[
(
x
2
−
x
1
)
∗
(
y
3
−
y
1
)
−
(
y
2
−
y
1
)
∗
(
x
3
−
x
1
)
]
\Delta = 0.5*\begin{vmatrix} 1 & x_1 & y_1 \\ 1 & x_2 & y_2 \\ 1 & x_3 & y_3 \\ \end{vmatrix} = 0.5*\begin{vmatrix} 1 & x_1 & y_1 \\ 0 & x_2 - x_1 & y_2 - y_1 \\ 0 & x_3 - x_1 & y_3 - y_1\\ \end{vmatrix} \\ = 0.5*[(x_2-x_1)*(y_3-y_1) - (y_2-y_1)*(x_3-x_1) ]
Δ=0.5∗∣∣∣∣∣∣111x1x2x3y1y2y3∣∣∣∣∣∣=0.5∗∣∣∣∣∣∣100x1x2−x1x3−x1y1y2−y1y3−y1∣∣∣∣∣∣=0.5∗[(x2−x1)∗(y3−y1)−(y2−y1)∗(x3−x1)]
按底*高
计算可得
Δ
=
0.5
∗
∣
p
2
p
3
∣
∗
h
\Delta = 0.5 * \mid p_2 p_3 \mid * h
Δ=0.5∗∣p2p3∣∗h
所以
h
=
[
(
x
2
−
x
1
)
∗
(
y
3
−
y
1
)
−
(
y
2
−
y
1
)
∗
(
x
3
−
x
1
)
]
/
h
h = [(x_2-x_1)*(y_3-y_1) - (y_2-y_1)*(x_3-x_1) ] / h
h=[(x2−x1)∗(y3−y1)−(y2−y1)∗(x3−x1)]/h
注:如点
p1
嵌入到边p2p3
,那么计算h
值为负