【学习笔记】Matlab中求点到直线的距离
点到直线的垂直距离
·
点到直线
假设直线L1: Ax+By+C=0Ax+By+C=0Ax+By+C=0,直线外一点(x0,y0)(x_0,y_0)(x0,y0),点到直线的垂直距离为ddd,
则
d=∣Ax0+By0+C∣A2+B2d=\frac{\lvert Ax_0+By_0+C \rvert}{\sqrt{A^2+B^2}}d=A2+B2∣Ax0+By0+C∣
用Matlab计算
需要注意坐标的表示方式
// 当坐标为行向量
p0 = [3,6]
p1 = [3,4]
p2 = [5,6]
d = abs(det([p2-p1;p0-p1])/norm(p2-p1))%d=1.1414
// 当坐标为列向量
p0 = [3;6]
p1 = [3;4]
p2 = [5;6]
d = abs(det([p2-p1,p0-p1])/norm(p2-p1))%d=1.414
// 当坐标为三维空间坐标
p0 = [3;6;4]
p1 = [3;4;3]
p2 = [5;6;5]
d = norm(cross(p2-p1,p0-p1)/norm(p2-p1)%d=1.414
直线间夹角
L1: A1x+B1y+C1=0A_1x+B_1y+C_1=0A1x+B1y+C1=0
L2: A2x+B2y+C2=0A_2x+B_2y+C_2=0A2x+B2y+C2=0
cosθ=∣A1A2+B1B2∣A12+B12⋅A22+B22\cos \theta=\frac{\lvert A_1A_2+B_1B_2 \rvert}{\sqrt{A_1^2+B_1^2} \cdot \sqrt{A_2^2+B_2^2}}cosθ=A12+B12⋅A22+B22∣A1A2+B1B2∣, θ∈[0,π2]\theta \in[0,\frac{\pi}{2}]θ∈[0,2π]
更多推荐


所有评论(0)