从另外两个 2D 向量计算这个新的 2D 向量。 (见图)
Calculating this new 2D vector from two other 2D vectors. (See image)
抱歉,标题含糊不清,但我不知道我要计算的向量是否有科学名称。
见草图
两条黑线是从某个原点指向的矢量。
红线是黑色矢量的垂直矢量。
我想计算指向红色向量相交位置的蓝色向量。
我用它来 'combine' 两个向量。我正在寻找一种方法来找到 "maximum" 向量,它移动两者的数量而不是简单地添加向量。
示例:
如果两个向量相等,将它们相加会产生两倍长的向量。相反,我的矢量应该只是原始矢量之一的大小。
如果一个向量比另一个向量长但方向相同,我的向量应该是较长的那个。
另一方面,如果两个向量是正交的,那么我的向量将等于加在一起的向量。
如果有人知道此载体的科学名称,请告诉我,以便我进行自己的研究。 :)
谢谢
编辑:
基于 dpmcmlxxvi 的 post,
我想出了两个方程来求解 x 和 y 交点。
xi = (m1 * x1) - (m2 * x2) - y1 + y2
yi = (m1 * xi) - (m1 * x1) + y1
编辑:
上面的方程式在 m 的无穷大值(当垂线垂直时)存在问题。
我找到了一篇 Wiki 文章:https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line
并使用了 "Given two points on each line" 方程式,只要线条不平行就可以很好地工作。
首先,请参阅我上面关于您的定义不适用于平行向量的评论。其次,以下应该为您提供交点。
找到每个黑色向量的垂直线的数学运算在前面的 answer.
中
一旦每个黑色矢量都有一条垂直线,您将有两个自由参数,每条线一个。
使两条线相等,这将为您提供自由参数并得出交点。
从原点减去交点得到你想要的蓝色矢量。
对于平面齐次坐标,矢量端点的位置是
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
和
x_1*(x_2^2+y_2^2)-x_2*(x_1^2+y_1^2)
y = -------------------------------------
x_1*y_2-x_2*y_1
抱歉,标题含糊不清,但我不知道我要计算的向量是否有科学名称。
见草图
两条黑线是从某个原点指向的矢量。 红线是黑色矢量的垂直矢量。 我想计算指向红色向量相交位置的蓝色向量。
我用它来 'combine' 两个向量。我正在寻找一种方法来找到 "maximum" 向量,它移动两者的数量而不是简单地添加向量。
示例:
如果两个向量相等,将它们相加会产生两倍长的向量。相反,我的矢量应该只是原始矢量之一的大小。
如果一个向量比另一个向量长但方向相同,我的向量应该是较长的那个。
另一方面,如果两个向量是正交的,那么我的向量将等于加在一起的向量。
如果有人知道此载体的科学名称,请告诉我,以便我进行自己的研究。 :)
谢谢
编辑:
基于 dpmcmlxxvi 的 post,
我想出了两个方程来求解 x 和 y 交点。
xi = (m1 * x1) - (m2 * x2) - y1 + y2
yi = (m1 * xi) - (m1 * x1) + y1
编辑:
上面的方程式在 m 的无穷大值(当垂线垂直时)存在问题。
我找到了一篇 Wiki 文章:https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line
并使用了 "Given two points on each line" 方程式,只要线条不平行就可以很好地工作。
首先,请参阅我上面关于您的定义不适用于平行向量的评论。其次,以下应该为您提供交点。
找到每个黑色向量的垂直线的数学运算在前面的 answer.
中
一旦每个黑色矢量都有一条垂直线,您将有两个自由参数,每条线一个。
使两条线相等,这将为您提供自由参数并得出交点。
从原点减去交点得到你想要的蓝色矢量。
对于平面齐次坐标,矢量端点的位置是
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
和
x_1*(x_2^2+y_2^2)-x_2*(x_1^2+y_1^2)
y = -------------------------------------
x_1*y_2-x_2*y_1