Difference between revisions of "Matrix"
From GiderosMobile
Line 27: | Line 27: | ||
| style="width: 50%;"| | | style="width: 50%;"| | ||
=== Methods === | === Methods === | ||
− | [[Matrix.new]] | + | [[Matrix.new]] {{<translate>creates a new Matrix object</translate>}}<br/> |
− | [[Matrix:getAnchorPosition]] | + | [[Matrix:getAnchorPosition]] {{<translate>get anchor position from matrix transformation</translate>}}<br/> |
− | [[Matrix:getElements]] | + | [[Matrix:getElements]] {{<translate>returns the elements of this matrix instance</translate>}}<br/> |
− | [[Matrix:getM11]] | + | [[Matrix:getM11]] {{<translate>returns the value of the m11 component</translate>}}<br/> |
− | [[Matrix:getM12]] | + | [[Matrix:getM12]] {{<translate>returns the value of the m12 component</translate>}}<br/> |
− | [[Matrix:getM21]] | + | [[Matrix:getM21]] {{<translate>returns the value of the m21 component</translate>}}<br/> |
− | [[Matrix:getM22]] | + | [[Matrix:getM22]] {{<translate>returns the value of the m22 component</translate>}}<br/> |
− | [[Matrix:getMatrix]] | + | [[Matrix:getMatrix]] {{<translate>get all 16 elements of 4x4 matrix</translate>}}<br/> |
− | [[Matrix:getPosition]] | + | [[Matrix:getPosition]] {{<translate>get position from matrix transformation</translate>}}<br/> |
− | [[Matrix:getRotationX]] | + | [[Matrix:getRotationX]] {{<translate>get rotation for x axis</translate>}}<br/> |
− | [[Matrix:getRotationY]] | + | [[Matrix:getRotationY]] {{<translate>get rotation on y axis</translate>}}<br/> |
− | [[Matrix:getRotationZ]] | + | [[Matrix:getRotationZ]] {{<translate>get rotation for z axis</translate>}}<br/> |
− | [[Matrix:getScale]] | + | [[Matrix:getScale]] {{<translate>get scale from matrix transformation</translate>}}<br/> |
− | [[Matrix:getScaleX]] | + | [[Matrix:getScaleX]] {{<translate>get scale on x axis</translate>}}<br/> |
− | [[Matrix:getScaleY]] | + | [[Matrix:getScaleY]] {{<translate>get scale on y axis</translate>}}<br/> |
− | [[Matrix:getScaleZ]] | + | [[Matrix:getScaleZ]] {{<translate>get scale on z axis</translate>}}<br/> |
− | [[Matrix:getTx]] | + | [[Matrix:getTx]] {{<translate>returns the value of the tx component</translate>}}<br/> |
− | [[Matrix:getTy]] | + | [[Matrix:getTy]] {{<translate>returns the value of the ty component</translate>}}<br/> |
− | [[Matrix:getTz]] | + | [[Matrix:getTz]] {{<translate>returns the value of the tz component</translate>}}<br/> |
− | [[Matrix:getX]] | + | [[Matrix:getX]] {{<translate>get x position</translate>}}<br/> |
− | [[Matrix:getY]] | + | [[Matrix:getY]] {{<translate>get y position</translate>}}<br/> |
− | [[Matrix:getZ]] | + | [[Matrix:getZ]] {{<translate>get z position</translate>}}<br/> |
− | [[Matrix:invert]] | + | [[Matrix:invert]] {{<translate></translate>}}<br/> |
− | [[Matrix:multiply]] | + | [[Matrix:multiply]] {{<translate>Multiply current matrix with new one</translate>}}<br/> |
− | [[Matrix:orthographicProjection]] | + | [[Matrix:orthographicProjection]] {{<translate></translate>}}<br/> |
− | [[Matrix:perspectiveProjection]] | + | [[Matrix:perspectiveProjection]] {{<translate></translate>}}<br/> |
− | [[Matrix:perspectiveProjection]] | + | [[Matrix:perspectiveProjection]] {{<translate></translate>}}<br/> |
− | [[Matrix:rotate]] | + | [[Matrix:rotate]] {{<translate>combine existing rotation with provided</translate>}}<br/> |
− | [[Matrix:scale]] | + | [[Matrix:scale]] {{<translate>combine existing scale with provided scale</translate>}}<br/> |
− | [[Matrix:setAnchorPosition]] | + | [[Matrix:setAnchorPosition]] {{<translate>transform matrix for setting anchor position</translate>}}<br/> |
− | [[Matrix:setElements]] | + | [[Matrix:setElements]] {{<translate>sets all 6 elements of this matrix instance</translate>}}<br/> |
− | [[Matrix:setM11]] | + | [[Matrix:setM11]] {{<translate>sets the value of the m11 component</translate>}}<br/> |
− | [[Matrix:setM12]] | + | [[Matrix:setM12]] {{<translate>sets the value of the m22 component</translate>}}<br/> |
− | [[Matrix:setM21]] | + | [[Matrix:setM21]] {{<translate></translate>}}<br/> |
− | [[Matrix:setM22]] | + | [[Matrix:setM22]] {{<translate></translate>}}<br/> |
− | [[Matrix:setMatrix]] | + | [[Matrix:setMatrix]] {{<translate>set all 16 elements of 4x4 matrix</translate>}}<br/> |
− | [[Matrix:setPosition]] | + | [[Matrix:setPosition]] {{<translate>transform matrix for setting position</translate>}}<br/> |
− | [[Matrix:setRotationX]] | + | [[Matrix:setRotationX]] {{<translate>set rotation on x axis</translate>}}<br/> |
− | [[Matrix:setRotationY]] | + | [[Matrix:setRotationY]] {{<translate>set rotation on y axis</translate>}}<br/> |
− | [[Matrix:setRotationZ]] | + | [[Matrix:setRotationZ]] {{<translate>set rotation on z axis</translate>}}<br/> |
− | [[Matrix:setScale]] | + | [[Matrix:setScale]] {{<translate>transform matrix for setting scale</translate>}}<br/> |
− | [[Matrix:setScaleX]] | + | [[Matrix:setScaleX]] {{<translate>set scale on x axis</translate>}}<br/> |
− | [[Matrix:setScaleY]] | + | [[Matrix:setScaleY]] {{<translate>set scale on y axis</translate>}}<br/> |
− | [[Matrix:setScaleZ]] | + | [[Matrix:setScaleZ]] {{<translate>set scale on z axis</translate>}}<br/> |
− | [[Matrix:setTx]] | + | [[Matrix:setTx]] {{<translate>sets the value of the tx component</translate>}}<br/> |
− | [[Matrix:setTy]] | + | [[Matrix:setTy]] {{<translate>sets the value of the ty component</translate>}}<br/> |
− | [[Matrix:setTz]] | + | [[Matrix:setTz]] {{<translate>sets the value of the tz component</translate>}}<br/> |
− | [[Matrix:setX]] | + | [[Matrix:setX]] {{<translate>set x position</translate>}}<br/> |
− | [[Matrix:setY]] | + | [[Matrix:setY]] {{<translate>set y position</translate>}}<br/> |
− | [[Matrix:setZ]] | + | [[Matrix:setZ]] {{<translate>set z position</translate>}}<br/> |
− | [[Matrix:transformPoint]] | + | [[Matrix:transformPoint]] {{<translate></translate>}}<br/> |
− | [[Matrix:translate]] | + | [[Matrix:translate]] {{<translate>combine existing translation with provided translation</translate>}}<br/> |
| style="width: 50%;"| | | style="width: 50%;"| | ||
=== Events === | === Events === | ||
=== Constants === | === Constants === | ||
|} | |} |
Revision as of 14:19, 23 August 2018
Supported platforms: android, ios, mac, pc
Available since: Gideros 2011.6
Description
The Matrix class specifies transformation from one coordinate space to another.
These transformations include translation, rotation, scaling and skewing.
A 2D transformation matrix is a 3 x 3 matrix in homogenous coordinate system:
![images/matrix_props.png]
You can get and set the values of all six of the properties in a
Matrix object: m11, m12, m21, m22, tx, and ty.
Since Gideros 2016.6, Matrix can also hold 3D (4x4) matrices.
Examples
Applying matrix to Sprite objects
local angle = math.rad(30)
-- create skew matrix
local m = Matrix.new(1, math.tan(angle), math.tan(angle), 1, 0, 0)
--aply to Sprite
local sprite = Sprite.new()
sprite:setMatrix(m)