python中坐标系的方向_使用python计算径向角度,顺时针/逆时针方向,给定像素坐标(反之亦然)...

对于我不会涉及的上下文,我需要两个基本上彼此互逆的函数.

angle_to()应该返回clockhand必须转向从0°行进到连接p1到p2的线的度数(即p1是旋转中心),并且p1和p2都是像素坐标.

point_pos()应该返回长度幅度的钟表将转向角度的像素坐标.

对于两者,正x轴= 0°= 3点,并且参数旋转应该在计算开始之前沿顺时针或逆时针方向移动该轴;然后说计算应该与这个调整后的参考方向一致.

我在每个方面取得的进展如下:失败的是:

当顺时针= False时,它返回顺时针条件的正确答案;当顺时针= True时,angle_between()返回带有舍入错误的正确答案,而point_pos()完全给出了错误的答案.

我还附上了一个我在Illustrator中嘲笑的视觉解释,作为对互联网的道歉,因为无法解决这个问题,以及我所寻求的不清楚.

编辑:根据下面的一个答案清理了一条不必要复杂的行.

from math import sin, cos, radians, pi, atan2, degrees

def angle_to(p1, p2, rotation=0, clockwise=False):

if abs(rotation) > 360:

rotation %= 360

p2 = list(p2)

p2[0] = p2[0] - p1[0]

p2[1] = p2[1] - p1[1]

angle = degrees(atan2(p2[1], p2[0]))

if clockwise:

angle -= rotation

return angle if angle > 0 else angle + 360

else:

angle = (360 - angle if angle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值