gpt4 book ai didi

python - numpy arctan函数镜像角度

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:25 34 4
gpt4 key购买 nike

问题:存在数据点的坐标网格,需要将它们过滤到特定的弯曲区域。

解决方案:

  • 面积是如何确定的?

    • 在一个网格中,您会得到该网格上的一个特定点 (A) 和一个与该点的角度(相对于网格确定)

    • 您还会获得网格内的目标点 (B)

    • 从点 (A) 绘制 2 个具有不同特定半径的圆

    • 标记一个以给定角度两侧 45 度为界的区域

    • 评估网格上的每个点,看看它是否落在 2 个圆圈和 90 度部分所围成的区域内

我的解决方案存在问题:不是过滤 1 个区域,而是过滤 2 个镜像区域,从而允许出现不正确的数据。

网格上的每个点如果适合过滤区域,则通过以下函数进行评估。我研究了 arctan2 函数,看看它是否有帮助,但不明白它。可以找到该问题的完整摘要 here

这里有一些澄清图片:

What this should look like , what this code looks like in practice ,以及some testable data

def pertenece(x,y,x_pala,y_pala,alpha):
#parametros R int y R ext
R_int = 17
R_ext = 25
#def thetas
Theta_min = (alpha - 45)*(180/m.pi)**-1
Theta_max = (alpha + 45)*(180/m.pi)**-1

#calc R punto y Theta punto
R_punto = ((x-x_pala)**2 + (y-y_pala)**2)**0.5
Theta_punto = np.arctan((y-y_pala)/(x-x_pala))

if (R_punto >= R_int and R_punto<=R_ext) and (Theta_punto >= Theta_min and Theta_punto<=Theta_max):
return True
else:
return False

从文档中可以看出,应该只过滤掉一个象限,实际上有 2 个象限。

最佳答案

您确实应该使用np.arctan2,否则它无法区分不同签名的输入。例如,np.arctan(1/2)np.arctan(-1/-2) 相同,因为参数相同。因此,您将保留 (-,-)(+,+) 象限。对于 np.arctan2,您只需将两个坐标作为单独的参数传递,以便算法可以根据两个参数的符号计算出象限。因此,您应该计算以下内容:

Theta_punto = np.arctan2((y-y_pala), (x-x_pala))

关于python - numpy arctan函数镜像角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55580115/

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