Guida di riferimento di ActionScript® 3.0 per la piattaforma Adobe® Flash®
Home  |  Nascondi elenco pacchetti e classi |  Pacchetti  |  Classi  |  Novità  |  Indice  |  Appendici  |  Perché in inglese?
Filtri: AIR 30.0 e versioni precedenti, Flash Player 30.0 e versioni precedenti, Flash Lite 4
Flex 4.6 e versioni precedenti, Flash Pro CS6 e versioni precedenti
Nascondi filtri
flash.geom 

Matrix3D  - AS3

Pacchettix

Primo livello
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

Elementi del linguaggio

Costanti globali
Funzioni globali
Operatori
Istruzioni, parole chiave e direttive
Tipi speciali

Appendici

Novità
Errori del compilatore
Avvisi del compilatore
Errori runtime
Migrazione a ActionScript 3
Set di caratteri supportati
Tag solo di MXML
Elementi XML di Motion
Tag Timed Text
Elenco degli elementi obsoleti
Costanti di implementazione dell’accessibilità
Utilizzare gli esempi ActionScript
Note legali
Pacchettoflash.geom
Classepublic class Matrix3D
EreditarietàMatrix3D Inheritance Object

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

La classe Matrix3D rappresenta una matrice di trasformazione che determina la posizione e l'orientamento dell'oggetto di visualizzazione tridimensionale (3D). La matrice può eseguire funzioni di trasformazione tra cui conversione (riposizionamento sull'asse x, y e z), rotazione e scala (ridimensionamento). La classe Matrix3D può eseguire anche una proiezione prospettica, che effettua la mappatura dei punti dallo spazio di coordinate tridimensionale a una visualizzazione bidimensionale (2D).

Una singola matrice può combinare varie trasformazioni e applicarle immediatamente a un oggetto di visualizzazione tridimensionale. Una matrice può ad esempio essere applicata alle coordinate tridimensionali per eseguire una rotazione seguita da una conversione.

Quando si imposta esplicitamente la proprietà z o una qualsiasi delle proprietà rotazione o scala di un oggetto di visualizzazione, viene automaticamente creato un oggetto Matrix3D corrispondente.

Potete accedere a un oggetto Matrix3D dell'oggetto di visualizzazione tridimensionale attraverso la proprietà transform.matrix3d. Gli oggetti bidimensionali non hanno un oggetto Matrix3D.

Il valore della proprietà z di un oggetto bidimensionale è zero e il valore della proprietà matrix3D è null.

Nota: se lo stesso oggetto Matrix3D viene assegnato a due diversi oggetti di visualizzazione, viene generato un errore di runtime.

La classe Matrix3D utilizza una matrice quadrata 4x4: una tabella di quattro righe e colonne di numeri che includono i dati per la trasformazione. Le prime tre righe della matrice includono i dati per ogni asse tridimensionale (x,y,z). Nell'ultima colonna sono presenti le informazioni sulla conversione. L'orientamento e il ridimensionamento dei dati sono inclusi nelle prime tre colonne. I fattori di scala sono i numeri diagonali nelle prime tre colonne. Di seguito è riportata una rappresentazione di elementi Matrix3D:

Elementi Matrix3D

Non è richiesto che conosciate la matematica delle matrici per utilizzare la classe Matrix3D. Fornisce metodi specifici che semplificano l'attività di trasformazione e proiezione, ad esempio appendTranslation(), appendRotation() o interpolateTo(). Per accedere agli elementi sottostanti della matrice, potete anche utilizzare i metodi decompose() e recompose() o la proprietà rawData.

Gli oggetti di visualizzazione memorizzano nella cache le proprietà di rotazione degli assi, in modo da avere una rotazione separata per ogni asse e gestire le diverse combinazioni delle rotazioni. Quando viene chiamato un metodo di un oggetto Matrix3D per trasformare un oggetto di visualizzazione, la cache di rotazione degli oggetti viene invalidata.

Altri esempi

Elementi API correlati



Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
  determinant : Number
[sola lettura] Un numero che determina se una matrice è invertibile.
Matrix3D
  position : Vector3D
Un oggetto Vector3D che include la posizione, le coordinate tridimensionali (x,y,z) di un oggetto di visualizzazione all'interno di un fotogramma di riferimento della trasformazione.
Matrix3D
  rawData : Vector.<Number>
Un vettore di 16 numeri, in cui ogni gruppo di quattro elementi è una colonna di una matrice 4x4.
Matrix3D
Metodi pubblici
 MetodoDefinito da
  
Matrix3D(v:Vector.<Number> = null)
Crea un oggetto Matrix3D.
Matrix3D
  
Aggiunge la matrice moltiplicando un altro oggetto Matrix3D per l'oggetto Matrix3D corrente.
Matrix3D
  
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Aggiunge una rotazione incrementale a un oggetto Matrix3D.
Matrix3D
  
appendScale(xScale:Number, yScale:Number, zScale:Number):void
Aggiunge una modifica in scala incrementale lungo gli assi x, y e z a un oggetto Matrix3D.
Matrix3D
  
Aggiunge una conversione incrementale, un riposizionamento lungo gli assi x, y e z, a un oggetto Matrix3D.
Matrix3D
  
Restituisce un nuovo oggetto Matrix3D che è la copia esatta dell'oggetto Matrix3D corrente.
Matrix3D
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Copia un oggetto Vector3D in una colonna specifica dell'oggetto Matrix3D chiamante.
Matrix3D
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Copia la colonna specifica dell'oggetto Matrix3D chiamante nell'oggetto Vector3D.
Matrix3D
  
copyFrom(sourceMatrix3D:Matrix3D):void
Copia tutti i dati di matrice dall'oggetto Matrix3D di origine all'oggetto Matrix3D chiamante.
Matrix3D
  
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copia tutti i dati di vettore dall'oggetto vettore di origine all'oggetto Matrix3D chiamante.
Matrix3D
  
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copia tutti i dati di matrice dall'oggetto Matrix3D chiamante al vettore fornito.
Matrix3D
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Copia un oggetto Vector3D in una riga specifica dell'oggetto Matrix3D chiamante.
Matrix3D
  
copyRowTo(row:uint, vector3D:Vector3D):void
Copia la riga specifica dell'oggetto Matrix3D chiamante nell'oggetto Vector3D.
Matrix3D
  
Matrix3D
  
decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Restituisce le impostazioni di conversione, rotazione e ridimensionamento della matrice di trasformazione come vettore di tre oggetti Vector3D.
Matrix3D
  
Utilizza la matrice di trasformazione senza gli elementi di conversione per trasformare un oggetto Vector3D da una coordinata dello spazio a un'altra.
Matrix3D
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
  
Converte la matrice corrente in una matrice di identità o di unità.
Matrix3D
  
interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
[statico] Esegue l'interpolazione delle trasformazioni di traslazione, rotazione e scala di una matrice verso quelle della matrice di destinazione.
Matrix3D
  
Esegue l'interpolazione di questa matrice verso le trasformazioni di traslazione, rotazione e scala della matrice di destinazione.
Matrix3D
  
Inverte la matrice corrente.
Matrix3D
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
  
pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Ruota l'oggetto di visualizzazione in modo che sia rivolto verso una posizione specificata.
Matrix3D
  
Anteporre una matrice moltiplicando l'oggetto Matrix3D corrente per un altro oggetto Matrix3D.
Matrix3D
  
prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Antepone una rotazione incrementale a un oggetto Matrix3D.
Matrix3D
  
prependScale(xScale:Number, yScale:Number, zScale:Number):void
Antepone una modifica in scala incrementale lungo gli assi x, y e z a un oggetto Matrix3D.
Matrix3D
  
Antepone una conversione incrementale, un riposizionamento lungo gli assi x, y e z, a un oggetto Matrix3D.
Matrix3D
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
  
recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Configura le impostazioni di conversione, rotazione e ridimensionamento della matrice di trasformazione.
Matrix3D
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
  
Utilizza una matrice di trasformazione per trasformare un oggetto Vector3D da una coordinata dello spazio a un'altra.
Matrix3D
  
Utilizza la matrice di trasformazione per trasformare un vettore di numeri da uno spazio di coordinate a un altro.
Matrix3D
  
Converte l'oggetto Matrix3D corrente in una matrice in cui righe e colonne sono scambiate.
Matrix3D
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
Descrizione delle proprietà

determinant

proprietà
determinant:Number  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Un numero che determina se una matrice è invertibile.

Un oggetto Matrix3D deve essere invertibile. Potete usare la proprietà determinant per verificare se l'oggetto Matrix3D è invertibile. Se determinant è pari a zero, non esiste un inverso della matrice. Se ad esempio un'intera riga o colonna di una matrice è pari a zero o se due righe o colonne sono uguali, determinant è pari a zero. La proprietà determinant viene utilizzata anche per risolvere una serie di equazioni.

Solo una matrice quadrata, come la classe Matrix3D, ha una proprietà determinant.



Implementazione
    public function get determinant():Number

Elementi API correlati

position

proprietà 
position:Vector3D

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Un oggetto Vector3D che include la posizione, le coordinate tridimensionali (x,y,z) di un oggetto di visualizzazione all'interno di un fotogramma di riferimento della trasformazione. La proprietà position consente di accedere immediatamente al vettore di conversione della matrice dell'oggetto di visualizzazione, senza la necessità di scomporre e ricomporre la matrice.

Con la proprietà position, potete ottenere e impostare gli elementi di conversione della matrice di trasformazione.



Implementazione
    public function get position():Vector3D
    public function set position(value:Vector3D):void

Elementi API correlati

rawData

proprietà 
rawData:Vector.<Number>

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Un vettore di 16 numeri, in cui ogni gruppo di quattro elementi è una colonna di una matrice 4x4.

Se la proprietà rawData è impostata su una matrice non invertibile, viene generata un'eccezione. L'oggetto Matrix3D deve essere invertibile. Se è necessaria una matrice non invertibile, create una sottoclasse dell'oggetto Matrix3D.



Implementazione
    public function get rawData():Vector.<Number>
    public function set rawData(value:Vector.<Number>):void

Elementi API correlati

Descrizione della funzione di costruzione

Matrix3D

()Funzione di costruzione
public function Matrix3D(v:Vector.<Number> = null)

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Crea un oggetto Matrix3D. Gli oggetti Matrix3D possono essere inizializzati con un vettore di 16 numeri, in cui ogni gruppo di quattro elementi è una colonna. Dopo avere creato un oggetto Matrix3D, potete accedere agli elementi della relativa matrice con la proprietà rawData.

Se non viene definito un parametro, la funzione di costruzione genera un oggetto Matrix3D di identità o unità. Nella notazione di matrici, una matrice di identità ha un valore uno per tutti gli elementi nella posizione diagonale principale e un valore zero per tutti gli altri elementi. Il valore della proprietà rawData di una matrice di identità è: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1. Il valore della posizione o conversione della matrice di identità è Vector3D(0,0,0), l'impostazione della rotazione è Vector3D(0,0,0) il valore di scala è Vector3D(1,1,1).

Parametri
v:Vector.<Number> (default = null) — Un vettore di 16 numeri, in cui ogni gruppo di quattro elementi è una colonna di una matrice 4x4.

Elementi API correlati

Descrizione dei metodi

append

()metodo
public function append(lhs:Matrix3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Aggiunge la matrice moltiplicando un altro oggetto Matrix3D per l'oggetto Matrix3D corrente. Il risultato combina entrambe le trasformazioni mediante matrice. Potete moltiplicare un oggetto Matrix3D per molte matrici. L'oggetto Matrix3D finale contiene il risultato di tutte le trasformazioni.

La moltiplicazione di matrici è diversa dalla somma di matrici. La moltiplicazione di matrici non è commutativa. In altre parole, A per B non è uguale a B per A. Con il metodo append(), la moltiplicazione viene eseguita dal lato sinistro; ciò significa che l'oggetto Matrix3D lhs si trova sul lato sinistro dell'operatore di moltiplicazione.

thisMatrix = lhs * thisMatrix;

La prima volta che si chiama il metodo append(), viene effettuata una modifica relativa allo spazio principale. Le chiamate successive sono relative al fotogramma di riferimento dell'oggetto Matrix3D aggiunto.

Il metodo append() sostituisce la matrice corrente con quella aggiunta. Se desiderate aggiungere due matrici senza modificare la matrice corrente, copiate la matrice corrente con il metodo clone(), quindi applicate il metodo append() alla copia.

Parametri

lhs:Matrix3D — Una matrice sinistrorsa che viene moltiplicata per l'oggetto Matrix3D corrente.

Elementi API correlati

appendRotation

()metodo 
public function appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Aggiunge una rotazione incrementale a un oggetto Matrix3D. Quando l'oggetto Matrix3D viene applicato a un oggetto di visualizzazione, la matrice esegue la rotazione dopo altre trasformazioni nell'oggetto Matrix3D.

La rotazione dell'oggetto di visualizzazione è definita da un asse, un grado incrementale di rotazione intorno all'asse e da un punto "pivot" opzionale per il centro della rotazione dell'oggetto. L'asse può essere una qualsiasi direzione generale. Gli assi comuni sono X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) e Z_AXIS (Vector3D(0,0,1)). Secondo la terminologia utilizzata in aviazione, la rotazione intorno all'asse y è detta imbardata. La rotazione intorno all'asse x è detta beccheggio. La rotazione intorno all'asse z è detta rollio.

L'ordine di trasformazione è significativo. Una rotazione seguita da una trasformazione di conversione produce un effetto diverso rispetto a una conversione seguita da una trasformazione di rotazione.

L'effetto di rotazione non è assoluto. È relativo alla posizione e all'orientamento correnti. Per effettuare modifiche assolute alla matrice di trasformazione, utilizzate il metodo recompose(). Il metodo appendRotation() è diverso anche dalla proprietà di rotazione dell'asse dell'oggetto di visualizzazione, ad esempio la proprietà rotationX. La proprietà di rotazione viene sempre eseguita prima di qualsiasi conversione, mentre il metodo appendRotation() viene eseguito in relazione agli elementi già presenti nella matrice. Per accertarsi di ottenere un effetto simile alla proprietà di rotazione dell'asse dell'oggetto di visualizzazione, utilizzate il metodo prependRotation(), che esegue la rotazione prima di altre trasformazioni nella matrice.

Quando la trasformazione del metodo appendRotation() viene applicata a un oggetto Matrix3D di un oggetto di visualizzazione, i valori della proprietà di rotazione dell'oggetto di visualizzazione memorizzati nella cache vengono invalidati.

Un modo per ottenere che un oggetto di visualizzazione ruoti intorno a un punto specifico relativo alla sua posizione, consiste nell'impostare la conversione dell'oggetto sul punto specificato, ruotare l'oggetto utilizzando il metodo appendRotation() e riconvertire l'oggetto nella posizione originale. Nell'esempio seguente, l'oggetto di visualizzazione tridimensionale myObject esegue una rotazione dell'asse y intorno alla coordinata (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);
     
    

Parametri

degrees:Number — Il grado di rotazione.
 
axis:Vector3D — L'asse o la direzione di rotazione. Gli assi abituali sono X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) e Z_AXIS (Vector3D(0,0,1)). Questo vettore deve avere una lunghezza pari a 1.
 
pivotPoint:Vector3D (default = null) — Un punto che determina il centro della rotazione di un oggetto. Il punto "pivot" predefinito per un oggetto è il suo punto di registrazione.

Elementi API correlati

appendScale

()metodo 
public function appendScale(xScale:Number, yScale:Number, zScale:Number):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Aggiunge una modifica in scala incrementale lungo gli assi x, y e z a un oggetto Matrix3D. Quando l'oggetto Matrix3D viene applicato a un oggetto di visualizzazione, la matrice esegue le modifiche in scala dopo altre trasformazioni nell'oggetto Matrix3D. Il fattore di scala predefinito è (1.0, 1.0, 1.0).

Il ridimensionamento in scala è definito come un insieme di tre modifiche incrementali lungo gli assi (x,y,z). Potete moltiplicare ogni asse con un numero diverso. Quando le modifiche in scala vengono applicate a un oggetto di visualizzazione, le dimensioni dell'oggetto aumentano o diminuiscono. Impostando ad esempio gli assi x, y e z su due, si raddoppiano le dimensioni dell'oggetto, mentre impostando gli assi su 0.5 si dimezzano le dimensioni. Per accertarsi che la trasformazione in scala abbia effetto solo su un asse specifico, impostate gli altri parametri su zero. Un parametro pari a uno significa nessuna modifica in scala lungo l'asse specifico.

Il metodo appendScale() può essere utilizzato per il ridimensionamento oltre che per la gestione delle distorsioni, ad esempio l'allungamento o la contrazione di un oggetto di visualizzazione, oppure per l'ingrandimento o la riduzione di una posizione. Le trasformazioni in scala vengono eseguite automaticamente durante la rotazione e conversione dell'oggetto di visualizzazione.

L'ordine di trasformazione è significativo. Un ridimensionamento seguito da una trasformazione di conversione produce un effetto diverso rispetto a una conversione seguita da una trasformazione di ridimensionamento.

Parametri

xScale:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse x.
 
yScale:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse y.
 
zScale:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse z.

Elementi API correlati

appendTranslation

()metodo 
public function appendTranslation(x:Number, y:Number, z:Number):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Aggiunge una conversione incrementale, un riposizionamento lungo gli assi x, y e z, a un oggetto Matrix3D. Quando l'oggetto Matrix3D viene applicato a un oggetto di visualizzazione, la matrice esegue le modifiche di conversione dopo altre trasformazioni nell'oggetto Matrix3D.

La conversione è definita come un insieme di tre modifiche incrementali lungo gli assi (x,y,z). Quando la trasformazione viene applicata a un oggetto di visualizzazione, questo viene spostato dalla posizione corrente lungo gli assi x, y e z secondo quanto specificato dai parametri. Per accertarsi che la conversione abbia effetto solo su un asse specifico, impostate gli altri parametri su zero. Un parametro pari a zero significa nessuna modifica lungo l'asse specifico.

Le modifiche di conversione non sono assolute. Sono relative alla posizione e all'orientamento correnti della matrice. Per effettuare modifiche assolute alla matrice di trasformazione, utilizzate il metodo recompose(). Anche l'ordine di trasformazione è significativo. Una conversione seguita da una trasformazione di rotazione produce un effetto diverso rispetto a una rotazione seguita da una conversione.

Parametri

x:Number — Una conversione incrementale lungo l'asse x.
 
y:Number — Una conversione incrementale lungo l'asse y.
 
z:Number — Una conversione incrementale lungo l'asse z.

Elementi API correlati

clone

()metodo 
public function clone():Matrix3D

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Restituisce un nuovo oggetto Matrix3D che è la copia esatta dell'oggetto Matrix3D corrente.

Restituisce
Matrix3D — Un nuovo oggetto Matrix3D che è la copia esatta dell'oggetto Matrix3D corrente.

copyColumnFrom

()metodo 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia un oggetto Vector3D in una colonna specifica dell'oggetto Matrix3D chiamante.

Parametri

column:uint — La colonna di destinazione della copia.
 
vector3D:Vector3D — L'oggetto Vector3D da cui copiare i dati.

copyColumnTo

()metodo 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia la colonna specifica dell'oggetto Matrix3D chiamante nell'oggetto Vector3D.

Parametri

column:uint — La colonna da cui copiare i dati.
 
vector3D:Vector3D — L'oggetto Vector3D di destinazione della copia.

copyFrom

()metodo 
public function copyFrom(sourceMatrix3D:Matrix3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia tutti i dati di matrice dall'oggetto Matrix3D di origine all'oggetto Matrix3D chiamante.

Parametri

sourceMatrix3D:Matrix3D — L'oggetto Matrix3D da cui copiare i dati.

copyRawDataFrom

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

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia tutti i dati di vettore dall'oggetto vettore di origine all'oggetto Matrix3D chiamante. Il parametro opzionale index permette di selezionare qualunque slot iniziale nel vettore.

Parametri

vector:Vector.<Number> — L'oggetto vettore da cui copiare i dati.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRawDataTo

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

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia tutti i dati di matrice dall'oggetto Matrix3D chiamante al vettore fornito. Il parametro opzionale index permette di selezionare qualunque slot iniziale di destinazione nel vettore.

Parametri

vector:Vector.<Number> — L'oggetto vettore in cui copiare i dati.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRowFrom

()metodo 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia un oggetto Vector3D in una riga specifica dell'oggetto Matrix3D chiamante.

Parametri

row:uint — La riga in cui copiare i dati.
 
vector3D:Vector3D — L'oggetto Vector3D da cui copiare i dati.

copyRowTo

()metodo 
public function copyRowTo(row:uint, vector3D:Vector3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11, AIR 3.0, Flash Lite 4

Copia la riga specifica dell'oggetto Matrix3D chiamante nell'oggetto Vector3D.

Parametri

row:uint — La riga da cui copiare i dati.
 
vector3D:Vector3D — L'oggetto Vector3D in cui copiare i dati.

copyToMatrix3D

()metodo 
public function copyToMatrix3D(dest:Matrix3D):void

Parametri

dest:Matrix3D

decompose

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

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Restituisce le impostazioni di conversione, rotazione e ridimensionamento della matrice di trasformazione come vettore di tre oggetti Vector3D. Il primo oggetto Vector3D include gli elementi di conversione. Il secondo oggetto Vector3D include gli elementi di rotazione. Il terzo oggetto Vector3D include gli elementi di scala.

Alcuni metodi Matrix3D, ad esempio il metodo interpolateTo(), scompone e ricompone automaticamente la matrice per eseguire la trasformazione.

Per modificare la trasformazione della matrice con un fotogramma di riferimento principale assoluto, recuperate le impostazioni con il metodo decompose() e apportate le modifiche appropriate. Potete quindi impostare l'oggetto Matrix3D sulla trasformazione modificata utilizzando il metodo recompose().

Il parametro del metodo decompose() specifica lo stile di orientamento destinato ad essere utilizzato per la trasformazione. L'orientamento predefinito è eulerAngles, che definisce l'orientamento con tre angoli di rotazione distinti per ogni asse. Le rotazioni si verificano consecutivamente e non modificano l'asse l'uno dall'altro. Le proprietà di rotazione degli assi dell'oggetto eseguono la trasformazione dello stile di orientamento degli angoli di Eulero. Le altre opzioni dello stile di orientamento sono axisAngle e quaternion. L'orientamento dell'angolo assiale utilizza una combinazione di un asse e un angolo per determinare l'orientamento. L'asse intorno al quale viene ruotato l'oggetto è un vettore unitario che rappresenta una direzione. L'angolo rappresenta la grandezza della rotazione intorno al vettore. La direzione determina inoltre il punto verso sui è rivolto un oggetto di visualizzazione, mentre l'angolo determina quale lato è in alto. I metodi appendRotation() e prependRotation() utilizzano l'orientamento dell'angolo assiale. L'orientamento del quaternione utilizza numeri complessi e il quarto elemento di un vettore. I tre assi di rotazione (x,y,z) e un angolo di rotazione (w) rappresentano l'orientamento. Il metodo interpolate() utilizza quaternioni.

Parametri

orientationStyle:String (default = "eulerAngles") — Un parametro opzionale che determina lo stile di orientamento utilizzato per la trasformazione della matrice. I tre tipi di stili di orientamento sono eulerAngles (costante EULER_ANGLES), axisAngle (costante AXIS_ANGLE), e quaternion (costante QUATERNION). Per ulteriori informazioni sul diverso stile di orientamento, fate riferimento alla classe geom.Orientation3D.

Restituisce
Vector.<Vector3D> — Un vettore di tre oggetti Vector3D, ognuno contenente rispettivamente le impostazioni di conversione, rotazione e ridimensionamento.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

In questo esempio vengono utilizzati i metodi decompose() e recompose() per fare in modo che un'ellisse si allunghi orizzontalmente mentre si sposta verso il punto di fuga. Il primo oggetto Vector3D restituito dal metodo decompose() include le coordinate di conversione. Il terzo oggetto Vector3D include le impostazioni di scala. Il metodo incrementBy() dell'oggetto Vector3D aumenta le impostazioni di ridimensionamento e assolute della matrice.
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

()metodo 
public function deltaTransformVector(v:Vector3D):Vector3D

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Utilizza la matrice di trasformazione senza gli elementi di conversione per trasformare un oggetto Vector3D da una coordinata dello spazio a un'altra. L'oggetto Vector3D restituito include le nuove coordinate dopo che sono state applicate le trasformazioni di rotazione e ridimensionamento. Se il metodo deltaTransformVector() applica una matrice che contiene solo una trasformazione di conversione, l'oggetto Vector3D restituito coincide con l'oggetto Vector3D originale.

Potete utilizzare il metodo deltaTransformVector() per fare in modo che un oggetto di visualizzazione in uno spazio di coordinate risponda alla trasformazione di rotazione di un secondo oggetto di visualizzazione. L'oggetto non copia la rotazione; cambia solo al propria posizione per riflettere le modifiche nella rotazione. Per utilizzare ad esempio l'API display.Graphics per disegnare un oggetto di visualizzazione tridimensionale rotante, dovete mappare le coordinate di rotazione dell'oggetto a un punto bidimensionale. Innanzitutto, recuperate le coordinate tridimensionali dell'oggetto dopo ogni rotazione utilizzando il metodo deltaTransformVector(). Applicate quindi il metodo local3DToGlobal() dell'oggetto di visualizzazione per convertire le coordinate tridimensionali in punti bidimensionali. Potete quindi utilizzare i punti bidimensionali per disegnare l'oggetto tridimensionale rotante.

Nota: questo metodo imposta automaticamente il componente w del Vector3D passato su 0.0.

Parametri

v:Vector3D — Un oggetto Vector3D contenente le coordinate da trasformare.

Restituisce
Vector3D — Un oggetto Vector3D con le coordinate trasformate.

Elementi API correlati

identity

()metodo 
public function identity():void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Converte la matrice corrente in una matrice di identità o di unità. Una matrice di identità ha un valore uno per gli elementi sulla diagonale principale e un valore zero per tutti gli altri elementi. Il risultato è una matrice in cui il valore rawData è 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1 e la rotazione è impostata su Vector3D(0,0,0), la posizione o la conversione è impostata su Vector3D(0,0,0) e la scala su Vector3D(1,1,1). Di seguito è riportata una rappresentazione di una matrice di identità.

Matrice di identità

Un oggetto trasformato applicando una matrice di identità non esegue alcuna trasformazione. In altre parole, se una matrice viene moltiplicata per una matrice di identità, il risultato è una matrice uguale (identica) alla matrice originale.

interpolate

()metodo 
public static function interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Esegue l'interpolazione delle trasformazioni di traslazione, rotazione e scala di una matrice verso quelle della matrice di destinazione.

Il metodo interpolate() evita alcuni dei risultati indesiderati che possono verificarsi quando si utilizzano metodi quali le proprietà di rotazione degli assi dell'oggetto di visualizzazione. Il metodo interpolate() invalida il valore memorizzato nella cache della proprietà di rotazione dell'oggetto di visualizzazione e converte gli elementi di orientamento della matrice dell'oggetto di visualizzazione in un quaternione prima dell'interpolazione. Questo metodo assicura il percorso di rotazione più breve ed efficiente. Genera inoltre una rotazione omogenea e senza "gimbal lock". Un "gimbal lock" (accavallamento degli assi) può verificarsi quando si utilizzano gli angoli di Eulero, dove ogni asse viene gestita indipendentemente. Durante la rotazione intorno a due o più assi, questi possono allinearsi provocando risultati imprevisti. La rotazione basata su quaternione evita il "gimbal lock".

Le chiamate consecutive al metodo interpolate() possono produrre l'effetto in cui un oggetto di visualizzazione inizia ad avvicinarsi a un altro oggetto di visualizzazione prima rapidamente e poi lentamente. Se ad esempio impostate il parametro thisMat sull'oggetto Matrix3D restituito, il parametro toMat sull'oggetto Matrix3D associato all'oggetto di visualizzazione target e il parametro percent su 0.1, l'oggetto di visualizzazione si sposta del 10% verso l'oggetto target. Alle chiamate successive o nei fotogrammi successivi, l'oggetto si sposta il 10% del rimanente 90%, quindi il 10% della distanza rimanente e continua finché non raggiunge il target.

Parametri

thisMat:Matrix3D — L'oggetto Matrix3D da interpolare.
 
toMat:Matrix3D — L'oggetto Matrix3D target.
 
percent:Number — Un valore tra 0 e 1 che determina la percentuale di interpolazione dell'oggetto Matrix3D thisMat verso l'oggetto Matrix3D target.

Restituisce
Matrix3D — Un oggetto Matrix3D con elementi che inseriscono i valori della matrice tra la matrice originale e la matrice target. Quando la matrice restituita viene applicata all'oggetto di visualizzazione this, l'oggetto si sposta più vicino all'oggetto target in base alla percentuale specificata.

Elementi API correlati

interpolateTo

()metodo 
public function interpolateTo(toMat:Matrix3D, percent:Number):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Esegue l'interpolazione di questa matrice verso le trasformazioni di traslazione, rotazione e scala della matrice di destinazione.

Il metodo interpolateTo() evita i risultati indesiderati che possono verificarsi quando si utilizzano metodi quali le proprietà di rotazione degli assi dell'oggetto di visualizzazione. Il metodo interpolateTo() invalida il valore memorizzato nella cache della proprietà di rotazione dell'oggetto di visualizzazione e converte gli elementi di orientamento della matrice dell'oggetto di visualizzazione in un quaternione prima dell'interpolazione. Questo metodo assicura il percorso di rotazione più breve ed efficiente. Genera inoltre una rotazione omogenea e senza "gimbal lock". Un "gimbal lock" (accavallamento degli assi) può verificarsi quando si utilizzano gli angoli di Eulero, dove ogni asse viene gestita indipendentemente. Durante la rotazione intorno a due o più assi, questi possono allinearsi provocando risultati imprevisti. La rotazione basata su quaternione evita il "gimbal lock".

Nota: in caso di interpolazione, il valore di ridimensionamento della matrice viene ripristinato e la matrice viene normalizzata.

Le chiamate consecutive al metodo interpolateTo() possono produrre l'effetto in cui un oggetto di visualizzazione inizia ad avvicinarsi a un altro oggetto di visualizzazione prima rapidamente e poi lentamente. Se ad esempio il parametro percent è impostato su 0.1, l'oggetto di visualizzazione si sposta del 10% verso l'oggetto target specificato dal parametro toMat. Alle chiamate successive o nei fotogrammi successivi, l'oggetto si sposta il 10% del rimanente 90%, quindi il 10% della distanza rimanente e continua finché non raggiunge il target.

Parametri

toMat:Matrix3D — L'oggetto Matrix3D target.
 
percent:Number — Un valore tra 0 e 1 che determina la posizione dell'oggetto di visualizzazione relativa al target. Più il valore si avvicina a 1.0, più l'oggetto di visualizzazione è vicino alla sua posizione corrente. Più il valore si avvicina a 0, più l'oggetto di visualizzazione è vicino al target.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

In questo esempio, ellipse2, un oggetto di visualizzazione tridimensionale, si sposta verso ellipse1, un altro oggetto di visualizzazione tridimensionale. ellipse2 segue ellipse1 tentando di raggiungerlo. Se ellipse1 non ruota intorno al proprio asse y, ellipse2 raggiunge e si sovrappone a ellipse1. Le due ellissi vengono disegnate allo stesso modo ma inserite in posizioni diverse nello spazio dell'ambiente tridimensionale.
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

()metodo 
public function invert():Boolean

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Inverte la matrice corrente. Una matrice invertita ha le stesse dimensioni di quella originale, ma esegue la trasformazione opposta alla matrice originale. Se ad esempio la matrice originale fa in modo che un oggetto ruoti intorno all'asse x in una direzione, l'inverso della matrice imprime all'oggetto una rotazione intorno all'asse nella direzione opposta. Se si applica una matrice invertita a un oggetto, viene annullata la trasformazione eseguita dalla matrice originale. Se una matrice viene moltiplicata per la sua matrice inversa, il risultato è una matrice di identità.

Un inverso di una matrice può essere utilizzato per dividere una matrice per un'altra. Per dividere la matrice A per la matrice B, moltiplicate la matrice A per l'inverso della matrice B. La matrice inversa può essere utilizzata con lo spazio di una videocamera. Quando la videocamera si sposta nello spazio dell'ambiente, l'oggetto nell'ambiente deve spostarsi nella direzione opposta per consentire la trasformazione dalla visualizzazione dell'ambiente allo spazio della videocamera o di visualizzazione. Se ad esempio la videocamera si avvicina, gli oggetti diventano più grandi. In altre parole, se la videocamera si sposta in basso lungo l'asse z dell'ambiente, gli oggetti si spostano in alto lungo l'asse z dell'ambiente.

Il metodo invert() sostituisce la matrice corrente con una invertita. Se desiderate invertire una matrice senza modificare la matrice corrente, copiate per prima cosa la matrice corrente con il metodo clone(), quindi applicate il metodo invert() alla copia.

L'oggetto Matrix3D deve essere invertibile.

Restituisce
Boolean — Restituisce true se la matrice è stata invertita correttamente.

Elementi API correlati

pointAt

()metodo 
public function pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Ruota l'oggetto di visualizzazione in modo che sia rivolto verso una posizione specificata. Questo metodo consente la modifica in posizione dell'orientamento. Il vettore della direzione avanti dell'oggetto di visualizzazione (l'oggetto Vector3D at) punta alla posizione relativa all'ambiente specificata. La direzione su dell'oggetto di visualizzazione viene specificata con l'oggetto Vector3D up.

Il metodo pointAt() invalida il valore memorizzato nella cache della proprietà di rotazione dell'oggetto di visualizzazione. Il metodo scompone la matrice dell'oggetto di visualizzazione e modifica gli elementi di rotazione in modo che l'oggetto ruoti nella posizione specificata. Ricompone (aggiorna) quindi la matrice dell'oggetto di visualizzazione, che esegue la trasformazione. Se l'oggetto punta a un target in movimento, ad esempio alla posizione di un oggetto in movimento, a ogni successiva chiamata il metodo farà ruotare l'oggetto verso il target in movimento.

Nota: se si usa il metodo Matrix3D.pointAt() senza impostare i parametri opzionali, un oggetto target non punta per impostazione predefinita a una posizione relativa al mondo. Dovete impostare i valori at sull'asse -y (0,-1,0) e up sull'asse -z (0,0,-1).

Parametri

pos:Vector3D — La posizione relativa all'ambiente dell'oggetto target. Con "relativa all'ambiente" viene definita la trasformazione dell'oggetto in relazione allo spazio e alle coordinate dell'ambiente in cui sono posizionati tutti gli oggetti.
 
at:Vector3D (default = null) — Il vettore relativo all'oggetto che definisce la direzione verso cui punta l'oggetto. Con "relativo all'oggetto" viene definita la trasformazione dell'oggetto in relazione allo spazio dell'oggetto, il fotogramma di riferimento stesso dell'oggetto e il sistema di coordinate. Il valore predefinito è l'asse +y (0,1,0).
 
up:Vector3D (default = null) — Il vettore relativo all'oggetto che definisce la direzione "su" per l'oggetto di visualizzazione. Se disegnate l'oggetto rivolto dall'alto verso il basso, l'asse +z rappresenta il suo vettore "su". Con "relativo all'oggetto" viene definita la trasformazione dell'oggetto in relazione allo spazio dell'oggetto, il fotogramma di riferimento stesso dell'oggetto e il sistema di coordinate. Il valore predefinito è l'asse +z (0,0,1).

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

In questo esempio, un triangolo punta al e segue il percorso del movimento di un'ellisse. L'ellisse e il triangolo sono impostati su posizioni diverse. L'ellisse si sposta quindi in alto verso l'angolo dello stage. Il triangolo segue le modifiche di conversione dell'ellisse. Potete modificare la forma del triangolo e i parametri "at" e "up" di pointAt() per vedere l'impatto sul movimento del triangolo.
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

()metodo 
public function prepend(rhs:Matrix3D):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Anteporre una matrice moltiplicando l'oggetto Matrix3D corrente per un altro oggetto Matrix3D. Il risultato combina entrambe le trasformazioni mediante matrice.

La moltiplicazione di matrici è diversa dalla somma di matrici. La moltiplicazione di matrici non è commutativa. In altre parole, A per B non è uguale a B per A. Con il metodo prepend(), la moltiplicazione viene eseguita dal lato destro; ciò significa che l'oggetto Matrix3D rhs si trova sul lato destro dell'operatore di moltiplicazione.

thisMatrix = thisMatrix * rhs

Le modifiche apportate mediante il metodo prepend() sono relative allo spazio dell'oggetto. In altre parole, sono sempre relative al fotogramma iniziale di riferimento dell'oggetto.

Il metodo prepend() sostituisce la matrice corrente con quella anteposta. Se desiderate anteporre due matrici senza modificare la matrice corrente, copiate per prima cosa la matrice corrente con il metodo clone(), quindi applicate il metodo prepend() alla copia.

Parametri

rhs:Matrix3D — Un lato destro della matrice per cui viene moltiplicato l'oggetto Matrix3D corrente.

Elementi API correlati

prependRotation

()metodo 
public function prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Antepone una rotazione incrementale a un oggetto Matrix3D. Quando l'oggetto Matrix3D viene applicato a un oggetto di visualizzazione, la matrice esegue la rotazione prima di altre trasformazioni nell'oggetto Matrix3D.

La rotazione dell'oggetto di visualizzazione è definita da un asse, un grado incrementale di rotazione intorno all'asse e da un punto "pivot" opzionale per il centro della rotazione dell'oggetto. L'asse può essere una qualsiasi direzione generale. Gli assi comuni sono X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) e Z_AXIS (Vector3D(0,0,1)). Secondo la terminologia utilizzata in aviazione, la rotazione intorno all'asse y è detta imbardata. La rotazione intorno all'asse x è detta beccheggio. La rotazione intorno all'asse z è detta rollio.

L'ordine di trasformazione è significativo. Una rotazione seguita da una trasformazione di conversione produce un effetto diverso rispetto a una conversione seguita da una rotazione.

L'effetto di rotazione non è assoluto. L'effetto è relativo all'oggetto, relativo al fotogramma di riferimento della posizione e dell'orientamento originali. Per effettuare modifiche assolute alla trasformazione, utilizzate il metodo recompose().

Quando la trasformazione del metodo prependRotation() viene applicata a un oggetto Matrix3D di un oggetto di visualizzazione, i valori della proprietà di rotazione dell'oggetto di visualizzazione memorizzati nella cache vengono invalidati.

Un modo per ottenere che un oggetto di visualizzazione ruoti intorno a un punto specifico relativo alla sua posizione, consiste nell'impostare la conversione dell'oggetto sul punto specificato, ruotare l'oggetto utilizzando il metodo appendRotation() e riconvertire l'oggetto nella posizione originale. Nell'esempio seguente, l'oggetto di visualizzazione tridimensionale myObject esegue una rotazione dell'asse y intorno alla coordinata (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);
     
    

Parametri

degrees:Number — Il grado di rotazione.
 
axis:Vector3D — L'asse o la direzione di rotazione. Gli assi abituali sono X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) e Z_AXIS (Vector3D(0,0,1)). Questo vettore deve avere una lunghezza pari a 1.
 
pivotPoint:Vector3D (default = null) — Un punto che determina il centro della rotazione. Il punto "pivot" predefinito per un oggetto è il suo punto di registrazione.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

In questo esempio, l'utente può spostare il mouse per ruotare un'ellisse intorno ai suoi assi x e y. L'ellisse viene disegnata con il punto di registrazione al centro. L'ellisse ruota intorno al proprio asse y utilizzando la coordinata x del mouse. Ruota intorno al proprio asse x utilizzando la coordinata y del 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

()metodo 
public function prependScale(xScale:Number, yScale:Number, zScale:Number):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Antepone una modifica in scala incrementale lungo gli assi x, y e z a un oggetto Matrix3D. Quando l'oggetto Matrix3D viene applicato a un oggetto di visualizzazione, la matrice esegue le modifiche in scala prima delle altre trasformazioni nell'oggetto Matrix3D. Le modifiche sono relative all'oggetto, relative al fotogramma di riferimento della posizione e dell'orientamento originali. Il fattore di scala predefinito è (1.0, 1.0, 1.0).

Il ridimensionamento in scala è definito come un insieme di tre modifiche incrementali lungo gli assi (x,y,z). Potete moltiplicare ogni asse con un numero diverso. Quando le modifiche in scala vengono applicate a un oggetto di visualizzazione, le dimensioni dell'oggetto aumentano o diminuiscono. Impostando ad esempio gli assi x, y e z su due, si raddoppiano le dimensioni dell'oggetto, mentre impostando gli assi su 0.5 si dimezzano le dimensioni. Per accertarsi che la trasformazione in scala abbia effetto solo su un asse specifico, impostate gli altri parametri su zero. Un parametro pari a uno significa nessuna modifica in scala lungo l'asse specifico.

Il metodo prependScale() può essere utilizzato per il ridimensionamento oltre che per la gestione delle distorsioni, ad esempio l'allungamento o la contrazione di un oggetto di visualizzazione. Può essere utilizzato anche per l'ingrandimento o la riduzione di una posizione. Le trasformazioni in scala vengono eseguite automaticamente durante la rotazione e conversione dell'oggetto di visualizzazione.

L'ordine di trasformazione è significativo. Un ridimensionamento seguito da una trasformazione di conversione produce un effetto diverso rispetto a una conversione seguita da una trasformazione di ridimensionamento.

Parametri

xScale:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse x.
 
yScale:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse y.
 
zScale:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse z.

Elementi API correlati

prependTranslation

()metodo 
public function prependTranslation(x:Number, y:Number, z:Number):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Antepone una conversione incrementale, un riposizionamento lungo gli assi x, y e z, a un oggetto Matrix3D. Quando l'oggetto Matrix3D viene applicato a un oggetto di visualizzazione, la matrice esegue le modifiche di conversione prima delle altre trasformazioni nell'oggetto Matrix3D.

La conversione specifica la distanza di spostamento dell'oggetto di visualizzazione dalla posizione corrente lungo gli assi x, y e z. Il metodo prependTranslation() imposta la conversione come un insieme di tre modifiche incrementali lungo gli assi (x,y,z). Per fare in modo che una conversione modifichi solo un asse specifico, impostate gli altri parametri su zero. Un parametro pari a zero significa nessuna modifica lungo l'asse specifico.

Le modifiche di conversione non sono assolute. L'effetto è relativo all'oggetto, relativo al fotogramma di riferimento della posizione e dell'orientamento originali. Per effettuare modifiche assolute alla matrice di trasformazione, utilizzate il metodo recompose(). Anche l'ordine di trasformazione è significativo. Una conversione seguita da una trasformazione di rotazione produce un effetto diverso rispetto a una rotazione seguita da una trasformazione di conversione. Quando utilizzate prependTranslation(), l'oggetto di visualizzazione continua a spostarsi nella direzione verso cui è rivolto, indipendentemente da altre trasformazioni. Se ad esempio un oggetto di visualizzazione è rivolto verso un asse x positivo, continua a spostarsi nella direzione specificata dal metodo prependTranslation(), indipendentemente dal modo in cui l'oggetto è stato ruotato. Per fare in modo che le modifiche di trasformazione vengano eseguite dopo altre trasformazioni, utilizzate il metodo appendTranslation().

Parametri

x:Number — Una conversione incrementale lungo l'asse x.
 
y:Number — Una conversione incrementale lungo l'asse y.
 
z:Number — Una conversione incrementale lungo l'asse z.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

In questo esempio l'utente può spingere un'ellisse verso l'alto lungo l'asse y dello stage utilizzando il mouse. Quando l'utente sposta il mouse sopra l'ellisse, questa si sposta di dieci coordinate verso l'alto lungo l'asse y. Quando l'utente allontana il mouse dall'ellisse, se questa non ha raggiunto il lato superiore, viene spostata di nuovo di dieci coordinate verso l'alto lungo l'asse y. Una volta che l'ellisse ha raggiunto il lato superiore, viene spostata di nuovo nella parte inferiore dello stage.
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

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

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Configura le impostazioni di conversione, rotazione e ridimensionamento della matrice di trasformazione. A differenza delle modifiche incrementali effettuate dalle proprietà di rotazione dell'oggetto di visualizzazione o dai metodi di rotazione dell'oggetto Matrix3D, le modifiche apportate dal metodo recompose() sono assolute. Il metodo recompose() sovrascrive la trasformazione della matrice.

Per modificare la trasformazione della matrice con un fotogramma di riferimento principale assoluto, recuperate le impostazioni con il metodo decompose() e apportate le modifiche appropriate. Potete quindi impostare l'oggetto Matrix3D sulla trasformazione modificata utilizzando il metodo recompose().

Il parametro del metodo recompose() specifica lo stile di orientamento utilizzato per la trasformazione. L'orientamento predefinito è eulerAngles, che definisce l'orientamento con tre angoli di rotazione distinti per ogni asse. Le rotazioni si verificano consecutivamente e non modificano l'asse l'uno dall'altro. Le proprietà di rotazione degli assi dell'oggetto eseguono la trasformazione dello stile di orientamento degli angoli di Eulero. Le altre opzioni dello stile di orientamento sono axisAngle e quaternion. L'orientamento dell'angolo assiale utilizza la combinazione di un asse e un angolo per determinare l'orientamento. L'asse intorno al quale viene ruotato l'oggetto è un vettore unitario che rappresenta una direzione. L'angolo rappresenta la grandezza della rotazione intorno al vettore. La direzione determina inoltre il punto verso sui è rivolto un oggetto di visualizzazione, mentre l'angolo determina quale lato è in alto. I metodi appendRotation() e prependRotation() utilizzano l'orientamento dell'angolo assiale. L'orientamento del quaternione utilizza numeri complessi e il quarto elemento di un vettore. Un orientamento è rappresentato dai tre assi di rotazione (x,y,z) e un angolo di rotazione (w). Il metodo interpolate() utilizza quaternioni.

Parametri

components:Vector.<Vector3D> — Un vettore di tre oggetti Vector3D che sostituiscono gli elementi di conversione, rotazione e ridimensionamento dell'oggetto Matrix3D.
 
orientationStyle:String (default = "eulerAngles") — Un parametro opzionale che determina lo stile di orientamento utilizzato per la trasformazione della matrice. I tre tipi di stili orientamento sono eulerAngles (costante EULER_ANGLES), axisAngle (costante AXIS_ANGLE), e quaternion (costante QUATERNION). Per ulteriori informazioni sul diverso stile di orientamento, fate riferimento alla classe geom.Orientation3D.

Restituisce
Boolean — Restituisce false se uno qualsiasi degli elementi Vector3D del vettore components non esiste o è null.

Elementi API correlati

transformVector

()metodo 
public function transformVector(v:Vector3D):Vector3D

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Utilizza una matrice di trasformazione per trasformare un oggetto Vector3D da una coordinata dello spazio a un'altra. L'oggetto Vector3D restituito include le nuove coordinate dopo la trasformazione. Tutte le trasformazioni della matrice, inclusa la conversione, vengono applicate all'oggetto Vector3D.

Se il risultato del metodo transformVector() è stato applicato alla posizione di un oggetto di visualizzazione, viene modificata solo la posizione dell'oggetto di visualizzazione. Gli elementi di rotazione e ridimensionamento dell'oggetto di visualizzazione rimangono gli stessi.

Nota: questo metodo imposta automaticamente il componente w dell’oggetto Vector3D passato su 1.0.

Parametri

v:Vector3D — Un oggetto Vector3D contenente le coordinate da trasformare.

Restituisce
Vector3D — Un oggetto Vector3D con le coordinate trasformate.

Elementi API correlati

transformVectors

()metodo 
public function transformVectors(vin:Vector.<Number>, vout:Vector.<Number>):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Utilizza la matrice di trasformazione per trasformare un vettore di numeri da uno spazio di coordinate a un altro. Il metodo tranformVectors() legge ogni gruppo di tre numeri nell'oggetto Vector vin come una coordinata tridimensionale (x,y,z) e inserisce una coordinata tridimensionale trasformata nell'oggetto Vector vout. Tutte le trasformazioni della matrice, inclusa la conversione, vengono applicate all'oggetto Vector vin. Potete utilizzare il metodo transformVectors() per il rendering e la trasformazione di un oggetto tridimensionale come una trama. Una trama è in insieme di vertici che definisce la forma dell'oggetto.

Parametri

vin:Vector.<Number> — Un vettore di numeri, in cui a ogni gruppo di tre numeri corrisponde una coordinata tridimensionale (x,y,z) da trasformare.
 
vout:Vector.<Number> — Un vettore di numeri, in cui a ogni gruppo di tre numeri corrisponde una coordinata tridimensionale (x,y,z) trasformata.

Elementi API correlati

transpose

()metodo 
public function transpose():void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5

Converte l'oggetto Matrix3D corrente in una matrice in cui righe e colonne sono scambiate. Se ad esempio rawData dell'oggetto Matrix3D corrente contiene i seguenti 16 numeri, 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34, il metodo transpose() legge ogni gruppo di quattro numeri come una riga e converte le righe in colonne. Il risultato è una matrice con rawData pari a: 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34.

Il metodo transpose() sostituisce la matrice corrente con una trasposta. Se desiderate trasporre una matrice senza modificare la matrice corrente, copiate per prima cosa la matrice corrente con il metodo clone(), quindi applicate il metodo transpose() alla copia.

Una matrice ortogonale è una matrice quadrata la sui trasposizione è uguale al suo inverso.





[ X ]Perché in inglese?
Il contenuto della Guida di riferimento di ActionScript 3.0 appare in inglese

Non tutte le parti della Guida di riferimento di ActionScript 3.0 sono tradotte in tutte le lingue. Quando un elemento del linguaggio non è tradotto, viene riportato in inglese. Ad esempio, la classe ga.controls.HelpBox non è tradotta in nessuna lingua. Pertanto, nella versione italiana della guida di riferimento, la descrizione della classe ga.controls.HelpBox è riportata in inglese.