gpt4 book ai didi

python - 3D 中点和圆弧之间的距离

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:02 24 4
gpt4 key购买 nike

我想计算 3D 空间中圆弧和点之间的距离。我找到的只是圆和点之间的距离 link (这是错误的,或者我犯了错误,因为我得到了错误的值):

P = np.array([1,0,1])
center = np.array([0,0,0])
radius = 1
n2 = np.array([0,0,1])

Delta = P-center
dist_tmp = np.sqrt( (n2*Delta)**2 + (np.abs(np.cross(n2, Delta))-radius)**2 )
dist = np.linalg.norm(dist_tmp)

我在 x-y 平面上有一个原点为 x-y-z = 0 且半径 = 1 的圆。兴趣点位于圆上方 1 处。距离代码的结果是 1.73.. 而不是 1。

  1. 点圆距离的正确方程式是什么?
  2. 如何将其扩展到点弧距离?

最佳答案

您的代码中有几个错误。这是您第一个问题的答案。

首先,您尝试将 n2Delta 的点积实现为 n2*Delta,但这不是2 np 数组可以。请改用 np.dot()。接下来,您尝试使用 np.abs 获取向量的“绝对值”(幅值),但后者仅适用于实数和复数。获取矢量幅度的一种方法是 np.linalg.norm()。更改这些将为您提供正确的答案,并且您不需要用于变量 dist 的计算。所以用

Delta = P-center
dist = np.sqrt(np.dot(n2, Delta)**2 + (np.linalg.norm(np.cross(n2, Delta))- radius)**2)

这给出了 dist 的正确答案,1.0

关于python - 3D 中点和圆弧之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916821/

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