Math 从某一特定边的向量求三角形相交

Math 从某一特定边的向量求三角形相交,math,trigonometry,Math,Trigonometry,我知道A,B和C的坐标。。我还知道一个向量V来自C 我知道向量与A和B相交,我只是不知道如何找到I 有人能解释一下解决这个问题的步骤吗 非常感谢 如果你知道A和B,你知道AB线的方程,你说你知道V,所以你可以建立V线的方程。。。。我是唯一满足这两个方程的点 AB线的方程式: (bx-ax)(Y-ay) = (by-ay)(X-ax) 如果已知向量的方向(或斜率=m)以及向量上的任何点,则向量V的直线方程为 Y=mX=b 其中m是直线的坡度或方向,b是横穿垂直y轴的y坐标(其中X=0) 如果

我知道A,B和C的坐标。。我还知道一个向量V来自C

我知道向量与A和B相交,我只是不知道如何找到I

有人能解释一下解决这个问题的步骤吗

非常感谢


如果你知道A和B,你知道AB线的方程,你说你知道V,所以你可以建立V线的方程。。。。我是唯一满足这两个方程的点

AB线的方程式:

  (bx-ax)(Y-ay) = (by-ay)(X-ax)
如果已知向量的方向(或斜率=m)以及向量上的任何点,则向量V的直线方程为

Y=mX=b

其中m是直线的坡度或方向,b是横穿垂直y轴的y坐标(其中X=0)

