def step(self, pos, step): angle = Geometry.angle(step / self.radius) middle = self.middle[0] if str(middle)[0] != '-': #逆时针 angle = 360 - angle x, y = Geometry.rotate(pos, self.center, angle) last = self.last_step[0] #上一个位置x的值,用来判断圆形的时候是否超出范围 self.last_step = x, y #每次移动不超过半圈 if middle * x < 0: return self.target elif middle == 0: if str(middle)[0] != '-': if last < 0 and x > 0: return self.target else: if last > 0 and x < 0: return self.target return x, y