diff pytouhou/utils/matrix.py @ 30:e3ba2fa966f6

Various optimizations
author Thibaut Girka <thib@sitedethib.com>
date Fri, 12 Aug 2011 23:47:34 +0200
parents f405b947624d
children 55973a3f1222
line wrap: on
line diff
--- a/pytouhou/utils/matrix.py
+++ b/pytouhou/utils/matrix.py
@@ -36,10 +36,8 @@ class Matrix(object):
         d1 = self.data
         cos_a = cos(angle)
         sin_a = sin(angle)
-        a = [cos_a * d1[1][i] - sin_a * d1[2][i] for i in range(4)]
-        b = [sin_a * d1[1][i] + cos_a * d1[2][i] for i in range(4)]
-        d1[1][:] = a
-        d1[2][:] = b
+        d1[1][:], d1[2][:] = ([cos_a * d1[1][i] - sin_a * d1[2][i] for i in range(4)],
+                              [sin_a * d1[1][i] + cos_a * d1[2][i] for i in range(4)])
 
 
     def rotate_y(self, angle):
@@ -47,20 +45,16 @@ class Matrix(object):
         d1 = self.data
         cos_a = cos(angle)
         sin_a = sin(angle)
-        a = [cos_a * d1[0][i] - sin_a * d1[2][i] for i in range(4)]
-        b = [sin_a * d1[0][i] + cos_a * d1[2][i] for i in range(4)]
-        d1[0][:] = a
-        d1[2][:] = b
+        d1[0][:], d1[2][:] = ([cos_a * d1[0][i] - sin_a * d1[2][i] for i in range(4)],
+                              [sin_a * d1[0][i] + cos_a * d1[2][i] for i in range(4)])
 
 
     def rotate_z(self, angle):
         d1 = self.data
         cos_a = cos(angle)
         sin_a = sin(angle)
-        a = [cos_a * d1[0][i] - sin_a * d1[1][i] for i in range(4)]
-        b = [sin_a * d1[0][i] + cos_a * d1[1][i] for i in range(4)]
-        d1[0][:] = a
-        d1[1][:] = b
+        d1[0][:], d1[1][:] = ([cos_a * d1[0][i] - sin_a * d1[1][i] for i in range(4)],
+                              [sin_a * d1[0][i] + cos_a * d1[1][i] for i in range(4)])
 
 
     @classmethod