笛卡尔坐标与极坐标的相互转换

一、笛卡尔坐标与极坐标的相互转换需要用到三角形

二、笛卡尔坐标转换为极坐标

当知道一点的笛卡尔坐标 ( x , y ) (x,y) (x,y) 想转换成极坐标 ( r , θ ) (r,θ) (r,θ),需要解一个有两条已知边的直角三角形。

例子:(12,5) 的极坐标?

用勾股定理去计算长的一边(斜边):

r = 1 2 2 + 5 2 = 13 r = \sqrt{12^2 + 5^2} = 13 r=122+52 =13

用正切函数去计算角度:

t a n ( θ ) = 5 / 12 tan(\theta) = 5 / 12 tan(θ)=5/12
θ = t a n − 1 ( 5 / 12 ) = a r c t a n ( 5 / 12 ) = 22.6 ° (精确到一位小数) \theta = tan^{-1}(5 / 12) = arctan(5/12) = 22.6°(精确到一位小数) θ=tan1(5/12)=arctan(5/12)=22.6°(精确到一位小数)

答案: (12,5) 的极坐标是 (13, 22.6°)

  • r = ( x 2 + y 2 ) r = \sqrt{(x^2 + y^2)} r=(x2+y2)
  • θ = a r c t a n ( y / x ) \theta = arctan(y/x) θ=arctan(y/x)

三、极坐标转换为笛卡尔坐标

当知道一点的极坐标 ( r , θ ) (r,θ) (r,θ),想转换为笛卡尔坐标 ( x , y ) (x,y) (x,y),需要解一个有已知斜边和角度的直角三角形:

例子: (13, 22.6°) 的笛卡尔坐标?

x x x 的余弦函数: c o s ( 22.6 ° ) = x / 13 cos(22.6°) = x / 13 cos(22.6°)=x/13

进一步:
x = 13 × c o s ( 22.6 ° ) = 12.002 x = 13 × cos(22.6°) = 12.002 x=13×cos(22.6°)=12.002

y y y 的正弦函数: s i n ( 22.6 ° ) = y / 13 sin(22.6°) = y / 13 sin(22.6°)=y/13

进一步:
y = 13 × s i n ( 22.6 ° ) = 4.996 y = 13 × sin(22.6°) = 4.996 y=13×sin(22.6°)=4.996

答案: (13, 22.6°) 的笛卡尔坐标是差不多 (12, 5)

所以,极坐标 ( r , θ ) (r,θ) (r,θ) 转换为笛卡尔坐标 ( x , y ) (x,y) (x,y)

  • x = r × c o s ⁡ ( θ ) x = r × cos⁡(θ) x=r×cos(θ)
  • y = r × s i n ( θ ) y = r × sin(θ) y=r×sin(θ)

四、总结

极坐标 ( r , θ ) (r,θ) (r,θ) 转换为笛卡尔坐标 ( x , y ) (x,y) (x,y)

  • x = r × c o s ⁡ ( θ ) x = r × cos⁡(θ) x=r×cos(θ)
  • y = r × s i n ( θ ) y = r × sin(θ) y=r×sin(θ)

笛卡尔坐标 ( x , y ) (x,y) (x,y) 转换为极坐标 ( r , θ ) (r,θ) (r,θ):

  • r = ( x 2 + y 2 ) r = \sqrt{(x^2 + y^2)} r=(x2+y2)
  • θ = a r c t a n ( y / x ) \theta = arctan(y/x) θ=arctan(y/x)

五、代码实现

笛卡尔坐标转换为极坐标

import numpy as np
r = np.sqrt(x ** 2 + y ** 2)
theta = np.arctan2(y, x)

# the result is (r, theta)

Reference

https://blog.csdn.net/weixin_36815313/article/details/109485524

猜你喜欢

转载自blog.csdn.net/qq_46450354/article/details/129731395