python极坐标和直角坐标的转换 |
您所在的位置:网站首页 › 已知极坐标点求直角坐标 › python极坐标和直角坐标的转换 |
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]
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |