给定一个向量 a,我如何缩放另一个单位向量,使其与垂直于向量 a 的线相交?
Given a vector, a, how can I scale another unit vector so that it meets with the line that is perpendicular to vector a?
我知道如何使用直角三角形来做到这一点:我想要的向量的长度将是 vector a
的大小除以 vector a
和给定单位向量之间夹角的余弦值。一旦我找到这个值,我就可以简单地按这个长度缩放单位向量。
假设归一化 vector a
和给定单位向量的点积大于 0,我如何仅使用向量数学求出这个长度?下面是一张图片,以帮助说明我正在尝试做的事情。我想要将作为单位向量的红色向量缩放,直到它与垂直于 vector a
.
的白线相交
我们从绿色向量 a 和红色单位向量 r 开始。
标准化 a 得到一个单位向量,我们称之为 k:
k = a/|a|
现在将 r 投影到 k 上以获得 r 方向的分量a,称它为x(等于r和a夹角的余弦值) .
x = r · k = (1/|a|)(r · a)
现在我们使用相似三角形:
|R|/|a| = |r|/x = 1/x
|R| = |a|/x
R = |R|r = (|a |/x)r = (|a|2/(r · a))r
我知道如何使用直角三角形来做到这一点:我想要的向量的长度将是 vector a
的大小除以 vector a
和给定单位向量之间夹角的余弦值。一旦我找到这个值,我就可以简单地按这个长度缩放单位向量。
假设归一化 vector a
和给定单位向量的点积大于 0,我如何仅使用向量数学求出这个长度?下面是一张图片,以帮助说明我正在尝试做的事情。我想要将作为单位向量的红色向量缩放,直到它与垂直于 vector a
.
我们从绿色向量 a 和红色单位向量 r 开始。
标准化 a 得到一个单位向量,我们称之为 k:
k = a/|a|
现在将 r 投影到 k 上以获得 r 方向的分量a,称它为x(等于r和a夹角的余弦值) .
x = r · k = (1/|a|)(r · a)
现在我们使用相似三角形:
|R|/|a| = |r|/x = 1/x
|R| = |a|/x
R = |R|r = (|a |/x)r = (|a|2/(r · a))r