Referência do ActionScript® 3.0 para Adobe® Flash® Platform
Início  |  Ocultar listas de Pacotes e Classes |  Pacotes  |  Classes  |  Novidades  |  Índice  |  Apêndices  |  Por que inglês?
Filtros: AIR 30.0 e anterior, Flash Player 30.0 e anterior, Flash Lite 4
Flex 4.6 e anterior, Flash Pro CS6 e anterior
Ocultar filtros
flash.geom 

Matrix3D  - AS3

Pacotesx

Nível superior
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Elementos de linguagem

Constantes globais
Funções globais
Operadores
Instruções, palavras-chave e diretivas
Tipos especiais

Apêndices

Novidades
Erros do compilador
Avisos do compilador
Erros de runtime
Migrando para o ActionScript 3
Conjuntos de caracteres suportados
Tags MXML apenas
Elementos XML de movimento
Marcas de texto cronometradas
Lista de elementos deprecados
Constantes de Implementação de Acessibilidade
Como Usar Exemplos do ActionScript
Aspectos jurídicos
Pacoteflash.geom
Classepublic class Matrix3D
HerançaMatrix3D Inheritance Object

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

A classe Matrix3D representa uma matriz de transformação que determina a orientação e a posição do objeto de exibição tridimensional (3D). A matriz pode executar funções de transformação que incluem a translação (reposicionamento ao longo dos eixos x, y e z), a rotação e o dimensionamento (redimensionamento). A classe Matrix3D pode também realizar uma projeção em perspectiva, que mapeia pontos do espaço de coordenadas 3D para a exibição bidimensional (2D).

Uma única matriz pode combinar várias transformações e aplicá-las de uma só vez em um objeto de exibição 3D. Por exemplo, uma matriz pode ser aplicada às coordenadas tridimensionais para realizar uma rotação seguida de uma translação.

Quando você define explicitamente a propriedade z ou qualquer uma das propriedades de rotação e dimensionamento de um objeto de exibição, é criada automaticamente um objeto Matrix3D correspondente.

Você pode acessar o objeto Matrix3D de um objeto de exibição 3D através da propriedade transform.matrix3d. Objetos 2D não têm um objeto Matrix3D.

O valor da propriedade z de um objeto bidimensional é zero e o valor da propriedade matrix3D é null.

Observação: se o mesmo objeto Matrix3D for atribuído a dois objetos de exibição diferentes, será lançado um erro de tempo de execução.

A classe Matrix3D utiliza uma matriz quadrada 4x4: uma tabela de quatro linhas e colunas de números que mantém os dados da transformação. As três primeiras linhas da matriz contêm os dados de cada eixo tridimensional (x,y,z). As informações da translação ficam na última coluna. Os dados da orientação e dimensionamento ficam nas três primeiras colunas. Os fatores de dimensionamento são os números diagonais contidos nas três primeiras colunas. Veja uma representação dos elementos de Matrix3D:

Elementos de Matrix3D

Não é necessário conhecer a matemática da matriz para usar a classe Matrix3D. Ela oferece métodos específicos que simplificam a tarefa de transformação e projeção, por exemplo, os métodos appendTranslation(), appendRotation() ou interpolateTo(). Você pode também usar os métodos decompose() e recompose() ou a propriedade rawData para acessar os elementos subjacentes da matriz.

Os objetos de exibição armazenam em cache as respectivas propriedades de rotação do eixo para ter rotações separadas de cada eixo e para gerenciar as diversas combinações de rotações. Quando um método de um objeto Matrix3D é chamado para transformar um objeto de exibição, o armazenamento em cache de rotações do objeto é invalidado.

Elementos da API relacionados



Propriedades públicas
 PropriedadeDefinido por
 Inheritedconstructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto.
Object
  determinant : Number
[somente leitura] Um Número que determina se uma matriz pode ser invertida.
Matrix3D
  position : Vector3D
Um objeto Vector3D que mantém a posição, a coordenada tridimensional (x,y,z) de um objeto de exibição dentro do quadro de referência da transformação.
Matrix3D
  rawData : Vector.<Number>
Um Vetor de 16 Números, em que cada quatro elementos é uma coluna de uma matriz 4x4.
Matrix3D
Métodos públicos
 MétodoDefinido por
  
Matrix3D(v:Vector.<Number> = null)
Cria um objeto Matrix3D.
Matrix3D
  
Anexa a matriz multiplicando outro objeto Matrix3D pelo objeto Matrix3D atual.
Matrix3D
  
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Acrescenta uma rotação incremental a um objeto Matrix3D.
Matrix3D
  
appendScale(xScale:Number, yScale:Number, zScale:Number):void
Acrescenta uma alteração de dimensionamento incremental nos eixos x, y e z a um objeto Matrix3D.
Matrix3D
  
Acrescenta uma translação incremental, um reposicionamento ao longo dos eixos x, y e z, a um objeto Matrix3D.
Matrix3D
  
Retorna um novo objeto Matrix3D que é uma cópia exata do objeto Matrix3D atual.
Matrix3D
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Copia um objeto de Vector3D na coluna específica do objeto de chamada Matrix3D.
Matrix3D
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Copia a coluna específica do objeto de chamada Matrix3D no objeto de Vector3D.
Matrix3D
  
copyFrom(sourceMatrix3D:Matrix3D):void
Copia todos os dados de matriz do objeto de origem Matrix3D para o objeto Matrix3D da chamada.
Matrix3D
  
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copia todos dos dados de vetor do objeto vetor de origem para a chamada objeto Matrix3D.
Matrix3D
  
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copia todos dos dados de matriz do objeto de chamada Matrix3D para o vetor fornecido.
Matrix3D
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Copia um objeto de Vector3D na linha específica do objeto de chamada Matrix3D.
Matrix3D
  
copyRowTo(row:uint, vector3D:Vector3D):void
Copia a linha específica do objeto de chamada Matrix3D no objeto de Vector3D.
Matrix3D
  
Matrix3D
  
decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Retorna as configurações de translação, rotação e dimensionamento da matriz de transformação como um Vector de três objetos Vector3D.
Matrix3D
  
Usa a matriz de transformação sem seus elementos de translação para transformar um objeto Vector3D de uma coordenada de espaço para outra.
Matrix3D
 Inherited
Indica se um objeto tem uma propriedade especificada definida.
Object
  
Converte a matriz atual em uma matriz de identidade ou unitária.
Matrix3D
  
interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
[estático] Interpola a tradução, rotação, e transformação de escala de uma matriz em direção àqueles da matriz de destino.
Matrix3D
  
Interpola esta matriz em direção à tradução, rotação, e transformações de escala da matriz de destino.
Matrix3D
  
