使用向量计算点到直线的距离
为直线上的两个点, 求红色的点到直线的距离。红色的点为鼠标位置, 蓝色的点。将问题进行一下转化:如下图所示。
·
0.引言
1.基础
- 单位向量:模等于1的向量,一个非零向量除以它的模,可得所需单位向量。
- 向量的加减法:
- 向量的投影:设两个非零向量 a \mathbf{a} a 与 b \mathbf{b} b 的夹角为 θ \theta θ, 则将 ∣ b ∣ ⋅ cos θ |\mathbf{b}| \cdot \cos \theta ∣b∣⋅cosθ 叫做向量 b \mathbf{b} b 在向量 a \mathbf{a} a 方向上的投影
- 向量的点乘:
a ⃗ ∙ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos θ \vec{a} \bullet \vec{b}=|\vec{a}||\vec{b}| \cos \theta a∙b=∣a∣∣b∣cosθ - 向量的叉乘:
- 模长: ∣ a ⃗ × b ⃗ ∣ = ∣ a ⃗ ∣ ∙ ∣ b ⃗ ∣ ∙ sin θ |\vec{a} \times \vec{b}|=|\vec{a}| \bullet|\vec{b}| \bullet \sin \theta ∣a×b∣=∣a∣∙∣b∣∙sinθ ,即长度在数值上等于以向量a、b、夹角 θ \theta θ 组成的平行四边形的面积。
- 方向:与这两个向量所在的平面垂直, 且脍守右手定则(或左手定则)。
2.点到线的距离
红色的点为鼠标位置, 蓝色的点 ( x 0 , y 0 ) , ( x 1 , y 1 ) (x_0, y_0),(x_1, y_1) (x0,y0),(x1,y1) 为直线上的两个点, 求红色的点到直线的距离。
将问题进行一下转化:如下图所示
- 点乘法:
- 向量 c 为向量 a 在向量 b 上的投影向量, 求得向量 e 的模即可求得最终结果。
- 向量 a 已知, 并且 e = a − c \mathrm{e}=\mathrm{a}-\mathrm{c} e=a−c, 则问题转化为求向量 c \mathrm{c} c
- 向量c的方向很容易确定, 即 b \mathbf{b} b normalized; 而向量c的模 ∣ c ∣ = ∣ a ∣ ⋅ cos θ |\mathbf{c}|=|\mathbf{a}| \cdot \cos \theta ∣c∣=∣a∣⋅cosθ, 则求出 cos θ \cos \theta cosθ 即可。
- 由向量的点乘很容易知道 a ⋅ b = ∣ a ∣ b ∣ cos θ \mathbf{a} \cdot \mathbf{b}=|\mathbf{a}| \mathbf{b} \mid \cos \theta a⋅b=∣a∣b∣cosθ, 则最终问题得以解决。
- 叉乘法:
∣ a x b ∣ |\mathbf{a x b}| ∣axb∣ 等于它们所张开的平行四边形的面积 s 。 s 除以 ∣ b ∣ |\mathbf{b}| ∣b∣ 即等于点到直线的距离。
根据平行四边形公式, 很显然我们要求的d就是这个平行四边形的高, 也就是:
d = ∣ A B → × A P → ∣ ∣ A B → ∣ d=\frac{|\overrightarrow{A B} \times \overrightarrow{A P}|}{|\overrightarrow{A B}|} d=∣AB∣∣AB×AP∣
更多推荐
所有评论(0)