线交点-有差异(excel VBA)
我一直在研究一个问题,通过我所有的研究,我一直无法找到一个现有的解决方案。我没有必要的数学知识来产生一个优雅的解决方案 有几个工作(并且非常优雅)的线与线相交的例子,可以是完整的线或线段(参见链接): (dropbox共享文件夹中的其他示例) 我的问题是说明使用附加的图像。有一条定义的线,从L1(x,y)开始,到L2(x,y)结束。没有第二条线-而是另一个点的坐标(实际上是L3)和一个轴或移动角度。如果点L3沿移动轴/角度继续,我需要计算到交点的距离和坐标线交点-有差异(excel VBA),excel,vba,geometry,trigonometry,intersection,Excel,Vba,Geometry,Trigonometry,Intersection,我一直在研究一个问题,通过我所有的研究,我一直无法找到一个现有的解决方案。我没有必要的数学知识来产生一个优雅的解决方案 有几个工作(并且非常优雅)的线与线相交的例子,可以是完整的线或线段(参见链接): (dropbox共享文件夹中的其他示例) 我的问题是说明使用附加的图像。有一条定义的线,从L1(x,y)开始,到L2(x,y)结束。没有第二条线-而是另一个点的坐标(实际上是L3)和一个轴或移动角度。如果点L3沿移动轴/角度继续,我需要计算到交点的距离和坐标 当提供原点、方位和距离时,获取位置
当提供原点、方位和距离时,获取位置坐标也很有用,例如,在方位为195度的情况下,距离为10m的x,y到达x,y?这实际上是相同的函数,除了距离定义与计算距离和交点的x,y来自射影几何背景,计算齐次坐标的叉积是我最喜欢的优雅连接点或相交(无限)线的方法。在您的情况下,我首先重命名点。假设第一行由
A
和B
定义,第二行通过C
并具有如您所示的角度z
。然后我会计算
⎡Dx⎤ ⎛⎡Ax⎤ ⎡Bx⎤⎞ ⎛⎡Cx⎤ ⎡sin z⎤⎞ ⎡(Ay Bx - Ax By) sin z - (Cx cos z - Cy sin z) (Ax - Bx)⎤
⎢Dy⎥ = ⎜⎢Ay⎥ × ⎢By⎥⎟ × ⎜⎢Cy⎥ × ⎢cos z⎥⎟ = ⎢(Ay Bx - Ax By) cos z - (Cx cos z - Cy sin z) (Ay - By)⎥
⎣Dz⎦ ⎝⎣1 ⎦ ⎣1 ⎦⎠ ⎝⎣1 ⎦ ⎣ 0 ⎦⎠ ⎣(Ay - By) sin z - (Ax - Bx ) cos z ⎦
然后
(Dx/Dz,Dy/Dz)
是交点的坐标,从交点到C
的距离可以用毕达哥拉斯的常用方法计算。第一个内部叉积描述了连接A
和B
的线。第二个内叉积将C
与您指定方向上的无穷远点连接起来。然后,外叉积与这两条线相交,生成交点的齐次坐标。编辑样本数据和预期结果将大大有助于使这成为一个优秀的问题。如果必须随机生成样本数据以证明解决方案,我们如何确保数据与您的情况相关?抱歉。数据非常简单,例如第1行由L1(x,y)坐标和L2(x,y)坐标组成。然后是距离位置L3(x,y)坐标,该坐标具有方向角和距离。在进一步研究之后,似乎L1到L2的直线应该转换成一个向量,然后使用方向角与L3的向量相交?我将把这看作是欧几里得几何证明。使斜边从L到P很简单。在假想的相交处形成相反的角度是另一个问题。在那之后,一切都是ASA(角度-侧角)和正弦定律,加上一些加减法。然而,如果没有样本数据和预期结果(以及一些原始的工作),我可能只是在尝试提供解决方案,我将如何在excel或VBA中实现这一点。这是主要的障碍-数学在那里,但我没有一个实际的解决方案。我的数学知识在这方面是缺乏的…@user3076007:我已经很久没有做过VBA编程了,但是如果你采用我公式右边的扩展形式,那么你所要做的就是调用sin和cos,然后执行基本的算术运算:减法、乘法、除法。当然,如果您为叉积编写自己的小子程序,并在高级别上实现这些东西,可能会更优雅。我不会为您编写VBA代码。