Inverte a matriz atual.
Matrix3D
 Inherited
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro.
Object
  
pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Gira o objeto de exibição para que ele se volte a uma determinada posição.
Matrix3D
  
Precede uma matriz multiplicando o objeto Matrix3D atual por outro objeto Matrix3D.
Matrix3D
  
prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Acrescenta uma rotação incremental a um objeto Matrix3D.
Matrix3D
  
prependScale(xScale:Number, yScale:Number, zScale:Number):void
Acrescenta uma alteração de dimensionamento incremental nos eixos x, y e z a um objeto Matrix3D.
Matrix3D
  
Acrescenta uma translação incremental, um reposicionamento ao longo dos eixos x, y e z, a um objeto Matrix3D.
Matrix3D
 Inherited
Indica se a propriedade especificada existe e é enumerável.
Object
  
recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Define as configurações de translação, rotação e dimensionamento da matriz de transformação.
Matrix3D
 Inherited
Define a disponibilidade de uma propriedade dinâmica para operações de repetição.
Object
 Inherited
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade.
Object
 Inherited
Retorna a representação de string do objeto especificado.
Object
  
Usa a matriz de transformação para transformar um objeto Vector3D de uma coordenada de espaço para outra.
Matrix3D
  
Usa a matriz de transformação para transformar um Vector de números de um espaço de coordenadas para outro.
Matrix3D
  
Converte o objeto Matrix3D atual em uma matriz em que as linhas e colunas são trocadas.
Matrix3D
 Inherited
Retorna o valor primitivo do objeto especificado.
Object
Detalhes da propriedade

determinant

propriedade
determinant:Number  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Um Número que determina se uma matriz pode ser invertida.

Um objeto Matrix3D deve ser invertível. Você pode usar a propriedade determinant para verificar se um objeto Matrix3D é invertível. Se o determinando é zero, o inverso da matriz não existe. Por exemplo, se uma linha ou coluna inteira da matriz for zero ou se duas linhas ou colunas forem iguais, o determinante será zero. O determinante é usado também para solucionar uma série de equações.

Somente uma matriz quadrada, como a classe Matrix3D, tem um determinante.



Implementação
    public function get determinant():Number

Elementos da API relacionados

position

propriedade 
position:Vector3D

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Um objeto Vector3D que mantém a posição, a coordenada tridimensional (x,y,z) de um objeto de exibição dentro do quadro de referência da transformação. A propriedade position permite acesso imediato ao vetor de translação da matriz do objeto de exibição sem precisar decompor e recompor a matriz.

Com a propriedade position, você pode obter e definir os elementos de translação da matriz de transformação.



Implementação
    public function get position():Vector3D
    public function set position(value:Vector3D):void

Elementos da API relacionados

rawData

propriedade 
rawData:Vector.<Number>

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Um Vetor de 16 Números, em que cada quatro elementos é uma coluna de uma matriz 4x4.

Uma exceção será emitida se a propriedade rawData for definida como uma matriz não invertível. O objeto Matrix3D deve ser invertível. Se for necessária uma matriz não invertível, crie uma subclasse do objeto Matrix3D.



Implementação
    public function get rawData():Vector.<Number>
    public function set rawData(value:Vector.<Number>):void

Elementos da API relacionados

Detalhes do construtor

Matrix3D

()Construtor
public function Matrix3D(v:Vector.<Number> = null)

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Cria um objeto Matrix3D. Os objetos Matrix3D podem ser inicializados com um Vetor de 16 números, em que cada quatro elementos representam uma coluna. Quando o objeto Matrix3D for criado, você poderá acessar os elementos da matriz com a propriedade rawData.

Se nenhum parâmetro for definido, o construtor produzirá um objeto Matrix3D unitário ou de identidade. Na notação da matriz, uma matriz de identidade tem o valor 1 para todos os elementos na posição diagonal principal e um valor zero para todos os outros elementos. O valor da propriedade rawData de uma matriz de identidade é: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1. O valor da translação ou da posição da matriz de identidade é Vector3D(0,0,0), a definição de rotação é Vector3D(0,0,0) e o valor do dimensionamento é Vector3D(1,1,1).

Parâmetros
v:Vector.<Number> (default = null) — Um Vetor de 16 Números, em que cada quatro elementos representam uma coluna de uma matriz 4x4.

Elementos da API relacionados

Detalhes do método

append

