我很抱歉标题含糊不清,但我不知道我试图计算的矢量是否有科学名称。
见草图
两条黑线是从某个原点指向的矢量。 红线是黑色矢量的垂直矢量。 我想计算指向红色矢量相交处的蓝色矢量。
我正在使用它作为“组合”两个向量的方法。我正在寻找一种方法来找到移动两者数量的“最大”矢量,而不是简单地添加矢量。
示例:
如果两个向量相等,将它们加在一起会产生两倍的向量。相反,我的矢量应该只是原始矢量之一的大小。
如果一个矢量比另一个矢量长但方向相同,我的矢量应该更长。
另一方面,如果两个向量是正交的,那么我的向量将等于加在一起的向量。
如果有人知道这个载体的科学名称,请告诉我,这样我就可以做自己的研究。 :)
感谢。
修改
根据dpmcmlxxvi的帖子,
我想出了两个方程来求解x和y交点。
xi = (m1 * x1) - (m2 * x2) - y1 + y2
yi = (m1 * xi) - (m1 * x1) + y1
修改
上述方程存在无穷大m值的问题(当垂直线是垂直的时)。
我发现了一篇维基文章:https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line
并且使用“给定两条线在每条线上”的方程式,只要线条不平行就能很好地工作。
答案 0 :(得分:1)
首先,请参阅上面的评论,关于您的定义不适用于并行向量。其次,以下内容应该为您提供交叉点。
找到每个黑色矢量的垂直线的数学运算位于之前的answer。
有一次,每个黑色矢量都有一条垂直线,你将有两个自由参数,每行一个。
等同两条线,这将为您提供自由参数并产生交点。
从原点中减去交点可以得到你想要的蓝色矢量。
答案 1 :(得分:1)
对于平面齐次坐标,矢量末端的位置是
path {
fill: #f00;
}
平面齐次坐标中的线由三个值P_1 = (x_1,y_1,1)
P_2 = (x_2,y_2,1)
描述,使得线的方程为(a,b,c)
通过每个点的垂直线具有坐标
a*x+b*y+c=0
两条线的交点的位置由L_1 = [x_1,y_1,-x_1^2-y_1^2]
L_2 = [x_2,y_2,-x_2^2-y_2^2]
定义,其中Q=L_1 × L_2
是矢量叉积。因此,齐次坐标的结果是
×
Q = | y_2*(x_1^2+y_1^2)-y_1*(x_2^2+y_2^2) |
| x_1*(x_2^2+y_2^2)-x_2*(x_1^2+y_1^2) |
| x_1*y_2-x_2*y_1 |
的笛卡尔坐标为
Q
和
y_2*(x_1^2+y_1^2)-y_1*(x_2^2+y_2^2)
x = -------------------------------------
x_1*y_2-x_2*y_1