如何获取Python Turtle库中对象的当前角度?tiltangle使用疑问
Python Turtle 获取对象角度与tiltangle方法解析
你混淆了tiltangle()和heading()的作用,这两个方法返回的是完全不同的角度:
tiltangle():返回的是海龟自身图形的倾斜角度,仅影响海龟外观的旋转,和海龟实际移动的朝向无关。比如调用tilt(30)会让海龟图形倾斜30度,但海龟前进方向仍由heading()控制。你每次得到122.0,说明当前海龟图形的倾斜角度就是这个值,但这显然不是你需要的移动方向角度。heading():这才是获取海龟当前移动朝向的方法,默认0代表朝右,角度沿逆时针方向递增(90朝上,180朝左,270朝下)。
如果你想基于海龟当前移动方向进行旋转,代码应该改成:
def collide(self): initial_heading = self.heading() # 若要转到初始朝向+90的绝对角度,用setheading self.setheading(initial_heading + 90) # 若要相对当前朝向右转90度,直接调用self.right(90)即可,无需加初始角度 # self.right(90)
注意:right(angle)是让海龟相对当前朝向右转指定角度,setheading(angle)是直接设置海龟的绝对朝向角度,可根据需求选择对应方法。
内容的提问来源于stack exchange,提问作者Faruk
相关产品推荐
相关产品推荐