()método
public function append(lhs:Matrix3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Anexa a matriz multiplicando outro objeto Matrix3D pelo objeto Matrix3D atual. O resultado combina as duas transformações de matriz. Você pode multiplicar um objeto Matrix3D por várias matrizes. O objeto Matrix3D final contém o resultado de todas as transformações.

A multiplicação de matriz é diferente da adição de matriz. A multiplicação de matriz não é comutativa. Em outras palavras, A vezes B não é igual a B vezes A. Com o método append(), a multiplicação ocorre do lado esquerdo, significando que o objeto Matrix3D lhs está no lado esquerdo do operador de multiplicação.

thisMatrix = lhs * thisMatrix;

Na primeira vez que o método append() é chamado, ele faz uma modificação relativa ao espaço do pai. As chamadas subsequentes são relativas ao quadro de referência do objeto Matrix3D anexado.

O método append() substitui a matriz atual pela matriz anexada. Para anexar duas matrizes sem alterar a matriz atual, copie a matriz atual usando o método clone() e aplique o método append() à copia.

Parâmetros

lhs:Matrix3D — Uma matriz do lado esquerdo que é multiplicada pelo objeto Matrix3D atual.

Elementos da API relacionados

appendRotation

()método 
public function appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Acrescenta uma rotação incremental a um objeto Matrix3D. Quando o objeto Matrix3D é aplicado a um objeto de exibição, a matriz executa a rotação depois de outras transformações no objeto Matrix3D.

A rotação do objeto de exibição é definida por um eixo, um grau incremental de rotação ao redor do eixo e um ponto de pivô opcional do centro da rotação do objeto. O eixo pode ser qualquer direção em geral. Os eixos comuns são X_AXS (Vector3D (1.0.0)), Y_AXIS (Vector3D (0.1.0)) e Z_AXIS (Vector3D (0.0.1)). Na terminologia da aviação, a rotação sobre o eixo y é chamada de guinada. A rotação sobre o eixo x é chamada de arfada. A rotação sobre o eixo z é chamada de rolamento.

A ordem de transformação é importante. Uma rotação seguida de uma transformação de translação produz um efeito diferente de uma translação seguida de uma transformação de rotação.

O efeito da rotação não é absoluto. Ele é relativo à posição e à orientação atuais. Para fazer uma alteração absoluta na matriz de transformação, use o método recompose(). O método appendRotation() é diferente também da propriedade de rotação do eixo do objeto de exibição, por exemplo, a propriedade rotationX. A propriedade de rotação é sempre executada antes de qualquer translação, ao passo que o método appendRotation() é executado em relação a tudo o que já está na matriz. Para verificar se será obtido um efeito semelhante ao da propriedade de rotação do eixo do objeto de exibição, use o método prependRotation(), que executa a rotação antes de outras transformações na matriz.

Quando a transformação do método appendRotation() é aplicada a um objeto Matrix3D de um objeto de exibição, os valores da propriedade de rotação armazenados em cache do objeto de exibição são invalidados.

Uma forma de fazer com que um objeto de exibição gire ao redor de um ponto específico relativo à sua localização é definir a translação do objeto como o ponto especificado, girar o objeto usando o método appendRotation() e transladar o objeto de volta à posição original. No exemplo a seguir, o objeto de exibição 3D myObject faz uma rotação do eixo y ao redor da coordenada (10,10,0).

    
    myObject.z = 1; 
    myObject.transform.matrix3D.appendTranslation(10,10,0);
    myObject.transform.matrix3D.appendRotation(1, Vector3D.Y_AXIS);
    myObject.transform.matrix3D.appendTranslation(-10,-10,0);
     
    

Parâmetros

degrees:Number — O grau da rotação.
 
axis:Vector3D — O eixo ou a direção da rotação. Os eixos comuns são X_AXIS (Vector3D (1.0.0)), Y_AXIS (Vector3D (0.1.0)) e Z_AXIS (Vector3D (0.0.1)). Este vetor deve ter um comprimento de um.
 
pivotPoint:Vector3D (default = null) — Um ponto que determina o centro da rotação de um objeto. O ponto de pivô padrão de um objeto é seu ponto de registro.

Elementos da API relacionados

appendScale

()método 
public function appendScale(xScale:Number, yScale:Number, zScale:Number):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Acrescenta uma alteração de dimensionamento incremental nos eixos x, y e z a um objeto Matrix3D. Quando o objeto Matrix3D é aplicado a um objeto de exibição, a matriz executa as alterações de dimensionamento depois de outras transformações no objeto Matrix3D. O fator de dimensionamento padrão é (1.0, 1.0, 1.0).

O dimensionamento é definido como um conjunto de três alterações incrementais ao longo dos três eixos (x,y,z). Você pode multiplicar cada eixo por um número diferente. Quando as alterações de dimensionamento são aplicadas a um objeto de exibição, o tamanho do objeto aumenta ou diminui. Por exemplo, se os eixos x, y e z forem definidos como dois, o tamanho do objeto será duplicado e, se eles forem definidos como 0,5, o tamanho será dividido por dois. Para que a transformação de dimensionamento afete somente um eixo específico, defina os outros parâmetros como um. Um parâmetro de valor um significa que não há alterações de dimensionamento no eixo específico.

O método appendScale() pode ser usado para redimensionar e também para gerenciar distorções, como expansão ou contração de um objeto de exibição, ou para aplicar mais zoom ou menos zoom em um local. As transformações de dimensionamento são realizadas automaticamente durante a rotação e a translação do objeto de exibição.

A ordem de transformação é importante. Um redimensionamento seguido de uma transformação de translação produz um efeito diferente de uma translação seguida de uma transformação de redimensionamento.

Parâmetros

xScale:Number — Um multiplicador usado para dimensionar o objeto ao longo do eixo x.
 
yScale:Number — Um multiplicador usado para dimensionar o objeto ao longo do eixo y.
 
zScale:Number — Um multiplicador usado para dimensionar o objeto ao longo do eixo z.

Elementos da API relacionados

appendTranslation

()método 
public function appendTranslation(x:Number, y:Number, z:Number):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Acrescenta uma translação incremental, um reposicionamento ao longo dos eixos x, y e z, a um objeto Matrix3D. Quando o objeto Matrix3D é aplicado a um objeto de exibição, a matriz executa as alterações de translação depois de outras transformações no objeto Matrix3D.

A translação é definida como um conjunto de três alterações incrementais ao longo dos três eixos (x,y,z). Quando a transformação é aplicada a um objeto de exibição, esse objeto se movimenta a partir do local atual ao longo dos eixos x, y e z, conforme especificado pelos parâmetros. Para que a translação afete somente um eixo específico, defina os outros parâmetros como zero. Um parâmetro zero significa que não há alterações no eixo específico.

As alterações de translação não são absolutas. Elas são relativas à posição e à orientação atuais da matriz. Para fazer uma alteração absoluta na matriz de transformação, use o método recompose(). A ordem de transformação também é importante. Uma translação seguida de uma transformação de rotação produz um efeito diferente de uma rotação seguida de uma translação.

Parâmetros

x:Number — Uma translação incremental ao longo do eixo x.
 
y:Number — Uma translação incremental ao longo do eixo y.
 
z:Number — Uma translação incremental ao longo do eixo z.

Elementos da API relacionados

clone

()método 
public function clone():Matrix3D

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Retorna um novo objeto Matrix3D que é uma cópia exata do objeto Matrix3D atual.

Retorna
Matrix3D — Um novo objeto Matrix3D que é uma cópia exata do objeto Matrix3D atual.

copyColumnFrom

()método 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia um objeto de Vector3D na coluna específica do objeto de chamada Matrix3D.

Parâmetros

column:uint — A coluna de destino da cópia.
 
vector3D:Vector3D — Objeto Vector3D a partir do qual os dados são copiados.

copyColumnTo

()método 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia a coluna específica do objeto de chamada Matrix3D no objeto de Vector3D.

Parâmetros

column:uint — A coluna da qual os dados serão copiados.
 
vector3D:Vector3D — O objeto Vector3D de destino da cópia.

copyFrom

()método 
public function copyFrom(sourceMatrix3D:Matrix3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia todos os dados de matriz do objeto de origem Matrix3D para o objeto Matrix3D da chamada.

Parâmetros

sourceMatrix3D:Matrix3D — Objeto Matrix3D a partir do qual os dados são copiados.

copyRawDataFrom

()método 
public function copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia todos dos dados de vetor do objeto vetor de origem para a chamada objeto Matrix3D. O parâmetro de índice opcional permite selecionar qualquer slot inicial no vetor.

Parâmetros

vector:Vector.<Number> — Objeto vetor a partir do qual os dados são copiados.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRawDataTo

()método 
public function copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia todos dos dados de matriz do objeto de chamada Matrix3D para o vetor fornecido. O parâmetro de índice opcional permite selecionar qualquer slot de inicial no vetor.

Parâmetros

vector:Vector.<Number> — Objeto vetor para o qual os dados são copiados.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRowFrom

()método 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia um objeto de Vector3D na linha específica do objeto de chamada Matrix3D.

Parâmetros

row:uint — A linha da qual os dados são copiados.
 
vector3D:Vector3D — Objeto Vector3D a partir do qual os dados são copiados.

copyRowTo

()método 
public function copyRowTo(row:uint, vector3D:Vector3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia a linha específica do objeto de chamada Matrix3D no objeto de Vector3D.

Parâmetros

row:uint — A linha a partir da qual os dados são copiados.
 
vector3D:Vector3D — O objeto Vector3D para o qual copiar os dados.

copyToMatrix3D

()método 
public function copyToMatrix3D(dest:Matrix3D):void

Parâmetros

dest:Matrix3D

decompose

()método 
public function decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Retorna as configurações de translação, rotação e dimensionamento da matriz de transformação como um Vector de três objetos Vector3D. O primeiro objeto Vector3D contém os elementos da translação. O segundo objeto Vector3D contém os elementos da rotação. O terceiro objeto Vector3D contém os elementos do dimensionamento.

Alguns métodos Matrix3D, como o interpolateTo(), decompõem e recompõem automaticamente a matriz para executar a transformação.

Para modificar a transformação da matriz com um quadro de referência pai absoluto, recupere as configurações com o método decompose() e faça as alterações apropriadas. Assim, você pode definir o objeto Matrix3D como a transformação modificada usando o método recompose().

O parâmetro do método decompose() especifica o estilo de orientação que deverá ser usado na transformação. A orientação padrão é eulerAngles, que define a orientação com três ângulos separados de rotação para cada eixo. As rotações ocorrem consecutivamente e não alteram o eixo um do outro. As propriedades do eixo do objeto de exibição executam a transformação do estilo de orientação Ângulos de Euler. As outras opções de estilo de orientação são axisAngle e quaternion. A orientação de tipo Ângulo do eixo usa uma combinação de um eixo e um ângulo para determinar a orientação. O eixo ao redor do qual o objeto gira é um vetor unitário que representa uma direção. O ângulo representa a magnitude da rotação sobre o vetor. A direção também determina o lado para o qual um objeto de exibição está voltado e o ângulo determina o trajeto de movimentação. Os métodos appendRotation() e prependRotation() utilizam a orientação Ângulo do eixo. A orientação de quatérnion utiliza números complexos e o quarto elemento de um vetor. Os três eixos de rotação (x,y,z) e um ângulo de rotação (w) representam a orientação. O método interpolate() utiliza o quatérnion.

Parâmetros

orientationStyle:String (default = "eulerAngles") — Um parâmetro opcional que determina o estilo de orientação usado na transformação da matriz. Os três tipos de estilo de orientação são eulerAngles (constante EULER_ANGLES), axisAngle (constante AXIS_ANGLE) e quaternion (constante QUATERNION). Para obter informações adicionais sobre outro estilo de orientação, consulte a classe geom.Orientation3D.

Retorna
Vector.<Vector3D> — Um Vector de três objetos Vector3D, cada um mantendo as respectivas configurações de translação, rotação e dimensionamento.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

Esse exemplo usa os métodos decompose() e recompose() para que a elipse seja alongada horizontalmente durante a movimentação em direção ao ponto de fuga. O primeiro objeto Vector3D retornado pelo método decompose() mantém as coordenadas da translação. O terceiro objeto Vector3D mantém as configurações de dimensionamento. O método incrementBy() do objeto Vector3D incrementa as configurações de translação e dimensionamento absolutas da matriz.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.events.Event;
    
    public class Matrix3DdecomposeExample extends MovieClip {
        private var ellipse:Shape = new Shape();

        public function Matrix3DdecomposeExample():void {
            
            ellipse.x = (this.stage.stageWidth / 2);
            ellipse.y = (this.stage.stageHeight - 40);
            ellipse.z = 1;
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(0, 0, 50, 40);
            ellipse.graphics.endFill();
            addChild(ellipse);

            ellipse.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function enterFrameHandler(e:Event):void {  

            var v3:Vector.<Vector3D> = new Vector.<Vector3D>(3);
            v3 = ellipse.transform.matrix3D.decompose();
            v3[0].incrementBy(new Vector3D(0,0,1));
            v3[2].incrementBy(new Vector3D(0.01,0,0));
            ellipse.transform.matrix3D.recompose(v3);
        }
    }
}

deltaTransformVector

()método 
public function deltaTransformVector(v:Vector3D):Vector3D

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Usa a matriz de transformação sem seus elementos de translação para transformar um objeto Vector3D de uma coordenada de espaço para outra. O objeto Vector3D retornado conterá as novas coordenadas depois de aplicadas as transformações de rotação e dimensionamento. Se o método deltaTransformVector() aplicar uma matriz que contiver apenas uma transformação de translação, o Vector3D retornado será igual ao objeto Vector3D original.

Você pode usar o método deltaTransformVector() para que um objeto de exibição de um espaço de coordenadas responda à transformação de rotação de um segundo objeto de exibição. O objeto não copia a rotação; ele apenas altera sua posição para refletir as alterações na rotação. Por exemplo, para usar a API display.Graphics para desenhar objeto de exibição 3D em rotação, mapeie as coordenadas de rotação do objeto para um ponto bidimensional. Primeiramente, recupere as coordenadas 3D do objeto após cada rotação, usando o método deltaTransformVector(). Em seguida, aplique o método local3DToGlobal() do objeto de exibição para transladar as coordenadas tridimensionais aos pontos bidimensionais. Em seguida, você pode usar os pontos bidimensionais para desenhar o objeto 3D em rotação.

Observação: este método define automaticamente o componente w do Vector3D transmitido como 0.0.

Parâmetros

v:Vector3D — Um objeto Vector3D que tem as coordenadas que serão transformadas.

Retorna
Vector3D — Um objeto Vector3D com as coordenadas transformadas.

Elementos da API relacionados

identity

()método 
public function identity():void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Converte a matriz atual em uma matriz de identidade ou unitária. Uma matriz de identidade tem o valor 1 para os elementos na diagonal principal e um valor zero para todos os outros elementos. O resultado é uma matriz em que o valor de rawData é 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1, a rotação está definida como Vector3D(0,0,0), a posição ou a translação está definida como Vector3D(0,0,0) e o dimensionamento está definido como Vector3D(1,1,1). Veja uma representação de matriz de identidade:

Identity Matrix

Um objeto transformado pela aplicação de uma matriz de identidade não realiza transformações. Em outras palavras, se uma matriz for multiplicada por uma matriz de identidade, o resultado será uma matriz idêntica à matriz original.

interpolate

()método 
public static function interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Interpola a tradução, rotação, e transformação de escala de uma matriz em direção àqueles da matriz de destino.

O método interpolate() evita que alguns resultados indesejáveis ocorram quando são usados métodos como as propriedades de rotação do eixo do objeto de exibição. O método interpolate() invalida o valor da propriedade de rotação armazenado em cache do objeto de exibição e converte os elementos de orientação da matriz do objeto de exibição em quatérnion antes da interpolação. Esse método garante o caminho mais curto e eficiente para a rotação. Além disso, ele produz uma rotação suave e livre de gimbal lock (travamento das rotações). O problema de gimbal lock pode ocorrer ao usar Ângulos de Euler, em que cada eixo é manipulado de forma independente. Durante a rotação ao redor de dois ou mais eixos, os eixos podem ficar alinhados, levando a resultados inesperados. A rotação de quatérnion evita esse problema.

As chamadas consecutivas ao método interpolate() podem produzir o efeito de um objeto de exibição iniciando rapidamente e, depois, se aproximando lentamente de outro objeto de exibição. Por exemplo, se você definir o parâmetro thisMat como o objeto Matrix3D retornado, o parâmetro toMat como o objeto Matrix3D associado do objeto de exibição de destino e o parâmetro percent como 0,1, o objeto de exibição se movimentará 10% em direção ao objeto de destino. Nas chamadas ou nos quadros subsequentes, o objeto se movimentará 10% dos 90% restantes, em seguida, 10% da distância restante, e continua até chegar ao destino.

Parâmetros

thisMat:Matrix3D — O objeto Matrix3D que será interpolado.
 
toMat:Matrix3D — O objeto Matrix3D de destino.
 
percent:Number — Um valor entre 0 e 1 que determina a porcentagem de interpolação do objeto Matrix3D thisMat em direção ao objeto Matrix3D de destino.

Retorna
Matrix3D — Um objeto Matrix3D com elementos que colocam os valores da matriz entre a matriz original e a de destino. Quando a matriz retornada é aplicada ao objeto de exibição this, o objeto se aproxima do objeto de destino na porcentagem especificada.

Elementos da API relacionados

interpolateTo

()método 
public function interpolateTo(toMat:Matrix3D, percent:Number):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Interpola esta matriz em direção à tradução, rotação, e transformações de escala da matriz de destino.

O método interpolateTo() evita que resultados indesejáveis ocorram quando são usados métodos como as propriedades de rotação do eixo do objeto de exibição. O método interpolateTo() invalida o valor da propriedade de rotação armazenado em cache do objeto de exibição e converte os elementos de orientação da matriz do objeto de exibição em quatérnion antes da interpolação. Esse método garante o caminho mais curto e eficiente para a rotação. Além disso, ele produz uma rotação suave e livre de gimbal lock (travamento das rotações). O problema de gimbal lock pode ocorrer ao usar Ângulos de Euler, em que cada eixo é manipulado de forma independente. Durante a rotação ao redor de dois ou mais eixos, os eixos podem ficar alinhados, levando a resultados inesperados. A rotação de quatérnion evita esse problema.

Observação: no caso de uma interpolação, o valor de dimensionamento da matriz será redefinido e a matriz normalizada.

As chamadas consecutivas ao método interpolateTo() podem produzir o efeito de um objeto de exibição iniciando rapidamente e, depois, se aproximando lentamente de outro objeto de exibição. Por exemplo, se o parâmetro de percentual for definido como 0,1, o objeto de exibição se movimentará 10% em direção ao objeto de destino especificado pelo parâmetro toMat. Nas chamadas ou nos quadros subsequentes, o objeto se movimentará 10% dos 90% restantes, em seguida, 10% da distância restante, e continua até chegar ao destino.

Parâmetros

toMat:Matrix3D — O objeto Matrix3D de destino.
 
percent:Number — Um valor entre 0 e 1 que determina a localização do objeto de exibição em relação ao destino. Quanto mais próximo o valor estiver de 1,0, mais próximo o objeto de exibição estará da sua posição atual. Quanto mais próximo o valor estiver de 0, mais próximo o objeto de exibição estará do destino.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

Nesse exemplo, a elipse2, um objeto de exibição tridimensional, vai em direção à elipse1, um outro objeto de exibição tridimensional. A elipse2 segue a elipse1 tentando alcançá-la. Se a elipse1 não girar ao redor do eixo y, a elipse2 alcançará e ficará no topo da elipse1. As duas elipses foram desenhadas da mesma forma, mas estão colocadas em locais diferentes no espaço global tridimensional.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.geom.*;
    import flash.events.Event;

    public class InterpolateToExample extends MovieClip {
        private var ellipse1:Shape = new Shape();
        private var ellipse2:Shape = new Shape();

        public function InterpolateToExample():void {

            ellipse1 = myEllipses(250, 100, 500, 0xFF0000);
            addChild(ellipse1);
            
            ellipse2 = myEllipses(-30, 120, 1, 0x00FF00);
            addChild(ellipse2);

            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function myEllipses(x:Number, y:Number, z:Number, c:Number):Shape {
            var s:Shape = new Shape();                            
            s.x = x;
            s.y = y;
            s.z = z;
            s.graphics.beginFill(c);
            s.graphics.lineStyle(2);
            s.graphics.drawEllipse(100, 50, 100, 80);
            s.graphics.endFill();
            return s;
        }

        private function enterFrameHandler(e:Event) {
            ellipse1.rotationY += 1;

            ellipse2.transform.matrix3D.interpolateTo(ellipse1.transform.matrix3D, 0.1);
        }
    }
}

invert

()método 
public function invert():Boolean

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Inverte a matriz atual. Uma matriz invertida tem o mesmo tamanho da original, mas realiza a transformação oposta à da original. Por exemplo, se a matriz original tiver uma rotação de objeto ao redor do eixo x em uma direção, o inverso da matriz terá a rotação do objeto ao redor do eixo na direção oposta. A aplicação de matriz invertida a um objeto desfaz a transformação realizada pela matriz original. Se uma matriz for multiplicada pela matriz inversa, o resultado será uma matriz de identidade.

O inverso de uma matriz pode ser usado para dividir uma matriz pela outra. A forma de dividir a matriz A pela B é multiplicar a matriz A pelo inverso da matriz B. A matriz inversa pode ser usada também com um espaço de câmera. Quando a câmera se move no espaço global, o objeto no espaço global precisa se movimentar na direção oposta para transformar da visão global para o espaço da câmera ou da visão. Por exemplo, quando a câmera se aproxima, os objetos ficam maiores. Em outras palavras, se a câmera mover-se para baixo do eixo z global, o objeto se movimentará para cima do eixo z.

O método invert() substitui a matriz atual pela matriz invertida. Para inverter uma matriz sem alterar a matriz atual, primeiramente copie a matriz atual usando o método clone() e depois aplique o método invert() à copia.

O objeto Matrix3D deve ser invertível.

Retorna
Boolean — Retornará true se a matriz for invertida com êxito.

Elementos da API relacionados

pointAt

()método 
public function pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Gira o objeto de exibição para que ele se volte a uma determinada posição. Esse método permite uma modificação no local para a orientação. O vetor de direção para frente dos pontos do objeto de exibição (o objeto Vector3D em) na posição relativa global especificada. A direção para cima do objeto de exibição é especificada com o objeto Vector3D up.

O método pointAt() invalida o valor da propriedade de rotação armazenado em cache do objeto de exibição. O método decompõe a matriz do objeto de exibição e modifica os elementos de rotação para que o objeto vire para a posição especificada. Ele recompõe (atualiza) a matriz do objeto de exibição que executa a transformação. Se o objeto estiver apontando para um destino em movimento, por exemplo, a posição de um objeto em movimento, a cada chamada subsequente o método terá a rotação do objeto em direção ao destino em movimento.

Nota: se você usar o método Matrix3D.pointAt() sem definir os parâmetros opcionais, um objeto de destino não ficará em frente da posição relativa mundial especificada por padrão. Você deve estabelecer os valores de at para o eixo -y (0,-1,0) e up para o eixo -z (0,0,-1).

Parâmetros

pos:Vector3D — A posição relativa global do objeto de destino. A relação global define a transformação do objeto em relação ao espaço e às coordenadas globais onde todos os objetos estão posicionados.
 
at:Vector3D (default = null) — O vetor relativo ao objeto que define o ponto para o qual o objeto de exibição está apontando. A relação de objeto define a transformação do objeto em relação ao espaço do objeto, ao sistema de coordenadas e ao quadro de referência próprios do objeto. O valor padrão é o eixo +y (0,1,0).
 
up:Vector3D (default = null) — O vetor relativo ao objeto que define o vetor "up" do objeto de exibição. Se o objeto for desenhado visto de cima, o eixo +z será seu vetor "up". A relação de objeto define a transformação do objeto em relação ao espaço do objeto, ao sistema de coordenadas e ao quadro de referência próprios do objeto. O valor padrão é o eixo +z (0,0,1).

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

Nesse exemplo, um triângulo aponta para o caminho do movimento da elipse e o segue. A elipse e o triângulo estão configurados para locais diferentes. A elipse se movimenta para cima, em direção ao canto do palco. O triângulo segue as alterações de translação da elipse. Você pode alterar a forma do triângulo e os parâmetros "at" e "up" do método pointAt() para ver o impacto no movimento do triângulo.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.geom.*;
    import flash.events.Event;

    public class PointAtExample extends MovieClip {
        private var ellipse:Shape = new Shape();
        private var triangle:Shape = new Shape();

        public function PointAtExample():void {
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(30, 40, 50, 40);
            ellipse.graphics.endFill();
            ellipse.x = 100;
            ellipse.y = 150;
            ellipse.z = 1;

            triangle.graphics.beginFill(0x0000FF);
            triangle.graphics.moveTo(0, 0);
            triangle.graphics.lineTo(40, 40);
            triangle.graphics.lineTo(80, 0);
            triangle.graphics.lineTo(0, 0);
            triangle.graphics.endFill();
            triangle.x = 200;
            triangle.y = 50;
            triangle.z = 1;

            addChild(ellipse);
            addChild(triangle);

            ellipse.addEventListener(Event.ENTER_FRAME, ellipseEnterFrameHandler);
            triangle.addEventListener(Event.ENTER_FRAME, triangleEnterFrameHandler);
        }

        private function ellipseEnterFrameHandler(e:Event) {
            if(e.target.y > 0) {
                e.target.y -= 1;
                e.target.x -= 1;
            }
        }
        
        private function triangleEnterFrameHandler(e:Event) {
            e.target.transform.matrix3D.pointAt(ellipse.transform.matrix3D.position,
                                                Vector3D.X_AXIS, Vector3D.Y_AXIS);
        }
    }
}

prepend

()método 
public function prepend(rhs:Matrix3D):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Precede uma matriz multiplicando o objeto Matrix3D atual por outro objeto Matrix3D. O resultado combina as duas transformações de matriz.

A multiplicação de matriz é diferente da adição de matriz. A multiplicação de matriz não é comutativa. Em outras palavras, A vezes B não é igual a B vezes A. Com o método prepend(), a multiplicação ocorre do lado direito, significando que o objeto Matrix3D rhs está no lado direito do operador de multiplicação.

thisMatrix = thisMatrix * rhs

As modificações feitas pelo método prepend() são relativas ao espaço do objeto. Em outras palavras, elas são sempre relativas ao quadro inicial de referência do objeto.

O método prepend() substitui a matriz atual pela matriz precedente. Para adicionar duas matrizes precedentes sem alterar a matriz atual, copie a matriz atual usando o método clone() e aplique o método prepend() à copia.

Parâmetros

rhs:Matrix3D — Uma matriz do lado direito pela qual o objeto Matrix3D atual é multiplicado.

Elementos da API relacionados

prependRotation

()método 
public function prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Acrescenta uma rotação incremental a um objeto Matrix3D. Quando o objeto Matrix3D é aplicado a um objeto de exibição, a matriz executa a rotação antes de outras transformações no objeto Matrix3D.

A rotação do objeto de exibição é definida por um eixo, um grau incremental de rotação ao redor do eixo e um ponto de pivô opcional do centro da rotação do objeto. O eixo pode ser qualquer direção em geral. Os eixos comuns são X_AXS (Vector3D (1.0.0)), Y_AXIS (Vector3D (0.1.0)) e Z_AXIS (Vector3D (0.0.1)). Na terminologia da aviação, a rotação sobre o eixo y é chamada de guinada. A rotação sobre o eixo x é chamada de arfada. A rotação sobre o eixo z é chamada de rolamento.

A ordem de transformação é importante. Uma rotação seguida de uma transformação de translação produz um efeito diferente de uma translação seguida de uma rotação.

O efeito da rotação não é absoluto. O efeito é relativo ao objeto, relativo ao quadro de referência da posição e orientação originais. Para fazer uma alteração absoluta na transformação, use o método recompose().

Quando a transformação do método prependRotation() é aplicada a um objeto Matrix3D de um objeto de exibição, os valores da propriedade de rotação armazenados em cache do objeto de exibição são invalidados.

Uma forma de fazer com que um objeto de exibição gire ao redor de um ponto específico relativo à sua localização é definir a translação do objeto como o ponto especificado, girar o objeto usando o método prependRotation() e transladar o objeto de volta à posição original. No exemplo a seguir, o objeto de exibição 3D myObject faz uma rotação do eixo y ao redor da coordenada (10,10,0).

    
    myObject.z = 1; 
    myObject.transform.matrix3D.prependTranslation(10,10,0);
    myObject.transform.matrix3D.prependRotation(1, Vector3D.Y_AXIS);
    myObject.transform.matrix3D.prependTranslation(-10,-10,0);
     
    

Parâmetros

degrees:Number — O grau da rotação.
 
axis:Vector3D — O eixo ou a direção da rotação. Os eixos comuns são X_AXIS (Vector3D (1.0.0)), Y_AXIS (Vector3D (0.1.0)) e Z_AXIS (Vector3D (0.0.1)). Este vetor deve ter um comprimento de um.
 
pivotPoint:Vector3D (default = null) — Um ponto que determina o centro da rotação. O ponto de pivô padrão de um objeto é seu ponto de registro.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

Nesse exemplo, o usuário pode mover o mouse para girar uma elipse ao redor dos eixos x e y. A elipse está desenhada com o ponto de registro no centro. A elipse gira ao redor do eixo y usando a coordenada x do mouse. Ela gira ao redor do eixo x usando a coordenada y do mouse.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.events.MouseEvent;
    
    public class Matrix3DprependRotationExample extends MovieClip {
        private var ellipse:Shape = new Shape();

        public function Matrix3DprependRotationExample():void {

            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(-50, -40, 100, 80);
            ellipse.graphics.endFill();

            ellipse.x = (this.stage.stageWidth / 2);
            ellipse.y = (this.stage.stageHeight / 2);
            ellipse.z = 1;
            
            addChild(ellipse);

            stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
        }

        private function mouseMoveHandler(e:MouseEvent):void {
            var y:int;
            var x:int;
            
            if(e.localX > ellipse.x) {
                y = (Math.round(e.localX) / 100);   
            } else {
                y = -(Math.round(e.localX) / 10);   
            }
            
            if(e.localY > ellipse.y) {
                x = (Math.round(e.localY) / 100);
            } else {
                x = -(Math.round(e.localY) / 100);
            }
            
            ellipse.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS);
            ellipse.transform.matrix3D.prependRotation(x, Vector3D.X_AXIS);
        }
        
    }
}

