我是极地坐标的新手,我刚刚在极坐标中找出了一个圆的方程(方程是用python编写的):
r**2 + r0**2 - 2*r*r0*math.cos(theta - phi) = a**2
如果极坐标(r0, phi)
是圆的中心,a
是圆的半径,(r, theta)
是圆上的任何通用点。因此,这可以简化为r
解决:
r = r0*math.cos(theta - phi) + math.sqrt(a**2 - r0**2 * math.sin(theta - phi)**2)
为了测试这个,我有以下数据设置。
r0 = math.sqrt(13) # (r0, phi) describes the center point ((3, 2) in Cartesian coords
phi = math.acos(3/r0)
a = 2 # radius is 2
为了解决r
,我将math.pi/2
作为theta
的值传递。这是数学域错误发生的地方;出于某种原因,a**2 - r0**2 * math.sin(theta - phi)**2
评估为负数,据我所知,这个数字永远不会发生(尤其不适用于此圈)。我究竟做错了什么?我是否误解了这个等式,还是我犯了一个简单的愚蠢错误?
答案 0 :(得分:0)
没关系。
它只是意味着您的垂直线(theta = math.pi / 2)不与您的圆相交。