Difference between revisions of "Matrix"

From GiderosMobile
Line 25: Line 25:
 
sprite:setMatrix(m)</source>
 
sprite:setMatrix(m)</source>
 
{|-
 
{|-
| style="width: 50%;"|
+
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[Matrix.new]] {{<translate>creates a new Matrix object</translate>}}<br/>
+
[[Matrix.new]] ''<translate>creates a new Matrix object</translate>''<br/>
[[Matrix:getAnchorPosition]] {{<translate>get anchor position from matrix transformation</translate>}}<br/>
+
[[Matrix:getAnchorPosition]] ''<translate>get anchor position from matrix transformation</translate>''<br/>
[[Matrix:getElements]] {{<translate>returns the elements of this matrix instance</translate>}}<br/>
+
[[Matrix:getElements]] ''<translate>returns the elements of this matrix instance</translate>''<br/>
[[Matrix:getM11]] {{<translate>returns the value of the m11 component</translate>}}<br/>
+
[[Matrix:getM11]] ''<translate>returns the value of the m11 component</translate>''<br/>
[[Matrix:getM12]] {{<translate>returns the value of the m12 component</translate>}}<br/>
+
[[Matrix:getM12]] ''<translate>returns the value of the m12 component</translate>''<br/>
[[Matrix:getM21]] {{<translate>returns the value of the m21 component</translate>}}<br/>
+
[[Matrix:getM21]] ''<translate>returns the value of the m21 component</translate>''<br/>
[[Matrix:getM22]] {{<translate>returns the value of the m22 component</translate>}}<br/>
+
[[Matrix:getM22]] ''<translate>returns the value of the m22 component</translate>''<br/>
[[Matrix:getMatrix]] {{<translate>get all 16 elements of 4x4 matrix</translate>}}<br/>
+
[[Matrix:getMatrix]] ''<translate>get all 16 elements of 4x4 matrix</translate>''<br/>
[[Matrix:getPosition]] {{<translate>get position from matrix transformation</translate>}}<br/>
+
[[Matrix:getPosition]] ''<translate>get position from matrix transformation</translate>''<br/>
[[Matrix:getRotationX]] {{<translate>get rotation for x axis</translate>}}<br/>
+
[[Matrix:getRotationX]] ''<translate>get rotation for x axis</translate>''<br/>
[[Matrix:getRotationY]] {{<translate>get rotation on y axis</translate>}}<br/>
+
[[Matrix:getRotationY]] ''<translate>get rotation on y axis</translate>''<br/>
[[Matrix:getRotationZ]] {{<translate>get rotation for z axis</translate>}}<br/>
+
[[Matrix:getRotationZ]] ''<translate>get rotation for z axis</translate>''<br/>
[[Matrix:getScale]] {{<translate>get scale from matrix transformation</translate>}}<br/>
+
[[Matrix:getScale]] ''<translate>get scale from matrix transformation</translate>''<br/>
[[Matrix:getScaleX]] {{<translate>get scale on x axis</translate>}}<br/>
+
[[Matrix:getScaleX]] ''<translate>get scale on x axis</translate>''<br/>
[[Matrix:getScaleY]] {{<translate>get scale on y axis</translate>}}<br/>
+
[[Matrix:getScaleY]] ''<translate>get scale on y axis</translate>''<br/>
[[Matrix:getScaleZ]] {{<translate>get scale on z axis</translate>}}<br/>
+
[[Matrix:getScaleZ]] ''<translate>get scale on z axis</translate>''<br/>
[[Matrix:getTx]] {{<translate>returns the value of the tx component</translate>}}<br/>
+
[[Matrix:getTx]] ''<translate>returns the value of the tx component</translate>''<br/>
[[Matrix:getTy]] {{<translate>returns the value of the ty component</translate>}}<br/>
+
[[Matrix:getTy]] ''<translate>returns the value of the ty component</translate>''<br/>
[[Matrix:getTz]] {{<translate>returns the value of the tz component</translate>}}<br/>
+
[[Matrix:getTz]] ''<translate>returns the value of the tz component</translate>''<br/>
[[Matrix:getX]] {{<translate>get x position</translate>}}<br/>
+
[[Matrix:getX]] ''<translate>get x position</translate>''<br/>
[[Matrix:getY]] {{<translate>get y position</translate>}}<br/>
+
[[Matrix:getY]] ''<translate>get y position</translate>''<br/>
[[Matrix:getZ]] {{<translate>get z position</translate>}}<br/>
+
[[Matrix:getZ]] ''<translate>get z position</translate>''<br/>
[[Matrix:invert]] {{<translate></translate>}}<br/>
+
[[Matrix:invert]] <br/>
[[Matrix:multiply]] {{<translate>Multiply current matrix with new one</translate>}}<br/>
+
[[Matrix:multiply]] ''<translate>Multiply current matrix with new one</translate>''<br/>
[[Matrix:orthographicProjection]] {{<translate></translate>}}<br/>
+
[[Matrix:orthographicProjection]] <br/>
[[Matrix:perspectiveProjection]] {{<translate></translate>}}<br/>
+
[[Matrix:perspectiveProjection]] <br/>
[[Matrix:perspectiveProjection]] {{<translate></translate>}}<br/>
+
[[Matrix:perspectiveProjection]] <br/>
[[Matrix:rotate]] {{<translate>combine existing rotation with provided</translate>}}<br/>
+
[[Matrix:rotate]] ''<translate>combine existing rotation with provided</translate>''<br/>
[[Matrix:scale]] {{<translate>combine existing scale with provided scale</translate>}}<br/>
+
[[Matrix:scale]] ''<translate>combine existing scale with provided scale</translate>''<br/>
[[Matrix:setAnchorPosition]] {{<translate>transform matrix for setting anchor position</translate>}}<br/>
+
[[Matrix:setAnchorPosition]] ''<translate>transform matrix for setting anchor position</translate>''<br/>
[[Matrix:setElements]] {{<translate>sets all 6 elements of this matrix instance</translate>}}<br/>
+
[[Matrix:setElements]] ''<translate>sets all 6 elements of this matrix instance</translate>''<br/>
[[Matrix:setM11]] {{<translate>sets the value of the m11 component</translate>}}<br/>
+
[[Matrix:setM11]] ''<translate>sets the value of the m11 component</translate>''<br/>
[[Matrix:setM12]] {{<translate>sets the value of the m22 component</translate>}}<br/>
+
[[Matrix:setM12]] ''<translate>sets the value of the m22 component</translate>''<br/>
[[Matrix:setM21]] {{<translate></translate>}}<br/>
+
[[Matrix:setM21]] <br/>
[[Matrix:setM22]] {{<translate></translate>}}<br/>
+
[[Matrix:setM22]] <br/>
[[Matrix:setMatrix]] {{<translate>set all 16 elements of 4x4 matrix</translate>}}<br/>
+
[[Matrix:setMatrix]] ''<translate>set all 16 elements of 4x4 matrix</translate>''<br/>
[[Matrix:setPosition]] {{<translate>transform matrix for setting position</translate>}}<br/>
+
[[Matrix:setPosition]] ''<translate>transform matrix for setting position</translate>''<br/>
[[Matrix:setRotationX]] {{<translate>set rotation on x axis</translate>}}<br/>
+
[[Matrix:setRotationX]] ''<translate>set rotation on x axis</translate>''<br/>
[[Matrix:setRotationY]] {{<translate>set rotation on y axis</translate>}}<br/>
+
[[Matrix:setRotationY]] ''<translate>set rotation on y axis</translate>''<br/>
[[Matrix:setRotationZ]] {{<translate>set rotation on z axis</translate>}}<br/>
+
[[Matrix:setRotationZ]] ''<translate>set rotation on z axis</translate>''<br/>
[[Matrix:setScale]] {{<translate>transform matrix for setting scale</translate>}}<br/>
+
[[Matrix:setScale]] ''<translate>transform matrix for setting scale</translate>''<br/>
[[Matrix:setScaleX]] {{<translate>set scale on x axis</translate>}}<br/>
+
[[Matrix:setScaleX]] ''<translate>set scale on x axis</translate>''<br/>
[[Matrix:setScaleY]] {{<translate>set scale on y axis</translate>}}<br/>
+
[[Matrix:setScaleY]] ''<translate>set scale on y axis</translate>''<br/>
[[Matrix:setScaleZ]] {{<translate>set scale on z axis</translate>}}<br/>
+
[[Matrix:setScaleZ]] ''<translate>set scale on z axis</translate>''<br/>
[[Matrix:setTx]] {{<translate>sets the value of the tx component</translate>}}<br/>
+
[[Matrix:setTx]] ''<translate>sets the value of the tx component</translate>''<br/>
[[Matrix:setTy]] {{<translate>sets the value of the ty component</translate>}}<br/>
+
[[Matrix:setTy]] ''<translate>sets the value of the ty component</translate>''<br/>
[[Matrix:setTz]] {{<translate>sets the value of the tz component</translate>}}<br/>
+
[[Matrix:setTz]] ''<translate>sets the value of the tz component</translate>''<br/>
[[Matrix:setX]] {{<translate>set x position</translate>}}<br/>
+
[[Matrix:setX]] ''<translate>set x position</translate>''<br/>
[[Matrix:setY]] {{<translate>set y position</translate>}}<br/>
+
[[Matrix:setY]] ''<translate>set y position</translate>''<br/>
[[Matrix:setZ]] {{<translate>set z position</translate>}}<br/>
+
[[Matrix:setZ]] ''<translate>set z position</translate>''<br/>
[[Matrix:transformPoint]] {{<translate></translate>}}<br/>
+
[[Matrix:transformPoint]] <br/>
[[Matrix:translate]] {{<translate>combine existing translation with provided translation</translate>}}<br/>
+
[[Matrix:translate]] ''<translate>combine existing translation with provided translation</translate>''<br/>
| style="width: 50%;"|
+
| style="width: 50%; vertical-align:top;"|
 
=== Events ===
 
=== Events ===
 
=== Constants ===
 
=== Constants ===
 
|}
 