prependScale

()método 
public function prependScale(xScale:Number, yScale:Number, zScale:Number):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Acrescenta uma alteração de dimensionamento incremental nos eixos x, y e z a um objeto Matrix3D. Quando o objeto Matrix3D é aplicado a um objeto de exibição, a matriz executa as alterações de dimensionamento antes de outras transformações no objeto Matrix3D. As alterações são relativas ao objeto, relativas ao quadro de referência da posição e orientação originais. O fator de dimensionamento padrão é (1.0, 1.0, 1.0).

O dimensionamento é definido como um conjunto de três alterações incrementais ao longo dos três eixos (x,y,z). Você pode multiplicar cada eixo por um número diferente. Quando as alterações de dimensionamento são aplicadas a um objeto de exibição, o tamanho do objeto aumenta ou diminui. Por exemplo, se os eixos x, y e z forem definidos como dois, o tamanho do objeto será duplicado e, se eles forem definidos como 0,5, o tamanho será dividido por dois. Para que a transformação de dimensionamento afete somente um eixo específico, defina os outros parâmetros como um. Um parâmetro de valor um significa que não há alterações de dimensionamento no eixo específico.

O método prependScale() pode ser usado para redimensionar e também para gerenciar distorções, por exemplo, expansão ou contração de um objeto de exibição. Ele pode ser usado também para aplicar mais zoom ou menos zoom a um local. As transformações de dimensionamento são realizadas automaticamente durante a rotação e a translação do objeto de exibição.

