pybox2d manual中,它指出以下内容:


  pybox2d使用弧度表示角度。身体旋转存储在
  弧度,并且可能会无限增长。考虑规范化您的角度
  如果角度的大小变得太大(使用
  b2Body.SetAngle)。


但是,当我尝试实现“标准化”角度时,会出现以下错误:

AttributeError: 'b2Body' object has no attribute 'SetAngle'


程式码片段:

def update_outputs(self):

    # This is necessary to prevent the angle
    # from getting too large or small
    self.body.SetAngle(self.body.angle % 2*pi)

最佳答案

自从编写这些文档以来,该库似乎已被python化。角度是身体的属性:

@angle.setter
def angle(self, angle):
    self._xf.angle=angle
    self._transform_updated()


您应该可以像下面这样简单地设置它:

def update_outputs(self):

    # This is necessary to prevent the angle
    # from getting too large or small
    self.body.angle %= 2*pi

关于python - 如何在pybox2d中将主体的角度保持在-pi和pi之间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41419503/

10-12 23:28