|}

Revision as of 14:35, 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)

Methods

Matrix.new creates a new Matrix object
[[1]] get anchor position from matrix transformation
[[2]] returns the elements of this matrix instance
[[3]] returns the value of the m11 component
[[4]] returns the value of the m12 component
[[5]] returns the value of the m21 component
[[6]] returns the value of the m22 component
[[7]] get all 16 elements of 4x4 matrix
[[8]] get position from matrix transformation
[[9]] get rotation for x axis
[[10]] get rotation on y axis
[[11]] get rotation for z axis
[[12]] get scale from matrix transformation
[[13]] get scale on x axis
[[14]] get scale on y axis
[[15]] get scale on z axis
[[16]] returns the value of the tx component
[[17]] returns the value of the ty component
[[18]] returns the value of the tz component
[[19]] get x position
[[20]] get y position
[[21]] get z position
[[22]]
[[23]] Multiply current matrix with new one
[[24]]
[[25]]
[[26]]
[[27]] combine existing rotation with provided
[[28]] combine existing scale with provided scale
[[29]] transform matrix for setting anchor position
[[30]] sets all 6 elements of this matrix instance
[[31]] sets the value of the m11 component
[[32]] sets the value of the m22 component
[[33]]
[[34]]
[[35]] set all 16 elements of 4x4 matrix
[[36]] transform matrix for setting position
[[37]] set rotation on x axis
[[38]] set rotation on y axis
[[39]] set rotation on z axis
[[40]] transform matrix for setting scale
[[41]] set scale on x axis
[[42]] set scale on y axis
[[43]] set scale on z axis
[[44]] sets the value of the tx component
[[45]] sets the value of the ty component
[[46]] sets the value of the tz component
[[47]] set x position
[[48]] set y position
[[49]] set z position
[[50]]
[[51]] combine existing translation with provided translation

Events

Constants