A ordem de transformação é importante. Um redimensionamento seguido de uma transformação de translação produz um efeito diferente de uma translação seguida de uma transformação de redimensionamento.

Parâmetros

xScale:Number — Um multiplicador usado para dimensionar o objeto ao longo do eixo x.
 
yScale:Number — Um multiplicador usado para dimensionar o objeto ao longo do eixo y.
 
zScale:Number — Um multiplicador usado para dimensionar o objeto ao longo do eixo z.

Elementos da API relacionados

prependTranslation

()método 
public function prependTranslation(x:Number, y:Number, z:Number):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Acrescenta uma translação incremental, um reposicionamento ao longo dos eixos x, y e z, a um objeto Matrix3D. Quando o objeto Matrix3D é aplicado a um objeto de exibição, a matriz executa as alterações de translação antes de outras transformações no objeto Matrix3D.

A translação especifica a distância que o objeto de exibição percorre, a partir de sua localização atual, nos eixos x, y e z. O método prependTranslation() define a translação como um conjunto de três alterações incrementais ao longo dos três eixos (x,y,z). Para que haja alteração de translação somente em um eixo específico, defina os outros parâmetros como zero. Um parâmetro zero significa que não há alterações no eixo específico.

As alterações de translação não são absolutas. O efeito é relativo ao objeto, relativo ao quadro de referência da posição e orientação originais. Para fazer uma alteração absoluta na matriz de transformação, use o método recompose(). A ordem de transformação também é importante. Uma translação seguida de uma transformação de rotação produz um efeito diferente de uma rotação seguida de uma transformação de translação. Quando o método prependTranslation() é usado, o objeto de exibição continua se movimentando na direção para a qual está voltada, independentemente das outras transformações. Por exemplo, se um objeto de exibição estiver voltado para um eixo x positivo, ele continuará se movimentando na direção especificada pelo método prependTranslation(), independentemente de como o objeto seja girado. Para que as alterações de translação ocorram depois de outras transformações, use o método appendTranslation().

