Quick search

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.

バージョン 1.6.0 で変更: Added Matrix.perspective(), Matrix.look_at() and Matrix.transpose().

class kivy.graphics.transformation.Matrix

ベースクラス: builtins.object

Optimized matrix class for OpenGL:

>>> 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.

バージョン 1.9.1 で追加.

identity()

Reset the matrix to the identity matrix (inplace).

inverse()

Return the inverse of the matrix as a new Matrix.

look_at()

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.

バージョン 1.6.0 で追加.

multiply()

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()

Computes the normal matrix, which is the inverse transpose of the top left 3x3 modelview matrix used to transform normals into eye/camera space.

バージョン 1.6.0 で追加.

perspective()

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

バージョン 1.6.0 で追加.

project()

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

バージョン 1.7.0 で追加.

rotate()

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()

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()

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]]
)

バージョン 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())

バージョン 1.9.0 で追加.

translate()

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()

Return the transposed matrix as a new Matrix.

バージョン 1.6.0 で追加.

view_clip()

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

バージョン 1.6.0 で変更: Enable support for perspective parameter.