コード例 #1
0
ファイル: Crawler.py プロジェクト: romick/tetry-robot
 def rotate_body(self, angle=0, axis_vector=(0, 0, 0)):
     from math import cos, sin
     angle = math.radians(angle)
     (l, m, n) = MathTools.normalize(*axis_vector)
     rotation_matrix = numpy.array([[l * l * (1 - cos(angle)) + cos(angle),
                                     m * l * (1 - cos(angle)) - n * sin(angle),
                                     n * l * (1 - cos(angle)) + m * sin(angle)],
                                    [l * m * (1 - cos(angle)) + n * sin(angle),
                                     m * m * (1 - cos(angle)) + cos(angle),
                                     n * m * (1 - cos(angle)) - l * sin(angle)],
                                    [l * n * (1 - cos(angle)) - m * sin(angle),
                                     m * n * (1 - cos(angle)) + l * sin(angle),
                                     n * n * (1 - cos(angle)) + cos(angle)]])
     bot_command = []
     for l in self.legs:
         bot_command.extend(l.rotate(rotation_matrix))
     self._send(bot_command)