首页 > 编程知识 正文

python 坐标转换,直角坐标系如何转化为极坐标

时间:2023-05-03 13:22:46 阅读:257403 作者:4919

1。直角坐标转极坐标

import cmath

cn = complex(3,4)

cmath.polar(cn)  #返回长度和弧度

2.极坐标转直角坐标

cn1 = cmath.rect(2, cmath.pi)

cn1.real,cn1.imag,

补充:弧度转角度:

import math

math.degrees(x)弧度转换为角度。

角度转为弧度:

import math

math.radians(x)

极坐标和直角坐标互相转换的一个应用:

#计算A线段在B线段中所占的比例

def getPorAInB(LineAS,LineAE,LineBS,LineBE):

#首先,选定LineB的一个点作为起点,大家都转为极坐标

#然后,各点的角度都减去LineB的那个角度

#然后,将极坐标转为x,y坐标

LineAS = np.array(LineAS)

LineAE = np.array(LineAE)

LineBS = np.array(LineBS)

LineBE = np.array(LineBE)

(LineAS, LineAE,LineBS, LineBE) = (LineAS-LineBS, LineAE-LineBS,LineBS-LineBS, LineBE-LineBS)

LineASPo = cartToPolar(LineAS[0],LineAS[1] ) #极坐标顺序是先r,后角度

LineAEPo = cartToPolar(LineAE[0], LineAE[1])

LineBEPo = cartToPolar(LineBE[0], LineBE[1])

LineASPo= (LineASPo[0],LineASPo[1]-LineBEPo[1])

LineAEPo = (LineAEPo[0], LineAEPo[1] - LineBEPo[1])

LineBEPo = (LineBEPo[0], 0)

#在将他们转回直角坐标

LineAS = polarToCart(LineASPo[0],LineASPo[1])

LineAE = polarToCart(LineAEPo[0],LineAEPo[1])

#value1,value2表示起点和终点落在了几分之几的位置

value1 = LineAS[0]/LineBEPo[0]

value2 = LineAE[0]/LineBEPo[0]

#将value1,value2,0,1按从小到大的顺序排列,然后去中间的两个

return np.sort([value1,value2,0,1])[1:3]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。