Table Of Contents
Transformation¶
This module contains a Matrix class used for our Graphics calculations. We currently support:
- rotation, translation and scaling matrices
- multiplication matrix
- clip matrix (with or without perspective)
- transformation matrix for 3d touch
For more information on transformation matrices, please see the OpenGL Matrices Tutorial.
Changed in version 1.6.0: Added Matrix.perspective(), Matrix.look_at() and
Matrix.transpose().
- 
class kivy.graphics.transformation.Matrix¶
- Bases: - builtins.object- >>> from kivy.graphics.transformation import Matrix >>> m = Matrix() >>> print(m) [[ 1.000000 0.000000 0.000000 0.000000 ] [ 0.000000 1.000000 0.000000 0.000000 ] [ 0.000000 0.000000 1.000000 0.000000 ] [ 0.000000 0.000000 0.000000 1.000000 ]] - [ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [ 12 13 14 15] - 
get()¶
- Retrieve the value of the current as a flat list. - New in version 1.9.1. 
 - 
identity() → Matrix¶
- Reset the matrix to the identity matrix (inplace). 
 - 
inverse() → Matrix¶
- Return the inverse of the matrix as a new Matrix. 
 - 
look_at(double eyex, double eyey, double eyez, double centerx, double centery, double centerz, double upx, double upy, double upz)¶
- Returns a new lookat Matrix (similar to gluLookAt). - Parameters: - eyex: float
- Eyes X co-ordinate 
- eyey: float
- Eyes Y co-ordinate 
- eyez: float
- Eyes Z co-ordinate 
- centerx: float
- The X position of the reference point 
- centery: float
- The Y position of the reference point 
- centerz: float
- The Z position of the reference point 
- upx: float
- The X value up vector. 
- upy: float
- The Y value up vector. 
- upz: float
- The Z value up vector. 
 - New in version 1.6.0. 
 - 
multiply(mb, Matrix ma) → Matrix¶
- Multiply the given matrix with self (from the left) i.e. we premultiply the given matrix by the current matrix and return the result (not inplace): - m.multiply(n) -> n * m - Parameters: - ma: Matrix
- The matrix to multiply by 
 
 - 
normal_matrix() → Matrix¶
- Computes the normal matrix, which is the inverse transpose of the top left 3x3 modelview matrix used to transform normals into eye/camera space. - New in version 1.6.0. 
 - 
perspective(double fovy, double aspect, double zNear, double zFar) → Matrix¶
- Creates a perspective matrix (inplace). - Parameters: - fovy: float
- “Field Of View” angle 
- aspect: float
- Aspect ratio 
- zNear: float
- Near clipping plane 
- zFar: float
- Far clippin plane 
 - New in version 1.6.0. 
 - 
project(double objx, double objy, double objz, Matrix model, Matrix proj, double vx, double vy, double vw, double vh)¶
- Project a point from 3d space into a 2d viewport. - Parameters: - objx: float
- Points X co-ordinate 
- objy: float
- Points Y co-ordinate 
- objz: float
- Points Z co-ordinate 
- model: Matrix
- The model matrix 
- proj: Matrix
- The projection matrix 
- vx: float
- Viewports X co-ordinate 
- vy: float
- Viewports y co-ordinate 
- vw: float
- Viewports width 
- vh: float
- Viewports height 
 - New in version 1.7.0. 
 - 
rotate(double angle, double x, double y, double z) → Matrix¶
- Rotate the matrix through the angle around the axis (x, y, z) (inplace). - Parameters: - angle: float
- The angle through which to rotate the matrix 
- x: float
- X position of the point 
- y: float
- Y position of the point 
- z: float
- Z position of the point 
 
 - 
scale(double x, double y, double z) → Matrix¶
- Scale the current matrix by the specified factors over each dimension (inplace). - Parameters: - x: float
- The scale factor along the X axis 
- y: float
- The scale factor along the Y axis 
- z: float
- The scale factor along the Z axis 
 
 - 
set(flat=None, array=None)¶
- Insert custom values into the matrix in a flat list format or 4x4 array format like below: - m.set(array=[ [1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]] ) - New in version 1.9.0. 
 - 
tolist()¶
- Retrieve the value of the current matrix in numpy format. for example m.tolist() will return: - [[1.000000, 0.000000, 0.000000, 0.000000], [0.000000, 1.000000, 0.000000, 0.000000], [0.000000, 0.000000, 1.000000, 0.000000], [0.000000, 0.000000, 0.000000, 1.000000]] - you can use this format to plug the result straight into numpy in this way numpy.array(m.tolist()) - New in version 1.9.0. 
 - 
transform_point(double x, double y, double z, t=None) → tuple¶
- Transforms the point by the matrix and returns the transformed point as a - (x, y, z)tuple. If the point is a vector- v, the returned values is- v2 = matrix * v.- If - tis provided, it multiplies it with the last column of the matrix and returns the transformed- (x, y, z, t).
 - 
translate(double x, double y, double z) → Matrix¶
- Translate the matrix. - Parameters: - x: float
- The translation factor along the X axis 
- y: float
- The translation factor along the Y axis 
- z: float
- The translation factor along the Z axis 
 
 - 
transpose() → Matrix¶
- Return the transposed matrix as a new Matrix. - New in version 1.6.0. 
 - 
view_clip(double left, double right, double bottom, double top, double near, double far, int perspective) → Matrix¶
- Create a clip matrix (inplace). - Parameters: - left: float
- Co-ordinate 
- right: float
- Co-ordinate 
- bottom: float
- Co-ordinate 
- top: float
- Co-ordinate 
- near: float
- Co-ordinate 
- far: float
- Co-ordinate 
- perpective: int
- Co-ordinate 
 - Changed in version 1.6.0: Enable support for perspective parameter. 
 
- 