Parâmetros

x:Number — Uma translação incremental ao longo do eixo x.
 
y:Number — Uma translação incremental ao longo do eixo y.
 
z:Number — Uma translação incremental ao longo do eixo z.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

Nesse exemplo, o usuário pode empurrar uma elipse para cima do eixo y do palco usando o mouse. Quando o usuário move o mouse sobre a elipse, a elipse salta dez coordenadas para cima do eixo y. Ao mover o mouse para fora da elipse, se a elipse não tiver atingido o topo, ela saltará novamente dez coordenadas para cima do eixo y. Quando a elipse atingir o topo, ela voltará para a parte inferior do palco.
package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.geom.*;
    import flash.events.MouseEvent;

    public class Matrix3DprependTranslationExample extends MovieClip {
        private var ellipse:Sprite = new Sprite();

        public function Matrix3DprependTranslationExample():void {
            ellipse.x = this.stage.stageWidth / 2;
            ellipse.y = this.stage.stageHeight - 100;
            ellipse.z = 1;
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(0, 0, 60, 50);
            ellipse.graphics.endFill();
            addChild(ellipse);

            ellipse.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
            ellipse.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
        }

        private function mouseOverHandler(e:MouseEvent):void {
            if(ellipse.y > 0) { 
                ellipse.transform.matrix3D.prependTranslation(0, -10, 0);
            } 
        }
        
        private function mouseOutHandler(e:MouseEvent):void {
            if(ellipse.y > 0) { 
                ellipse.transform.matrix3D.prependTranslation(0, -10, 0);
            } else {
                ellipse.transform.matrix3D.prependTranslation(0, 
                                     (this.stage.stageHeight - 100), 0);
            }   
        }
    }
}

