我想在一条线上计算点数。 我得到了边缘的点和一个边缘到我想要找到的点之间的一个距离(这是B)。
A(2,4)
B(X,Y)
C(4,32)
A到B之间的距离是5.
如何计算Bx和By?使用以下等式:
d = Math.Sqr((Bx-Ax)^2 + (By-Ay)^2)
d = Math.Sqr((Cx-Bx)^2 + (Cy-By)^2)
并比较上面的等式。
以下是放置点的方程式:
5 = Math.Sqr((Bx-2)^2 + (By-4)^2)
23.0713366 = Math.Sqr((4-Bx)^2 + (32-By)^2)
或
Math.Sqr((Bx-2)^2 + (By-4)^2) - 5 = Math.Sqr((4-Bx)^2 + (32-By)^2) - 23.0713377
如何使用VBA解决此问题?
谢谢!
答案 0 :(得分:2)
我不会在上面解决你的等式,因为它们是一种不必要的复杂方式来陈述问题(并且在存在舍入的情况下解决方案的存在是有问题的),但是线上的所有点A=(Ax,Ay)
在C=(Cx,Cy)
和B=(Ax,Ay) + t*(Cx-Ax,Cy-Ay)
之间t
0
可以被描述为1
。
B
和A
之间的距离由d=t*Sqrt((Cx-Ax)^2+(Cy-Ay)^2)
给出,您可以将其反转以获得给定t
的正确d
- { {1}}
在您的情况下,t=d/Sqrt((Cx-Ax)^2+(Cy-Ay)^2)
,B(t) = (2,4) + t*(2,28)
- > t=5/Sqrt(2^2+28^2) ~ 0.178
。
答案 1 :(得分:0)
VBA没有Symbolic Language功能。要解决这个问题,有不同的方法:
所以基本上,我会说你是第一种方式。它需要15分钟的修补数学方程式,然后你就可以了。