如果你知道直线上的一个点(即C=(s,t),那么你可以通过以下方法求解b:

t=ms+b=>b=t-ms

所以方程就变成了

Y = mX + t-ms

如果你知道A和B,你知道AB线的方程,你说你知道V,所以你可以建立V线的方程……我是唯一满足这两个方程的点

AB线的方程式:

  (bx-ax)(Y-ay) = (by-ay)(X-ax)
如果已知向量的方向(或斜率=m)以及向量上的任何点,则向量V的直线方程为

Y=mX=b

其中m是直线的坡度或方向,b是横穿垂直y轴的y坐标(其中X=0)

如果你知道直线上的一个点(即C=(s,t),那么你可以通过以下方法求解b:

t=ms+b=>b=t-ms

所以方程就变成了

Y = mX + t-ms
i=C+kV 让我们把N称为线A的法线,因此N=[-(B-A).y,(B-A).x] 此外,对于线上的任何点: (P-A)*N=0——从上述第1行中替换: (C+kV-A)*N=0 (kV+C-A)*N=0 kV*N+(C-A)*N=0 kV*N=(A-C)*N k=[(A-C)*N]/V*N 现在我们有了k,把它插入上面的第1行,得到i。 这里我用*表示点积,因此扩展到正则乘法:

k = ((A.x-C.x)*-(B.y-A.y) + (A.y-C.y)*(B.x-A.x)) / (V.x*-(B.y-A.y) + V.x*(B.x-A.x)) I.x = C.x + k*V.x I.y = C.y + k*V.y k=((A.x-C.x)*-(B.y-A.y)+(A.y-C.y)*(B.x-A.x))/(V.x*-(B.y-A.y)+V.x*(B.x-A.x)) I.x=C.x+k*V.x I.y=C.y+k*V.y 除非我把事情搞砸了

i=C+kV 让我们把N称为线A的法线,因此N=[-(B-A).y,(B-A).x] 此外,对于线上的任何点: (P-A)*N=0——从上述第1行中替换: (C+kV-A)*N=0 (kV+C-A)*N=0 kV*N+(C-A)*N=0 kV*N=(A-C)*N k=[(A-C)*N]/V*N 现在我们有了k,把它插入上面的第1行,得到i。 这里我用*表示点积,因此扩展到正则乘法:

k = ((A.x-C.x)*-(B.y-A.y) + (A.y-C.y)*(B.x-A.x)) / (V.x*-(B.y-A.y) + V.x*(B.x-A.x)) I.x = C.x + k*V.x I.y = C.y + k*V.y k=((A.x-C.x)*-(B.y-A.y)+(A.y-C.y)*(B.x-A.x))/(V.x*-(B.y-A.y)+V.x*(B.x-A.x)) I.x=C.x+k*V.x I.y=C.y+k*V.y
除非我把事情搞砸了……

简单代数。困难的部分通常只是写下基本方程,但一旦写下,其余的就很容易了

你能定义一条从点C=[C_x,C_y]和沿向量V=[V_x,V_y]的点发出的线吗?表示这样一条线的一个好方法是使用参数表示。因此

V(t) = C + t*V
就向量元素而言,我们把它作为

V(t) = [c_x + t*v_x, c_y + t*v_y]
看看它是如何工作的,当t=0时,我们得到点C,但是对于t的任何其他值,我们得到线上的其他点

通过A和B的线段如何?解决这个问题的一种方法是以相同的方式参数化定义第二条直线。然后求解两个未知量中的两个方程组以找到交点

更简单的方法是查看线段AB的法向量。该向量如下所示:

N = [b_y - a_y , a_x - b_x]/sqrt((b_x - a_x)^2 + (b_y - a_y)^2)
注意,这里定义N是为了有一个单位范数

那么现在,我们什么时候知道一个点是否恰好位于连接a和B的线上呢?这很容易。当下面定义的点积正好为零时,就会发生这种情况

dot(N,V(t) - A) = 0
展开它,求出参数t。我们可以用点积记下它

t = dot(N,A-C)/dot(N,V)
或者,如果你愿意

t = (N_x*(a_x - c_x) + N_y*(a_y - c_y)) / (N_x*v_x + N_y*v_y))
一旦我们有了t,用上面的表达式代替V(t)。让我们看看所有的实际工作。我将选取一些点A,B,C和向量V

A = [7, 3]
B = [2, 5]
C = [1, 0]

V = [1, 1]
归一化后,我们的法向量N看起来像

N = [0.371390676354104, 0.928476690885259]
然后,行参数t为

t = 3.85714285714286
我们发现交点为

C + t*V = [4.85714285714286, 3.85714285714286]

如果你在一张纸上画出这些点,所有的点都应该放在一起,并且只需要几个简单的表达式。

简单代数。困难的部分通常只是写下基本方程,但一旦写下,其余的就很容易了

你能定义一条从点C=[C_x,C_y]和沿向量V=[V_x,V_y]的点发出的线吗?表示这样一条线的一个好方法是使用参数表示。因此

V(t) = C + t*V
就向量元素而言,我们把它作为

V(t) = [c_x + t*v_x, c_y + t*v_y]
看看它是如何工作的,当t=0时,我们得到点C,但是对于t的任何其他值,我们得到线上的其他点

通过A和B的线段如何?解决这个问题的一种方法是以相同的方式参数化定义第二条直线。然后求解两个未知量中的两个方程组以找到交点

更简单的方法是查看线段AB的法向量。该向量如下所示:

N = [b_y - a_y , a_x - b_x]/sqrt((b_x - a_x)^2 + (b_y - a_y)^2)
注意,这里定义N是为了有一个单位范数

那么现在,我们什么时候知道一个点是否恰好位于连接a和B的线上呢?这很容易。当下面定义的点积正好为零时,就会发生这种情况

dot(N,V(t) - A) = 0
展开它,求出参数t。我们可以用点积记下它

t = dot(N,A-C)/dot(N,V)
或者,如果你愿意

t = (N_x*(a_x - c_x) + N_y*(a_y - c_y)) / (N_x*v_x + N_y*v_y))
一旦我们有了t,用上面的表达式代替V(t)。让我们看看所有的实际工作。我将选取一些点A,B,C和向量V

A = [7, 3]
B = [2, 5]
C = [1, 0]

V = [1, 1]
归一化后,我们的法向量N看起来像

N = [0.371390676354104, 0.928476690885259]
然后,行参数t为

t = 3.85714285714286
我们发现交点为

C + t*V = [4.85714285714286, 3.85714285714286]