我在链接中有3分A,B,C点。这些点产生一个与AB平行的三角形ABC.2红线,它们之间的距离为30。这条绿线穿过B,与AC垂直。这是描述它的图片
如何找到两条红线与绿线之间的坐标?
解决方案
谢谢@MBo,我想在最后一个表达式中提供一种更容易理解的方法:我将ip1坐标作为
ip1 = b.x + t * n.x, b.y + t * n.y (1)
所以ip1和b之间的距离是:
d / sine(n, BA) = sqrt ((t * n.x) ** 2 + (t * n.y) ** 2)
您可以很容易地计算t,然后将它放在(1)中以找到ip1和ip2。
发布于 2022-04-18 02:41:50
假设您想要高度Bh
和红线之间的两个交点(在d
距离处与BA
平行):
获取向量
AC = C.x - A.x, C.y- A.y
BA = A.x - B.x, A.y- B.y
并将其规范化(使单位长度除以向量大小)
求出垂直于AC的高度矢量
n = -ac.y, ac.x
用交叉积求n
和BA
之间的正弦角
s = abs(n.x * ba.y - n.y * ba.x)
现在获取交叉点的坐标:
ip1 = B + n * d / s
ip2 = B - n * d / s
就这样。
https://stackoverflow.com/questions/71910169
复制