Difference between revisions of "Matrix"

From GiderosMobile
(→‎Methods: I had to add back Special:MyLanguage/ because the text wasn't readable anymore. Maybe Matrix: is a special word in WikiMedia?)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages />
 
 
<!-- GIDEROSOBJ:Matrix -->
 
<!-- GIDEROSOBJ:Matrix -->
'''<translate>Supported platforms</translate>:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>
+
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
+
'''Available since:''' Gideros 2011.6<br/>
'''<translate>Inherits from</translate>:''' [[Special:MyLanguage/Object|Object]]<br/>
+
'''Inherits from:''' [[Object]]<br/>
=== <translate>Description</translate> ===
 
<translate><br />
 
The Matrix class specifies transformation from one coordinate space to another.<br />
 
These transformations include translation, rotation, scaling and skewing.<br />
 
<br />
 
A 2D transformation matrix is a 3 x 3 matrix in homogenous coordinate system:<br />
 
<br />
 
[[File:Matrix props.png]]<br />
 
<br />
 
You can get and set the values of all six of the properties in a<br />
 
Matrix object: ''m11'', ''m12'', ''m21'', ''m22'', ''tx'', and ''ty''.<br />
 
<br />
 
  
Since Gideros 2016.6, Matrix can also hold 3D (4x4) matrices.</translate>
+
=== Description ===
=== <translate>Examples</translate> ===
+
The Matrix class specifies transformation from one coordinate space to another.
'''Applying matrix to Sprite objects'''<br/>
+
 
<source lang="lua">local angle = math.rad(30)
+
These transformations include translation, rotation, scaling and skewing.
 +
 
 +
A 2D transformation matrix is a 3 x 3 matrix in homogeneous coordinate system:
 +
 
 +
[[File: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'''
 +
<syntaxhighlight lang="lua">
 +
local angle = math.rad(30)
 
-- create skew matrix
 
-- create skew matrix
 
local m = Matrix.new(1, math.tan(angle), math.tan(angle), 1, 0, 0)
 
local m = Matrix.new(1, math.tan(angle), math.tan(angle), 1, 0, 0)
--aply to Sprite
+
-- apply to Sprite
 
local sprite = Sprite.new()
 
local sprite = Sprite.new()
sprite:setMatrix(m)</source>
+
sprite:setMatrix(m)
 +
</syntaxhighlight>
 +
 
 
{|-
 
{|-
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Methods</translate> ===
+
=== Methods ===
[[Special:MyLanguage/Matrix.new|Matrix.new]] ''<translate>creates a new Matrix object</translate>''<br/><!-- GIDEROSMTD:Matrix.new(m11,m12,m21,m22,tx,ty) creates a new Matrix object -->
+
[[Matrix.new]] ''creates a new Matrix object''<br/><!--GIDEROSMTD:Matrix.new(m11,m12,m21,m22,tx,ty) creates a new Matrix object-->
[[Special:MyLanguage/Matrix:getAnchorPosition|Matrix:getAnchorPosition]] ''<translate>get anchor position from matrix transformation</translate>''<br/><!-- GIDEROSMTD:Matrix:getAnchorPosition() get anchor position from matrix transformation -->
+
[[Matrix.fromSRT]] ''builds a matrix from scale/rotation/translation components''<br/><!--GIDEROSMTD:Matrix.fromSRT(srt,reverse) builds a matrix from scale/rotation/translation components -->
[[Special:MyLanguage/Matrix:getElements|Matrix:getElements]] ''<translate>returns the elements of this matrix instance</translate>''<br/><!-- GIDEROSMTD:Matrix:getElements() returns the elements of this matrix instance -->
+
 
[[Special:MyLanguage/Matrix:getM11|Matrix:getM11]] ''<translate>returns the value of the m11 component</translate>''<br/><!-- GIDEROSMTD:Matrix:getM11() returns the value of the m11 component -->
+
[[Special:MyLanguage/Matrix:duplicate|Matrix:duplicate]] ''returns a copy of this matrix''<br/><!--GIDEROSMTD:Matrix:duplicate() returns a copy of this matrix -->
[[Special:MyLanguage/Matrix:getM12|Matrix:getM12]] ''<translate>returns the value of the m12 component</translate>''<br/><!-- GIDEROSMTD:Matrix:getM12() returns the value of the m12 component -->
+
[[Special:MyLanguage/Matrix:getAnchorPosition|Matrix:getAnchorPosition]] ''gets anchor position from matrix transformation''<br/><!--GIDEROSMTD:Matrix:getAnchorPosition() gets anchor position from matrix transformation-->
[[Special:MyLanguage/Matrix:getM21|Matrix:getM21]] ''<translate>returns the value of the m21 component</translate>''<br/><!-- GIDEROSMTD:Matrix:getM21() returns the value of the m21 component -->
+
[[Special:MyLanguage/Matrix:getElements|Matrix:getElements]] ''returns the elements of this matrix instance''<br/><!--GIDEROSMTD:Matrix:getElements() returns the elements of this matrix instance-->
[[Special:MyLanguage/Matrix:getM22|Matrix:getM22]] ''<translate>returns the value of the m22 component</translate>''<br/><!-- GIDEROSMTD:Matrix:getM22() returns the value of the m22 component -->
+
[[Special:MyLanguage/Matrix:getM11|Matrix:getM11]] ''returns the value of the m11 component''<br/><!--GIDEROSMTD:Matrix:getM11() returns the value of the m11 component-->
[[Special:MyLanguage/Matrix:getMatrix|Matrix:getMatrix]] ''<translate>get all 16 elements of 4x4 matrix</translate>''<br/><!-- GIDEROSMTD:Matrix:getMatrix() get all 16 elements of 4x4 matrix -->
+
[[Special:MyLanguage/Matrix:getM12|Matrix:getM12]] ''returns the value of the m12 component''<br/><!--GIDEROSMTD:Matrix:getM12() returns the value of the m12 component-->
[[Special:MyLanguage/Matrix:getPosition|Matrix:getPosition]] ''<translate>get position from matrix transformation</translate>''<br/><!-- GIDEROSMTD:Matrix:getPosition() get position from matrix transformation -->
+
[[Special:MyLanguage/Matrix:getM21|Matrix:getM21]] ''returns the value of the m21 component''<br/><!--GIDEROSMTD:Matrix:getM21() returns the value of the m21 component-->
[[Special:MyLanguage/Matrix:getRotationX|Matrix:getRotationX]] ''<translate>get rotation for x axis</translate>''<br/><!-- GIDEROSMTD:Matrix:getRotationX() get rotation for x axis -->
+
[[Special:MyLanguage/Matrix:getM22|Matrix:getM22]] ''returns the value of the m22 component''<br/><!--GIDEROSMTD:Matrix:getM22() returns the value of the m22 component-->
[[Special:MyLanguage/Matrix:getRotationY|Matrix:getRotationY]] ''<translate>get rotation on y axis</translate>''<br/><!-- GIDEROSMTD:Matrix:getRotationY() get rotation on y axis -->
+
[[Special:MyLanguage/Matrix:getMatrix|Matrix:getMatrix]] ''gets all 16 elements of 4x4 matrix''<br/><!--GIDEROSMTD:Matrix:getMatrix() gets all 16 elements of 4x4 matrix-->
[[Special:MyLanguage/Matrix:getRotationZ|Matrix:getRotationZ]] ''<translate>get rotation for z axis</translate>''<br/><!-- GIDEROSMTD:Matrix:getRotationZ() get rotation for z axis -->
+
[[Special:MyLanguage/Matrix:getPosition|Matrix:getPosition]] ''gets position from matrix transformation''<br/><!--GIDEROSMTD:Matrix:getPosition() gets position from matrix transformation-->
[[Special:MyLanguage/Matrix:getScale|Matrix:getScale]] ''<translate>get scale from matrix transformation</translate>''<br/><!-- GIDEROSMTD:Matrix:getScale() get scale from matrix transformation -->
+
[[Special:MyLanguage/Matrix:getRotationX|Matrix:getRotationX]] ''gets rotation on x axis''<br/><!--GIDEROSMTD:Matrix:getRotationX() gets rotation on x axis-->
[[Special:MyLanguage/Matrix:getScaleX|Matrix:getScaleX]] ''<translate>get scale on x axis</translate>''<br/><!-- GIDEROSMTD:Matrix:getScaleX() get scale on x axis -->
+
[[Special:MyLanguage/Matrix:getRotationY|Matrix:getRotationY]] ''gets rotation on y axis''<br/><!--GIDEROSMTD:Matrix:getRotationY() get rotation on y axis-->
[[Special:MyLanguage/Matrix:getScaleY|Matrix:getScaleY]] ''<translate>get scale on y axis</translate>''<br/><!-- GIDEROSMTD:Matrix:getScaleY() get scale on y axis -->
+
[[Special:MyLanguage/Matrix:getRotationZ|Matrix:getRotationZ]] ''get rotation on z axis''<br/><!--GIDEROSMTD:Matrix:getRotationZ() get rotation on z axis-->
[[Special:MyLanguage/Matrix:getScaleZ|Matrix:getScaleZ]] ''<translate>get scale on z axis</translate>''<br/><!-- GIDEROSMTD:Matrix:getScaleZ() get scale on z axis -->
+
[[Special:MyLanguage/Matrix:getScale|Matrix:getScale]] ''gets scale from matrix transformation''<br/><!--GIDEROSMTD:Matrix:getScale() gets scale from matrix transformation-->
[[Special:MyLanguage/Matrix:getTx|Matrix:getTx]] ''<translate>returns the value of the tx component</translate>''<br/><!-- GIDEROSMTD:Matrix:getTx() returns the value of the tx component -->
+
[[Special:MyLanguage/Matrix:getScaleX|Matrix:getScaleX]] ''gets scale on x axis''<br/><!--GIDEROSMTD:Matrix:getScaleX() gets scale on x axis-->
[[Special:MyLanguage/Matrix:getTy|Matrix:getTy]] ''<translate>returns the value of the ty component</translate>''<br/><!-- GIDEROSMTD:Matrix:getTy() returns the value of the ty component -->
+
[[Special:MyLanguage/Matrix:getScaleY|Matrix:getScaleY]] ''gets scale on y axis''<br/><!--GIDEROSMTD:Matrix:getScaleY() gets scale on y axis-->
[[Special:MyLanguage/Matrix:getTz|Matrix:getTz]] ''<translate>returns the value of the tz component</translate>''<br/><!-- GIDEROSMTD:Matrix:getTz() returns the value of the tz component -->
+
[[Special:MyLanguage/Matrix:getScaleZ|Matrix:getScaleZ]] ''gets scale on z axis''<br/><!--GIDEROSMTD:Matrix:getScaleZ() gets scale on z axis-->
[[Special:MyLanguage/Matrix:getX|Matrix:getX]] ''<translate>get x position</translate>''<br/><!-- GIDEROSMTD:Matrix:getX() get x position -->
+
[[Special:MyLanguage/Matrix:getTx|Matrix:getTx]] ''returns the value of the tx component''<br/><!--GIDEROSMTD:Matrix:getTx() returns the value of the tx component-->
[[Special:MyLanguage/Matrix:getY|Matrix:getY]] ''<translate>get y position</translate>''<br/><!-- GIDEROSMTD:Matrix:getY() get y position -->
+
[[Special:MyLanguage/Matrix:getTy|Matrix:getTy]] ''returns the value of the ty component''<br/><!--GIDEROSMTD:Matrix:getTy() returns the value of the ty component-->
[[Special:MyLanguage/Matrix:getZ|Matrix:getZ]] ''<translate>get z position</translate>''<br/><!-- GIDEROSMTD:Matrix:getZ() get z position -->
+
[[Special:MyLanguage/Matrix:getTz|Matrix:getTz]] ''returns the value of the tz component''<br/><!--GIDEROSMTD:Matrix:getTz() returns the value of the tz component-->
[[Special:MyLanguage/Matrix:invert|Matrix:invert]] <br/><!-- GIDEROSMTD:Matrix:invert() -->
+
[[Special:MyLanguage/Matrix:getX|Matrix:getX]] ''gets x position''<br/><!--GIDEROSMTD:Matrix:getX() gets x position-->
[[Special:MyLanguage/Matrix:multiply|Matrix:multiply]] ''<translate>Multiply current matrix with new one</translate>''<br/><!-- GIDEROSMTD:Matrix:multiply(matrix) Multiply current matrix with new one -->
+
[[Special:MyLanguage/Matrix:getY|Matrix:getY]] ''gets y position''<br/><!--GIDEROSMTD:Matrix:getY() gets y position-->
[[Special:MyLanguage/Matrix:orthographicProjection|Matrix:orthographicProjection]] <br/><!-- GIDEROSMTD:Matrix:orthographicProjection(left,right,bottom,top,near,far) -->
+
[[Special:MyLanguage/Matrix:getZ|Matrix:getZ]] ''gets z position''<br/><!--GIDEROSMTD:Matrix:getZ() gets z position-->
[[Special:MyLanguage/Matrix:perspectiveProjection|Matrix:perspectiveProjection]] <br/><!-- GIDEROSMTD:Matrix:perspectiveProjection(left,right,bottom,top,near,far)  -->
+
[[Special:MyLanguage/Matrix:invert|Matrix:invert]] ''inverts the matrix''<br/><!--GIDEROSMTD:Matrix:invert() inverts the matrix-->
[[Special:MyLanguage/Matrix:perspectiveProjection|Matrix:perspectiveProjection]] <br/><!-- GIDEROSMTD:Matrix:perspectiveProjection(fov,aspect,near,far) -->
+
[[Special:MyLanguage/Matrix:multiply|Matrix:multiply]] ''multiplies current matrix with new one''<br/><!--GIDEROSMTD:Matrix:multiply(matrix) multiplies current matrix with new one-->
[[Special:MyLanguage/Matrix:rotate|Matrix:rotate]] ''<translate>combine existing rotation with provided</translate>''<br/><!-- GIDEROSMTD:Matrix:rotate(angle,x vector,y vector,z vector) combine existing rotation with provided -->
+
[[Special:MyLanguage/Matrix:orthographicProjection|Matrix:orthographicProjection]] ''replaces this matrix by an orthographic projection''<br/><!--GIDEROSMTD:Matrix:orthographicProjection(left,right,bottom,top,near,far) replaces this matrix by an orthographic projection-->
[[Special:MyLanguage/Matrix:scale|Matrix:scale]] ''<translate>combine existing scale with provided scale</translate>''<br/><!-- GIDEROSMTD:Matrix:scale(x scale,y scale,z scale) combine existing scale with provided scale -->
+
[[Special:MyLanguage/Matrix:perspectiveProjection|Matrix:perspectiveProjection]] ''replaces this matrix by a perspective projection''<br/><!--GIDEROSMTD:Matrix:perspectiveProjection(left,right,bottom,top,near,far) replaces this matrix by a perspective projection-->
[[Special:MyLanguage/Matrix:setAnchorPosition|Matrix:setAnchorPosition]] ''<translate>transform matrix for setting anchor position</translate>''<br/><!-- GIDEROSMTD:Matrix:setAnchorPosition(x,y,z) transform matrix for setting anchor position -->
+
[[Special:MyLanguage/Matrix:perspectiveProjection|Matrix:perspectiveProjection]] ''replaces this matrix by a perspective projection''<br/><!--GIDEROSMTD:Matrix:perspectiveProjection(fov,aspect,near,far) replaces this matrix by a perspective projection-->
[[Special:MyLanguage/Matrix:setElements|Matrix:setElements]] ''<translate>sets all 6 elements of this matrix instance</translate>''<br/><!-- GIDEROSMTD:Matrix:setElements(m11,m12,m21,m22,tx,ty) sets all 6 elements of this matrix instance -->
+
[[Special:MyLanguage/Matrix:rotate|Matrix:rotate]] ''combines existing rotation with provided rotation''<br/><!--GIDEROSMTD:Matrix:rotate(angle,x vector,y vector,z vector) combines existing rotation with provided rotation-->
[[Special:MyLanguage/Matrix:setM11|Matrix:setM11]] ''<translate>sets the value of the m11 component</translate>''<br/><!-- GIDEROSMTD:Matrix:setM11(m11) sets the value of the m11 component -->
+
[[Special:MyLanguage/Matrix:scale|Matrix:scale]] ''combines existing scale with provided scale''<br/><!--GIDEROSMTD:Matrix:scale(x scale,y scale,z scale) combines existing scale with provided scale-->
[[Special:MyLanguage/Matrix:setM12|Matrix:setM12]] ''<translate>sets the value of the m22 component</translate>''<br/><!-- GIDEROSMTD:Matrix:setM12(m12) sets the value of the m22 component -->
+
[[Special:MyLanguage/Matrix:setAnchorPosition|Matrix:setAnchorPosition]] ''transform matrix for setting anchor position''<br/><!--GIDEROSMTD:Matrix:setAnchorPosition(x,y,z) transform matrix for setting anchor position-->
[[Special:MyLanguage/Matrix:setM21|Matrix:setM21]] <br/><!-- GIDEROSMTD:Matrix:setM21(m21) -->
+
[[Special:MyLanguage/Matrix:setElements|Matrix:setElements]] ''sets all 6 elements of this matrix instance''<br/><!--GIDEROSMTD:Matrix:setElements(m11,m12,m21,m22,tx,ty) sets all 6 elements of this matrix instance-->
[[Special:MyLanguage/Matrix:setM22|Matrix:setM22]] <br/><!-- GIDEROSMTD:Matrix:setM22(m22) -->
+
[[Special:MyLanguage/Matrix:setM11|Matrix:setM11]] ''sets the value of the m11 component''<br/><!--GIDEROSMTD:Matrix:setM11(m11) sets the value of the m11 component-->
[[Special:MyLanguage/Matrix:setMatrix|Matrix:setMatrix]] ''<translate>set all 16 elements of 4x4 matrix</translate>''<br/><!-- GIDEROSMTD:Matrix:setMatrix(m11,m12,m13,m14,m21,m22,m23,m24,m31,m32,m33,m34,m41,m42,m43,m44) set all 16 elements of 4x4 matrix -->
+
[[Special:MyLanguage/Matrix:setM12|Matrix:setM12]] ''sets the value of the m12 component''<br/><!--GIDEROSMTD:Matrix:setM12(m12) sets the value of the m12 component-->
[[Special:MyLanguage/Matrix:setPosition|Matrix:setPosition]] ''<translate>transform matrix for setting position</translate>''<br/><!-- GIDEROSMTD:Matrix:setPosition(x,y,z) transform matrix for setting position -->
+
[[Special:MyLanguage/Matrix:setM21|Matrix:setM21]] ''sets the value of the m21 component''<br/><!--GIDEROSMTD:Matrix:setM21(m21) sets the value of the m21 component-->
[[Special:MyLanguage/Matrix:setRotationX|Matrix:setRotationX]] ''<translate>set rotation on x axis</translate>''<br/><!-- GIDEROSMTD:Matrix:setRotationX(x rotation) set rotation on x axis -->
+
[[Special:MyLanguage/Matrix:setM22|Matrix:setM22]] ''sets the value of the m22 component''<br/><!--GIDEROSMTD:Matrix:setM22(m22) sets the value of the m22 component-->
[[Special:MyLanguage/Matrix:setRotationY|Matrix:setRotationY]] ''<translate>set rotation on y axis</translate>''<br/><!-- GIDEROSMTD:Matrix:setRotationY(y rotation) set rotation on y axis -->
+
[[Special:MyLanguage/Matrix:setMatrix|Matrix:setMatrix]] ''set all 16 elements of 4x4 matrix''<br/><!--GIDEROSMTD:Matrix:setMatrix(m11,m12,m13,m14,m21,m22,m23,m24,m31,m32,m33,m34,m41,m42,m43,m44) set all 16 elements of 4x4 matrix-->
[[Special:MyLanguage/Matrix:setRotationZ|Matrix:setRotationZ]] ''<translate>set rotation on z axis</translate>''<br/><!-- GIDEROSMTD:Matrix:setRotationZ(z rotation) set rotation on z axis -->
+
[[Special:MyLanguage/Matrix:setPosition|Matrix:setPosition]] ''transform matrix for setting position''<br/><!--GIDEROSMTD:Matrix:setPosition(x,y,z) transform matrix for setting position-->
[[Special:MyLanguage/Matrix:setScale|Matrix:setScale]] ''<translate>transform matrix for setting scale</translate>''<br/><!-- GIDEROSMTD:Matrix:setScale(x,y,z) transform matrix for setting scale -->
+
[[Special:MyLanguage/Matrix:setRotationX|Matrix:setRotationX]] ''sets rotation on x axis''<br/><!--GIDEROSMTD:Matrix:setRotationX(x rotation) sets rotation on x axis-->
[[Special:MyLanguage/Matrix:setScaleX|Matrix:setScaleX]] ''<translate>set scale on x axis</translate>''<br/><!-- GIDEROSMTD:Matrix:setScaleX(x scale) set scale on x axis -->
+
[[Special:MyLanguage/Matrix:setRotationY|Matrix:setRotationY]] ''sets rotation on y axis''<br/><!--GIDEROSMTD:Matrix:setRotationY(y rotation) sets rotation on y axis-->
[[Special:MyLanguage/Matrix:setScaleY|Matrix:setScaleY]] ''<translate>set scale on y axis</translate>''<br/><!-- GIDEROSMTD:Matrix:setScaleY(y scale) set scale on y axis -->
+
[[Special:MyLanguage/Matrix:setRotationZ|Matrix:setRotationZ]] ''sets rotation on z axis''<br/><!--GIDEROSMTD:Matrix:setRotationZ(z rotation) sets rotation on z axis-->
[[Special:MyLanguage/Matrix:setScaleZ|Matrix:setScaleZ]] ''<translate>set scale on z axis</translate>''<br/><!-- GIDEROSMTD:Matrix:setScaleZ(z scale) set scale on z axis -->
+
[[Special:MyLanguage/Matrix:setScale|Matrix:setScale]] ''transform matrix for setting scale''<br/><!--GIDEROSMTD:Matrix:setScale(x,y,z) transform matrix for setting scale-->
[[Special:MyLanguage/Matrix:setTx|Matrix:setTx]] ''<translate>sets the value of the tx component</translate>''<br/><!-- GIDEROSMTD:Matrix:setTx(tx) sets the value of the tx component -->
+
[[Special:MyLanguage/Matrix:setScaleX|Matrix:setScaleX]] ''sets scale on x axis''<br/><!--GIDEROSMTD:Matrix:setScaleX(x scale) sets scale on x axis-->
[[Special:MyLanguage/Matrix:setTy|Matrix:setTy]] ''<translate>sets the value of the ty component</translate>''<br/><!-- GIDEROSMTD:Matrix:setTy(ty) sets the value of the ty component -->
+
[[Special:MyLanguage/Matrix:setScaleY|Matrix:setScaleY]] ''sets scale on y axis''<br/><!--GIDEROSMTD:Matrix:setScaleY(y scale) sets scale on y axis-->
[[Special:MyLanguage/Matrix:setTz|Matrix:setTz]] ''<translate>sets the value of the tz component</translate>''<br/><!-- GIDEROSMTD:Matrix:setTz(tz) sets the value of the tz component -->
+
[[Special:MyLanguage/Matrix:setScaleZ|Matrix:setScaleZ]] ''sets scale on z axis''<br/><!--GIDEROSMTD:Matrix:setScaleZ(z scale) sets scale on z axis-->
[[Special:MyLanguage/Matrix:setX|Matrix:setX]] ''<translate>set x position</translate>''<br/><!-- GIDEROSMTD:Matrix:setX(x) set x position -->
+
[[Special:MyLanguage/Matrix:setTx|Matrix:setTx]] ''sets the value of the tx component''<br/><!--GIDEROSMTD:Matrix:setTx(tx) sets the value of the tx component-->
[[Special:MyLanguage/Matrix:setY|Matrix:setY]] ''<translate>set y position</translate>''<br/><!-- GIDEROSMTD:Matrix:setY(y) set y position -->
+
[[Special:MyLanguage/Matrix:setTy|Matrix:setTy]] ''sets the value of the ty component''<br/><!--GIDEROSMTD:Matrix:setTy(ty) sets the value of the ty component-->
[[Special:MyLanguage/Matrix:setZ|Matrix:setZ]] ''<translate>set z position</translate>''<br/><!-- GIDEROSMTD:Matrix:setZ(z) set z position -->
+
[[Special:MyLanguage/Matrix:setTz|Matrix:setTz]] ''sets the value of the tz component''<br/><!--GIDEROSMTD:Matrix:setTz(tz) sets the value of the tz component-->
[[Special:MyLanguage/Matrix:transformPoint|Matrix:transformPoint]] <br/><!-- GIDEROSMTD:Matrix:transformPoint() -->
+
[[Special:MyLanguage/Matrix:setX|Matrix:setX]] ''sets x position''<br/><!--GIDEROSMTD:Matrix:setX(x) sets x position-->
[[Special:MyLanguage/Matrix:translate|Matrix:translate]] ''<translate>combine existing translation with provided translation</translate>''<br/><!-- GIDEROSMTD:Matrix:translate(x,y,z) combine existing translation with provided translation -->
+
[[Special:MyLanguage/Matrix:setY|Matrix:setY]] ''sets y position''<br/><!--GIDEROSMTD:Matrix:setY(y) sets y position-->
 +
[[Special:MyLanguage/Matrix:setZ|Matrix:setZ]] ''sets z position''<br/><!--GIDEROSMTD:Matrix:setZ(z) sets z position-->
 +
[[Special:MyLanguage/Matrix:transformPoint|Matrix:transformPoint]] ''transforms the matrix''<br/><!--GIDEROSMTD:Matrix:transformPoint() transforms the matrix-->
 +
[[Special:MyLanguage/Matrix:translate|Matrix:translate]] ''combines existing translation with provided translation''<br/><!--GIDEROSMTD:Matrix:translate(x,y,z) combines existing translation with provided translation-->
 +
 
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Events</translate> ===
+
 
=== <translate>Constants</translate> ===
+
=== Events ===
 +
=== Constants ===
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 23:11, 21 September 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2011.6
Inherits from: Object

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 homogeneous coordinate system:

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)
-- apply to Sprite
local sprite = Sprite.new()
sprite:setMatrix(m)

Methods

Matrix.new creates a new Matrix object
Matrix.fromSRT builds a matrix from scale/rotation/translation components

Matrix:duplicate returns a copy of this matrix
Matrix:getAnchorPosition gets anchor position from matrix transformation
Matrix:getElements returns the elements of this matrix instance
Matrix:getM11 returns the value of the m11 component
Matrix:getM12 returns the value of the m12 component
Matrix:getM21 returns the value of the m21 component
Matrix:getM22 returns the value of the m22 component
Matrix:getMatrix gets all 16 elements of 4x4 matrix
Matrix:getPosition gets position from matrix transformation
Matrix:getRotationX gets rotation on x axis
Matrix:getRotationY gets rotation on y axis
Matrix:getRotationZ get rotation on z axis
Matrix:getScale gets scale from matrix transformation
Matrix:getScaleX gets scale on x axis
Matrix:getScaleY gets scale on y axis
Matrix:getScaleZ gets scale on z axis
Matrix:getTx returns the value of the tx component
Matrix:getTy returns the value of the ty component
Matrix:getTz returns the value of the tz component
Matrix:getX gets x position
Matrix:getY gets y position
Matrix:getZ gets z position
Matrix:invert inverts the matrix
Matrix:multiply multiplies current matrix with new one
Matrix:orthographicProjection replaces this matrix by an orthographic projection
Matrix:perspectiveProjection replaces this matrix by a perspective projection
Matrix:perspectiveProjection replaces this matrix by a perspective projection
Matrix:rotate combines existing rotation with provided rotation
Matrix:scale combines existing scale with provided scale
Matrix:setAnchorPosition transform matrix for setting anchor position
Matrix:setElements sets all 6 elements of this matrix instance
Matrix:setM11 sets the value of the m11 component
Matrix:setM12 sets the value of the m12 component
Matrix:setM21 sets the value of the m21 component
Matrix:setM22 sets the value of the m22 component
Matrix:setMatrix set all 16 elements of 4x4 matrix
Matrix:setPosition transform matrix for setting position
Matrix:setRotationX sets rotation on x axis
Matrix:setRotationY sets rotation on y axis
Matrix:setRotationZ sets rotation on z axis
Matrix:setScale transform matrix for setting scale
Matrix:setScaleX sets scale on x axis
Matrix:setScaleY sets scale on y axis
Matrix:setScaleZ sets scale on z axis
Matrix:setTx sets the value of the tx component
Matrix:setTy sets the value of the ty component
Matrix:setTz sets the value of the tz component
Matrix:setX sets x position
Matrix:setY sets y position
Matrix:setZ sets z position
Matrix:transformPoint transforms the matrix
Matrix:translate combines existing translation with provided translation

Events

Constants