recompose

()método 
public function recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Define as configurações de translação, rotação e dimensionamento da matriz de transformação. Ao contrário das alterações incrementais feitas pelas propriedades de rotação do objeto de exibição ou pelos métodos de rotação do objeto Matrix3D, as alterações feitas pelo método recompose() são alterações absolutas. O método recompose() substitui a transformação da matriz.

Para modificar a transformação da matriz com um quadro de referência pai absoluto, recupere as configurações com o método decompose() e faça as alterações apropriadas. Assim, você pode definir o objeto Matrix3D como a transformação modificada usando o método recompose().

O parâmetro do método recompose() especifica o estilo de orientação usado na transformação. A orientação padrão é eulerAngles, que define a orientação com três ângulos separados de rotação para cada eixo. As rotações ocorrem consecutivamente e não alteram o eixo um do outro. As propriedades do eixo do objeto de exibição executam a transformação do estilo de orientação Ângulos de Euler. As outras opções de estilo de orientação são axisAngle e quaternion. A orientação de tipo Ângulo do eixo usa uma combinação de um eixo e um ângulo para determinar a orientação. O eixo ao redor do qual o objeto gira é um vetor unitário que representa uma direção. O ângulo representa a magnitude da rotação sobre o vetor. A direção também determina o lado para o qual um objeto de exibição está voltado e o ângulo determina o trajeto de movimentação. Os métodos appendRotation() e prependRotation() utilizam a orientação Ângulo do eixo. A orientação de quatérnion utiliza números complexos e o quarto elemento de um vetor. Uma orientação é representada pelos três eixos de rotação (x,y,z) e um ângulo de rotação (w). O método interpolate() utiliza o quatérnion.

