2 from ..nvector
import NVector
15 """ Creates an Identity matrix """
20 m._mat = list(self.
_mat_mat)
27 return self.
_mat_mat[row*4+col]
31 self.
_mat_mat[row*4+col] = self.
scalarscalar(value)
39 self[0, 0] = self.
scalarscalar(v)
47 self[0, 1] = self.
scalarscalar(v)
55 self[1, 0] = self.
scalarscalar(v)
63 self[1, 1] = self.
scalarscalar(v)
71 self[3, 0] = self.
scalarscalar(v)
79 self[3, 1] = self.
scalarscalar(v)
105 m.c = math.tan(x_rad)
106 m.b = math.tan(y_rad)
119 return NVector(self[i, 0], self[i, 1], self[i, 2], self[i, 3])
122 return NVector(self[0, i], self[1, i], self[2, i], self[3, i])
133 vector3 =
NVector(vector.x, vector.y, 0, 1)
135 self.
columncolumn(0).dot(vector3),
136 self.
columncolumn(1).dot(vector3),
142 m.a = math.cos(radians)
143 m.b = -math.sin(radians)
144 m.c = math.sin(radians)
145 m.d = math.cos(radians)
153 m[row, col] = self.
rowrow(row).dot(other.column(col))
158 self.
_mat_mat = m._mat
162 self *= TransformMatrix.rotation(radians)
174 "translation":
NVector(tx, ty),
181 delta = a * d - b * c
184 dest_trans[
"angle"] = - _sign(b) * math.acos(a/r)
187 dest_trans[
"skew_axis"] = 0
190 dest_trans[
"angle"] = math.pi / 2 + _sign(d) * math.acos(c / r)
193 dest_trans[
"skew_axis"] = math.pi / 2
195 dest_trans[
"scale"] =
NVector(sx, sy)
197 skew = math.atan2((a * c + b * d), r * r)
198 dest_trans[
"skew_angle"] = skew
203 return "matrix(%s, %s, %s, %s, %s, %s)" % (