Difference between revisions of "Matrix"
(remove language stuff) |
|||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
<!-- GIDEROSOBJ:Matrix --> | <!-- GIDEROSOBJ:Matrix --> | ||
− | ''' | + | '''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/> |
− | ''' | + | '''Available since:''' Gideros 2011.6<br/> |
− | ''' | + | '''Inherits from:''' [[Object]]<br/> |
− | === | + | === Description === |
The Matrix class specifies transformation from one coordinate space to another. | The Matrix class specifies transformation from one coordinate space to another. | ||
Line 19: | Line 18: | ||
Since Gideros 2016.6, Matrix can also hold 3D (4x4) matrices. | Since Gideros 2016.6, Matrix can also hold 3D (4x4) matrices. | ||
− | === | + | === Examples === |
'''Applying matrix to Sprite objects''' | '''Applying matrix to Sprite objects''' | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 32: | Line 31: | ||
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Methods === |
− | [[ | + | [[Matrix.new]] ''creates a new Matrix object''<br/><!-- GIDEROSMTD:Matrix.new(m11,m12,m21,m22,tx,ty) creates a new Matrix object --> |
− | [[ | + | [[Matrix:getAnchorPosition]] ''get anchor position from matrix transformation''<br/><!-- GIDEROSMTD:Matrix:getAnchorPosition() get anchor position from matrix transformation --> |
− | [[ | + | [[Matrix:getElements]] ''returns the elements of this matrix instance''<br/><!-- GIDEROSMTD:Matrix:getElements() returns the elements of this matrix instance --> |
− | [[ | + | [[Matrix:getM11]] ''returns the value of the m11 component''<br/><!-- GIDEROSMTD:Matrix:getM11() returns the value of the m11 component --> |
− | [[ | + | [[Matrix:getM12]] ''returns the value of the m12 component''<br/><!-- GIDEROSMTD:Matrix:getM12() returns the value of the m12 component --> |
− | [[ | + | [[Matrix:getM21]] ''returns the value of the m21 component''<br/><!-- GIDEROSMTD:Matrix:getM21() returns the value of the m21 component --> |
− | [[ | + | [[Matrix:getM22]] ''returns the value of the m22 component''<br/><!-- GIDEROSMTD:Matrix:getM22() returns the value of the m22 component --> |
− | [[ | + | [[Matrix:getMatrix]] ''get all 16 elements of 4x4 matrix''<br/><!-- GIDEROSMTD:Matrix:getMatrix() get all 16 elements of 4x4 matrix --> |
− | [[ | + | [[Matrix:getPosition]] ''get position from matrix transformation''<br/><!-- GIDEROSMTD:Matrix:getPosition() get position from matrix transformation --> |
− | [[ | + | [[Matrix:getRotationX]] ''get rotation for x axis''<br/><!-- GIDEROSMTD:Matrix:getRotationX() get rotation for x axis --> |
− | [[ | + | [[Matrix:getRotationY]] ''get rotation on y axis''<br/><!-- GIDEROSMTD:Matrix:getRotationY() get rotation on y axis --> |
− | [[ | + | [[Matrix:getRotationZ]] ''get rotation for z axis''<br/><!-- GIDEROSMTD:Matrix:getRotationZ() get rotation for z axis --> |
− | [[ | + | [[Matrix:getScale]] ''get scale from matrix transformation''<br/><!-- GIDEROSMTD:Matrix:getScale() get scale from matrix transformation --> |
− | [[ | + | [[Matrix:getScaleX]] ''get scale on x axis''<br/><!-- GIDEROSMTD:Matrix:getScaleX() get scale on x axis --> |
− | [[ | + | [[Matrix:getScaleY]] ''get scale on y axis''<br/><!-- GIDEROSMTD:Matrix:getScaleY() get scale on y axis --> |
− | [[ | + | [[Matrix:getScaleZ]] ''get scale on z axis''<br/><!-- GIDEROSMTD:Matrix:getScaleZ() get scale on z axis --> |
− | [[ | + | [[Matrix:getTx]] ''returns the value of the tx component''<br/><!-- GIDEROSMTD:Matrix:getTx() returns the value of the tx component --> |
− | [[ | + | [[Matrix:getTy]] ''returns the value of the ty component''<br/><!-- GIDEROSMTD:Matrix:getTy() returns the value of the ty component --> |
− | [[ | + | [[Matrix:getTz]] ''returns the value of the tz component''<br/><!-- GIDEROSMTD:Matrix:getTz() returns the value of the tz component --> |
− | [[ | + | [[Matrix:getX]] ''get x position''<br/><!-- GIDEROSMTD:Matrix:getX() get x position --> |
− | [[ | + | [[Matrix:getY]] ''get y position''<br/><!-- GIDEROSMTD:Matrix:getY() get y position --> |
− | [[ | + | [[Matrix:getZ]] ''get z position''<br/><!-- GIDEROSMTD:Matrix:getZ() get z position --> |
− | [[ | + | [[Matrix:invert]] <br/><!-- GIDEROSMTD:Matrix:invert() --> |
− | [[ | + | [[Matrix:multiply]] ''Multiply current matrix with new one''<br/><!-- GIDEROSMTD:Matrix:multiply(matrix) Multiply current matrix with new one --> |
− | [[ | + | [[Matrix:orthographicProjection]] <br/><!-- GIDEROSMTD:Matrix:orthographicProjection(left,right,bottom,top,near,far) --> |
− | [[ | + | [[Matrix:perspectiveProjection]] <br/><!-- GIDEROSMTD:Matrix:perspectiveProjection(left,right,bottom,top,near,far) --> |
− | [[ | + | [[Matrix:perspectiveProjection]] <br/><!-- GIDEROSMTD:Matrix:perspectiveProjection(fov,aspect,near,far) --> |
− | [[ | + | [[Matrix:rotate]] ''combine existing rotation with provided''<br/><!-- GIDEROSMTD:Matrix:rotate(angle,x vector,y vector,z vector) combine existing rotation with provided --> |
− | [[ | + | [[Matrix:scale]] ''combine existing scale with provided scale''<br/><!-- GIDEROSMTD:Matrix:scale(x scale,y scale,z scale) combine existing scale with provided scale --> |
− | [[ | + | [[Matrix:setAnchorPosition]] ''transform matrix for setting anchor position''<br/><!-- GIDEROSMTD:Matrix:setAnchorPosition(x,y,z) transform matrix for setting anchor position --> |
− | [[ | + | [[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 --> |
− | [[ | + | [[Matrix:setM11]] ''sets the value of the m11 component''<br/><!-- GIDEROSMTD:Matrix:setM11(m11) sets the value of the m11 component --> |
− | [[ | + | [[Matrix:setM12]] ''sets the value of the m22 component''<br/><!-- GIDEROSMTD:Matrix:setM12(m12) sets the value of the m22 component --> |
− | [[ | + | [[Matrix:setM21]] <br/><!-- GIDEROSMTD:Matrix:setM21(m21) --> |
− | [[ | + | [[Matrix:setM22]] <br/><!-- GIDEROSMTD:Matrix:setM22(m22) --> |
− | [[ | + | [[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 --> |
− | [[ | + | [[Matrix:setPosition]] ''transform matrix for setting position''<br/><!-- GIDEROSMTD:Matrix:setPosition(x,y,z) transform matrix for setting position --> |
− | [[ | + | [[Matrix:setRotationX]] ''set rotation on x axis''<br/><!-- GIDEROSMTD:Matrix:setRotationX(x rotation) set rotation on x axis --> |
− | [[ | + | [[Matrix:setRotationY]] ''set rotation on y axis''<br/><!-- GIDEROSMTD:Matrix:setRotationY(y rotation) set rotation on y axis --> |
− | [[ | + | [[Matrix:setRotationZ]] ''set rotation on z axis''<br/><!-- GIDEROSMTD:Matrix:setRotationZ(z rotation) set rotation on z axis --> |
− | [[ | + | [[Matrix:setScale]] ''transform matrix for setting scale''<br/><!-- GIDEROSMTD:Matrix:setScale(x,y,z) transform matrix for setting scale --> |
− | [[ | + | [[Matrix:setScaleX]] ''set scale on x axis''<br/><!-- GIDEROSMTD:Matrix:setScaleX(x scale) set scale on x axis --> |
− | [[ | + | [[Matrix:setScaleY]] ''set scale on y axis''<br/><!-- GIDEROSMTD:Matrix:setScaleY(y scale) set scale on y axis --> |
− | [[ | + | [[Matrix:setScaleZ]] ''set scale on z axis''<br/><!-- GIDEROSMTD:Matrix:setScaleZ(z scale) set scale on z axis --> |
− | [[ | + | [[Matrix:setTx]] ''sets the value of the tx component''<br/><!-- GIDEROSMTD:Matrix:setTx(tx) sets the value of the tx component --> |
− | [[ | + | [[Matrix:setTy]] ''sets the value of the ty component''<br/><!-- GIDEROSMTD:Matrix:setTy(ty) sets the value of the ty component --> |
− | [[ | + | [[Matrix:setTz]] ''sets the value of the tz component''<br/><!-- GIDEROSMTD:Matrix:setTz(tz) sets the value of the tz component --> |
− | [[ | + | [[Matrix:setX]] ''set x position''<br/><!-- GIDEROSMTD:Matrix:setX(x) set x position --> |
− | [[ | + | [[Matrix:setY]] ''set y position''<br/><!-- GIDEROSMTD:Matrix:setY(y) set y position --> |
− | [[ | + | [[Matrix:setZ]] ''set z position''<br/><!-- GIDEROSMTD:Matrix:setZ(z) set z position --> |
− | [[ | + | [[Matrix:transformPoint]] <br/><!-- GIDEROSMTD:Matrix:transformPoint() --> |
− | [[ | + | [[Matrix:translate]] ''combine existing translation with provided translation''<br/><!-- GIDEROSMTD:Matrix:translate(x,y,z) combine existing translation with provided translation --> |
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Events === |
− | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Revision as of 07:12, 25 December 2020
Supported platforms:
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:
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)
MethodsMatrix.new creates a new Matrix object |
EventsConstants |