Parâmetros

components:Vector.<Vector3D> — Um Vector de três objetos Vector3D que substitui os elementos da translação, rotação e dimensionamento do objeto Matrix3D.
 
orientationStyle:String (default = "eulerAngles") — Um parâmetro opcional que determina o estilo de orientação usado na transformação da matriz. Os três tipos de estilo de orientação são eulerAngles (constante EULER_ANGLES), axisAngle (constante AXIS_ANGLE) e quaternion (constante QUATERNION). Para obter informações adicionais sobre outro estilo de orientação, consulte a classe geom.Orientation3D.

Retorna
Boolean — Retorna falso se qualquer elemento do Vector3D do Vetor de componentes não existir ou for nulo.

Elementos da API relacionados

transformVector

()método 
public function transformVector(v:Vector3D):Vector3D

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Usa a matriz de transformação para transformar um objeto Vector3D de uma coordenada de espaço para outra. O objeto Vector3D retornado contém as novas coordenadas após a transformação. Todas as transformações de matriz, incluindo a translação, são aplicadas ao objeto Vector3D.

Se o resultado do método transformVector() tiver sido aplicado à posição de um objeto de exibição, somente a posição desse objeto será alterada. Os elementos de rotação e de dimensionamento do objeto de exibição permanecerão inalterados.

Observação: este método define automaticamente o componente w do Vector3D transmitido como 1.0.

Parâmetros

v:Vector3D — Um objeto Vector3D que tem as coordenadas que serão transformadas.

Retorna
Vector3D — Um objeto Vector3D com as coordenadas transformadas.

Elementos da API relacionados

transformVectors

()método 
public function transformVectors(vin:Vector.<Number>, vout:Vector.<Number>):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Usa a matriz de transformação para transformar um Vector de números de um espaço de coordenadas para outro. O método tranformVectors() interpreta cada grupo de três números do objeto Vector vEntrada como uma coordenada tridimensional (x,y,z) e coloca uma coordenada tridimensional transformada no objeto Vector vSaída. Todas as transformações de matriz, incluindo a translação, são aplicadas ao objeto Vector vEntrada. Você pode usar o método transformVectors() para renderizar e transformar um objeto 3D como uma malha. Uma malha é um conjunto de vértices que define a forma do objeto.

Parâmetros

vin:Vector.<Number> — Um Vector de números, em que cada grupo de três números é uma coordenada tridimensional (x,y,z) que será transformada.
 
vout:Vector.<Number> — Um Vector de números, em que cada grupo de três números é uma coordenada tridimensional transformada (x,y,z).

Elementos da API relacionados

transpose

()método 
public function transpose():void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10, AIR 1.5

Converte o objeto Matrix3D atual em uma matriz em que as linhas e colunas são trocadas. Por exemplo, se a propriedade rawData do objeto Matrix3D atual contiver os seguintes 16 números, 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34, o método transpose() interpretará cada grupo de quatro números como uma linha e transformará as linhas em colunas. O resultado será uma matriz com a propriedade rawData de: 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34.

O método transpose() substitui a matriz atual por uma matriz transposta. Para transpor uma matriz sem alterar a matriz atual, primeiramente copie a matriz atual usando o método clone() e depois aplique o método transpose() à copia.

Uma matriz ortogonal é uma matriz quadrada cuja transposição é igual ao seu inverso.





[ X ]Por que inglês?
O conteúdo na Referência do ActionScript 3.0 aparece em inglês

Nem todas as partes da Referência do ActionScript 3.0 estão traduzidas em todos os idiomas. Quando um elemento de um idioma não está traduzido, ele é exibido em inglês. Por exemplo, a classe ga.controls.HelpBox não está traduzida em nenhum idioma. Por isso, na versão da referência em português do Brasil, a classe ga.controls.HelpBox é exibida em inglês.