gpt4 book ai didi

python - 查找高度与基线相交的点(Python)

转载 作者:行者123 更新时间:2023-12-05 01:15:47 25 4
gpt4 key购买 nike

仅给定锐角三角形的顶点坐标,如何高效快速地找到特定顶点的高与对边底相交点的坐标?

仅使用数学、numpy 或 scipy 的解决方案将非常有用。

最佳答案

需要的点是顶点(比如顶点C)到包含对边的线(比如AB)的正交投影。

enter image description here

要找到投影点,请获取 AB 和 AC 的向量

 AB = (B - A)    //in coordinates ab.x = b.x-a.x, ab.y = b.y-a.y
AC = (C - A)

使用 AB 和 AC 的标量积求参数

t =(AB * AC) / (AB * AB) 
t =((b.x-a.x)*(c.x-a.x) + (b.y-a.y)*(c.y-a.y)) / ((b.x-a.x)*(b.x-a.x) + (b.y-a.y)*(b.y-a.y))

投影点坐标

 P = A + AB * t
p.x = a.x + (b.x-a.x) * t
p.y = a.y + (b.y-a.y) * t

就是这样

def orthoProjection(ax, ay, bx, by, cx, cy):
abx = bx - ax
aby = by - ay
acx = cx - ax
acy = cy - ay
t = (abx * acx + aby * acy) / (abx * abx + aby * aby)
px = ax + t * abx
py = ay + t * aby
return px, py

print(orthoProjection(0, 0, 4, 4, -1, 5))
>>(2.0, 2.0)

关于python - 查找高度与基线相交的点(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55230528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com