两个向量之间的插值线中向量的交点?反向线性插值?
Intersection of a vector in the interpolation line between two vectors? Reverse Linear Interpolation?
查看图片
基本上我有一个矢量方向 (c) 位于两个矢量(a 和 b)之间,我想找到 P 方向 c 与 a 和 b 定义的线的交点。
所以我把所有三个向量都放在一个平面上,想找到 P。
谢谢!
向量 OP 是 P = (1-t)*A+t*B
并且您需要找到 P
使得 C×P=0
其中 ×
是向量叉积。最后我得到
t = (ax*cy-ay*cx)/(ax*cy-ay*cx-bx*cy+by*cx)
px = cx*(ax*by-ay*bx)/(ax*cy-ay*cx-bx*cy+by*cx)
py = cy*(ax*by-ay*bx)/(ax*cy-ay*cx-bx*cy+by*cx)
示例,A=(1,6)
、B=(5,2)
、C=(0.5,0.8)
t = 11/26
px = 35/13
py = 56/13
使用 GeoGebra 检查结果:
好的,以我的大脑可以计算的方式解决了这个问题。
图片说明,我是视觉达人:http://i.imgur.com/o5rlSdK.png
将向量之一投影到边缘,然后减去向量的投影,得到 p,垂直于边缘的向量。
然后将 c 投影到 p 上,无论投影长度与 p 的长度的因数是多少,我都将 c 乘以,得到交点。
抱歉,如果这是一个非常不稳定的实现,但我这边的输出正是我所需要的。
查看图片
基本上我有一个矢量方向 (c) 位于两个矢量(a 和 b)之间,我想找到 P 方向 c 与 a 和 b 定义的线的交点。
所以我把所有三个向量都放在一个平面上,想找到 P。
谢谢!
向量 OP 是 P = (1-t)*A+t*B
并且您需要找到 P
使得 C×P=0
其中 ×
是向量叉积。最后我得到
t = (ax*cy-ay*cx)/(ax*cy-ay*cx-bx*cy+by*cx)
px = cx*(ax*by-ay*bx)/(ax*cy-ay*cx-bx*cy+by*cx)
py = cy*(ax*by-ay*bx)/(ax*cy-ay*cx-bx*cy+by*cx)
示例,A=(1,6)
、B=(5,2)
、C=(0.5,0.8)
t = 11/26
px = 35/13
py = 56/13
使用 GeoGebra 检查结果:
好的,以我的大脑可以计算的方式解决了这个问题。
图片说明,我是视觉达人:http://i.imgur.com/o5rlSdK.png
将向量之一投影到边缘,然后减去向量的投影,得到 p,垂直于边缘的向量。
然后将 c 投影到 p 上,无论投影长度与 p 的长度的因数是多少,我都将 c 乘以,得到交点。
抱歉,如果这是一个非常不稳定的实现,但我这边的输出正是我所需要的。