ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: AIR 30.0 i wcześniejsze, Flash Player 30.0 i wcześniejsze, Flash Lite 4
Flex 4.6 i wcześniejsze, Flash Pro CS6 i wcześniejsze
Ukryj filtry
flash.geom 

Matrix3D  - AS3

Pakietyx

Najwyższy poziom
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

Elementy językowe

Stałe globalne
Funkcje globalne
Operatory
Instrukcje, słowa kluczowe i dyrektywy
Typy specjalne

Dodatki

Nowości
Błędy kompilatora
Ostrzeżenia kompilatora
Błędy czasu wykonywania
Migracja kodu ActionScript 3
Obsługiwane zestawy znaków
Tylko MXML
Elementy XML dotyczące ruchu
Znaczniki tekstu z synchronizacją czasową
Przestarzały indeks
Stałe implementacji dostępności
Instrukcje dotyczące przykładów
Informacje prawne
Pakietflash.geom
Klasapublic class Matrix3D
DziedziczenieMatrix3D Inheritance Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Klasa Matrix3D reprezentuje macierz transformacji wskazującą położenie i orientację trójwymiarowego obiektu wyświetlanego. Macierz może wykonać funkcje transformacji, łącznie z przesunięciem (wzdłuż osi x, y i z), obrotem i skalowaniem (zmianą rozmiaru). Klasa Matrix3D może wykonać rzut perspektywiczny, który odwzoruje punkty z przestrzeni trójwymiarowej na widok dwuwymiarowy.

Pojedyncza macierz może łączyć wiele transformacji i stosować je jednocześnie do trójwymiarowego obiektu wyświetlanego. Na przykład macierz można zastosować do współrzędnych trójwymiarowych w celu wykonania obrotu, a następnie translacji.

Jawne ustawienie właściwości z lub dowolnej z właściwości obrotu lub skalowania obiektu wyświetlanego powoduje automatyczne utworzenie odpowiedniego obiektu Matrix3D.

Dostęp do obiektu Matrix3D trójwymiarowego obiektu wyświetlanego można uzyskać za pomocą właściwości transform.matrix3d. Dwuwymiarowe obiekty nie mają obiektów Matrix3D.

Właściwość z obiektu dwuwymiarowego jest równa zero, a właściwość matrix 3D ma wartość null.

Uwaga: Jeśli ten sam obiekt Matrix3D jest przypisany do dwóch różnych obiektów wyświetlanych, zgłoszony zostanie błąd wykonania.

Klasa Matrix3D zawiera macierz kwadratową 4x4, tj. tabelę złożoną z czterech wierszy i kolumn obiektów Number zawierającą dane transformacji. Pierwsze trzy wiersze macierzy zawierają dane dla każdej trójwymiarowej osi (x, y, z). W ostatniej kolumnie zapisane są informacje o translacji. Dane o orientacji i skalowaniu są przechowywane w pierwszych trzech kolumnach. Współczynniki skalowania to liczby na przekątnej macierzy w pierwszych trzech kolumnach. Oto reprezentacja elementów obiektu Matrix3D:

Elementy obiektu Matrix3D

Znajomość operacji na macierzach nie jest konieczna, aby korzystać z klasy Matrix3D. Klasa oferuje konkretne metody, które upraszczają zadania transformacji i rzutowania, takie jak appendTranslation(), appendRotation() lub interpolateTo(). Aby uzyskać dostęp do podstawowych elementów macierzy, można korzystać z metod decompose() i recompose() lub właściwości rawData.

Obiekty wyświetlane buforują właściwości obrotu osi, aby umożliwić odrębne obroty poszczególnych osi i zarządzać różnymi kombinacjami obrotów. Gdy metoda obiektu Matrix3D zostanie wywołana w celu dokonania transformacji obiektu wyświetlanego, pamięć podręczna obrotów obiektu zostaje unieważniona.

Powiązane elementy interfejsu API



Właściwości publiczne
 WłaściwośćZdefiniowane przez
 Inheritedconstructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu.
Object
  determinant : Number
[tylko do odczytu] Wartość Number określająca, czy macierz jest odwracalna.
Matrix3D
  position : Vector3D
Obiekt Vector3D zawierający pozycję, tj. współrzędne trójwymiarowe (x,y,z) obiektu wyświetlanego w klatce referencyjnej transformacji.
Matrix3D
  rawData : Vector.<Number>
Wektor 16 liczb, z których każde 4 elementy stanowią kolumnę w macierzy 4x4.
Matrix3D
Metody publiczne
 MetodaZdefiniowane przez
  
Matrix3D(v:Vector.<Number> = null)
Tworzy obiekt Matrix3D.
Matrix3D
  
Dołącza macierz, mnożąc inny obiekt Matrix3D przez bieżący obiekt Matrix3D.
Matrix3D
  
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Stosuje przyrostowy obrót do obiektu Matrix3D.
Matrix3D
  
appendScale(xScale:Number, yScale:Number, zScale:Number):void
Stosuje do obiektu Matrix3D przyrostowe przeskalowanie wzdłuż osi x, y i z.
Matrix3D
  
Stosuje do obiektu Matrix3D przyrostową translację, tj. zmianę położenia wzdłuż osi x, y i z.
Matrix3D
  
Zwraca nowy obiekt Matrix3D będący dokładną kopią bieżącego obiektu Matrix3D.
Matrix3D
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Kopiuje obiekt Vector3D do określonej kolumny wywołującego obiektu Matrix3D.
Matrix3D
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Kopiuje określoną kolumnę wywołującego obiektu Matrix3D do obiektu Vector3D.
Matrix3D
  
copyFrom(sourceMatrix3D:Matrix3D):void
Kopiuje wszystkie dane macierzy ze źródłowego obiektu Matrix3D do wywołującego obiektu Matrix3D.
Matrix3D
  
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Kopiuje wszystkie dane wektora ze źródłowego obiektu wektora do wywołującego obiektu Matrix3D.
Matrix3D
  
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Kopiuje wszystkie dane macierzy z wywołującego obiektu Matrix3D do podanego wektora.
Matrix3D
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Kopiuje obiekt Vector3D do określonego wiersza wywołującego obiektu Matrix3D.
Matrix3D
  
copyRowTo(row:uint, vector3D:Vector3D):void
Kopiuje określony wiersz wywołującego obiektu Matrix3D do obiektu Vector3D.
Matrix3D
  
Matrix3D
  
decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Zwraca ustawienia translacji, obrotu i skali macierzy transformacji jako obiekt Vector złożony z trzech obiektów Vector3D.
Matrix3D
  
Stosuje macierz transformacji, z wyjątkiem elementów translacji, w celu dokonania transformacji obiektu Vector 3D ze współrzędnych jednej przestrzeni na współrzędne innej przestrzeni.
Matrix3D
 Inherited
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość.
Object
  
Przekształca bieżącą macierz w macierz jednostkową.
Matrix3D
  
interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
[statyczny] Interpoluje przekształcenie translacji, obrotu i skalowania jednej macierzy w kierunku tego przekształcenia macierzy docelowej.
Matrix3D
  
Interpoluje tę macierz w kierunku przekształceń translacji, obrotu i skalowania macierzy docelowej.
Matrix3D
  
Odwraca bieżącą macierz
Matrix3D
 Inherited
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr.
Object
  
pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Obraca obiekt wyświetlany w taki sposób, aby był zwrócony do określonej pozycji.
Matrix3D
  
Dołącza macierz na początku transformacji, mnożąc bieżący obiekt Matrix3D przez inny obiekt Matrix3D.
Matrix3D
  
prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Poprzedzająco stosuje przyrostowy obrót do obiektu Matrix3D.
Matrix3D
  
prependScale(xScale:Number, yScale:Number, zScale:Number):void
Poprzedzająco stosuje do obiektu Matrix3D przyrostowe przeskalowanie wzdłuż osi x, y i z.
Matrix3D
  
Poprzedzająco stosuje do obiektu Matrix3D przyrostową translację, tj. zmianę położenia wzdłuż osi x, y i z.
Matrix3D
 Inherited
Wskazuje, czy określona właściwość istnieje i jest przeliczalna.
Object
  
recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Ustawia wartości translacji, obrotu i skali w macierzy.
Matrix3D
 Inherited
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
 Inherited
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych.
Object
 Inherited
Zwraca ciąg reprezentujący określony obiekt.
Object
  
Stosuje macierz transformacji w celu dokonania transformacji obiektu Vector3D ze współrzędnych jednej przestrzeni na współrzędne innej przestrzeni.
Matrix3D
  
Stosuje macierz transformacji w celu dokonania transformacji obiektu Vector zawierającego obiekty Number z jednej przestrzeni współrzędnych na inną.
Matrix3D
  
Przekształca bieżący obiekt Matrix3D w macierz, w której wiersze są zamienione na kolumny, a kolumny na wiersze.
Matrix3D
 Inherited
Zwraca pierwotną wartość dla określonego obiektu.
Object
Szczegół właściwości

determinant

właściwość
determinant:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Wartość Number określająca, czy macierz jest odwracalna.

Obiekt Matrix3D musi być odwracalny. W celu stwierdzenia, czy obiekt Matrix3D jest odwracalny, można użyć właściwości determinant, czyli wyznacznika macierzy. Jeśli wyznacznik jest równy zero, macierz odwrócona nie istnieje. Na przykład jeśli cały wiersz lub cała kolumna macierzy zawiera zera lub jeśli dwa wiersze lub dwie kolumny są równe, wyznacznik będzie równy zero. Wyznacznik jest także używany do rozwiązywania szeregu równań.

Wyznacznik mają tylko macierze kwadratowe, takie jak klasa Matrix3D.



Implementacja
    public function get determinant():Number

Powiązane elementy interfejsu API

position

właściwość 
position:Vector3D

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Obiekt Vector3D zawierający pozycję, tj. współrzędne trójwymiarowe (x,y,z) obiektu wyświetlanego w klatce referencyjnej transformacji. Właściwość position zapewnia bezpośredni dostęp do wektora translacji macierzy obiektu wyświetlanego, bez konieczności dekompozycji i ponownej kompozycji macierzy.

Za pomocą właściwości position można pobierać i ustawiać wartości elementów translacji w macierzy transformacji.



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

Powiązane elementy interfejsu API

rawData

właściwość 
rawData:Vector.<Number>

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Wektor 16 liczb, z których każde 4 elementy stanowią kolumnę w macierzy 4x4.

Jeśli właściwość rawData jest macierzą nieodwracalną, generowany jest wyjątek. Obiekt Matrix3D musi być odwracalny. Jeśli potrzebna jest macierz nieodwracalna, należy utworzyć podklasę obiektu Matrix3D.



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

Powiązane elementy interfejsu API

Konstruktor Szczegół

Matrix3D

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Tworzy obiekt Matrix3D. Obiekt Matrix3D można zainicjować za pomocą wektora zawierającego 16 liczb, gdzie każde cztery elementy definiują kolumnę. Po utworzeniu obiektu Matrix3D można uzyskiwać dostęp do elementów jego macierzy za pośrednictwem właściwości rawData.

Jeśli nie jest zdefiniowany żaden parametr, konstruktor generuje obiekt Matrix3D będący macierzą jednostkową. W zapisie macierzowym wszystkie elementy macierzy jednostkowej na przekątnej głównej mają wartości jeden, a pozostałe elementy tej macierzy mają wartość zero. Właściwość rawData macierzy jednostkowej jest równa: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1. Wartość położenia lub translacji macierzy jednostkowej wynosi Vector3D(0,0,0), ustawienie obrotu to Vector3D(0,0,0), a wartość skali to Vector3D(1,1,1).

Parametry
v:Vector.<Number> (default = null) — Wektor 16 liczb, z których każde 4 elementy stanowią kolumnę w macierzy 4x4.

Powiązane elementy interfejsu API

Szczegół metody

append

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Dołącza macierz, mnożąc inny obiekt Matrix3D przez bieżący obiekt Matrix3D. Wynikiem jest kombinacja transformacji opisanych przez obie macierze. Jeden obiekt Matrix3D można mnożyć przez wiele macierzy. Wynikowy obiekt Matrix3D zawiera wynik wszystkich transformacji.

Mnożenie macierzy różni się od dodawania macierzy. Mnożenie macierzy nie jest przemienne. Innymi słowy, A razy B nie równa się B razy A. Metoda append() wykonuje mnożenie od lewej strony, co oznacza że obiekt Matrix3D lhs znajduje się po lewej stronie operatora mnożenia.

thisMatrix = lhs * thisMatrix;

Po pierwszym wywołaniu metody append() wprowadza ona modyfikacje względem przestrzeni nadrzędnej. Kolejne wywołania operują na klatce referencyjnej dołączonego obiektu Matrix3D.

Metoda append() zastępuje macierz bieżącą macierzą dołączoną. Aby dołączyć dwie macierze bez zmiany macierzy bieżącej, należy skopiować macierz bieżącą za pomocą metody clone(), a następnie zastosować metodę append() do kopii.

Parametry

lhs:Matrix3D — Macierz po lewej stronie jest mnożona przez bieżący obiekt Matrix3D.

Powiązane elementy interfejsu API

appendRotation

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Stosuje przyrostowy obrót do obiektu Matrix3D. Zastosowanie obiektu Matrix3D do obiektu wyświetlanego powoduje wykonanie obrotu po innych transformacjach opisanych przez obiekt Matrix3D.

Obrót obiektu wyświetlanego jest zdefiniowany przez oś, stopień przyrostowego obrotu wokół osi oraz opcjonalny punkt będący środkiem obrotu obiektu. Osią może być dowolny kierunek ogólny. Najbardziej popularne osie są następujące: X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) i Z_AXIS (Vector3D(0,0,1)). W terminologii lotniczej obrót wokół osi y jest nazywany odchyleniem. Obrót wokół osi x jest nazywany pochyleniem. Obrót wokół osi z jest nazywany przechyłem.

Kolejność przekształceń ma znaczenie. Obrót, po którym następuje translacja daje inny efekt niż translacja, po której następuje obrót.

Obrót nie jest bezwzględny. Następuje względem bieżącej pozycji i orientacji. Aby wprowadzić bezwzględną zmianę w macierzy transformacji, należy skorzystać z metody recompose(). Metoda appendRotation() różni się też pod względem działania od właściwości obrotu obiektu wyświetlanego, np. właściwości rotationX. Właściwość obrotu jest zawsze uwzględniana przed translacjami, podczas gdy metoda appendRotation() jest wykonywana względem aktualnego stanu macierzy. Aby uzyskać efekt podobny do uzyskiwanego za pomocą macierzy obrotu obiektu wokół osi, należy użyć metody prependRotation(), która wykonuje obrót przed innymi transformacjami w macierzy.

Zastosowanie metody appendRotation() do obiektu Matrix3D obiektu wyświetlanego powoduje unieważnienie wartości właściwości obrotu obiektu zapisanych w pamięci podręcznej.

Jednym ze sposobów obrócenia obiektu wyświetlanego wokół konkretnego punktu względem jego położenia jest translacja obiektu do określonego punktu, obrócenie obiektu za pomocą metody appendRotation() i translacja obiektu z powrotem do pierwotnego położenia. W poniższym przykładzie trójwymiarowy obiekt wyświetlany myObject obraca się w osi Y wokół współrzędnych (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);
     
    

Parametry

degrees:Number — Stopień obrotu.
 
axis:Vector3D — Oś lub kierunek obrotu. Najczęściej stosowane osie są następujące: X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) i Z_AXIS (Vector3D(0,0,1)). Ten wektor powinien mieć długość równą jeden.
 
pivotPoint:Vector3D (default = null) — Punkt określający środek obrotu obiektu. Domyślnym środkiem obrotu obiektu jest jego punkt pasowania.

Powiązane elementy interfejsu API

appendScale

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Stosuje do obiektu Matrix3D przyrostowe przeskalowanie wzdłuż osi x, y i z. Zastosowanie obiektu Matrix3D do obiektu wyświetlanego powoduje wykonanie skalowania po innych transformacjach opisanych przez obiekt Matrix3D. Domyślny współczynnik skali to (1.0, 1.0, 1.0).

Skala jest zdefiniowana jako zestaw trzech przyrostowych zmian wzdłuż trzech osi (x,y,z). Każdą oś można pomnożyć przez inną liczbę. Zastosowanie zmiany skali do obiektu wyświetlanego powoduje jego powiększenie lub zmniejszenie. Na przykład ustawienie wartości osi x, y i z na dwa powoduje dwukrotne powiększenie obiektu, natomiast ustawienie wartości osi na 0.5 powoduje zmniejszenie obiektu o połowę. Aby mieć pewność, że przeskalowanie będzie miało wpływ tylko na jedną oś, należy ustawić pozostałe parametry na jeden. Wartość jeden oznacza brak skalowania wzdłuż danej osi.

Metodę appendScale() można stosować do zmiany rozmiaru oraz do realizacji zniekształceń, takich jak skrócenie lub wydłużenie obiektu wyświetlanego, a także do powiększania (zoom) i zmniejszania konkretnego obszaru. Transformacje skali są wykonywane automatycznie podczas obrotów i translacji obiektu wyświetlanego.

Kolejność transformacji jest istotna. Zmiana rozmiaru, po której następuje translacja daje inny efekt niż translacja, po której następuje zmiana rozmiaru.

Parametry

xScale:Number — Mnożnik skalowania obiektu wzdłuż osi x.
 
yScale:Number — Mnożnik skalowania obiektu wzdłuż osi y.
 
zScale:Number — Mnożnik skalowania obiektu wzdłuż osi z.

Powiązane elementy interfejsu API

appendTranslation

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Stosuje do obiektu Matrix3D przyrostową translację, tj. zmianę położenia wzdłuż osi x, y i z. Zastosowanie obiektu Matrix3D do obiektu wyświetlanego powoduje wykonanie translacji po innych transformacjach opisanych przez obiekt Matrix3D.

Translacja jest zdefiniowana jako zestaw trzech przyrostowych zmian wzdłuż trzech osi (x,y,z). Zastosowanie transformacji do wyświetlanego obiektu powoduje przemieszczenie go z bieżącego położenia wzdłuż osi x, y i z o odległości określone przez parametry. Aby mieć pewność, że translacja będzie miała wpływ tylko na jedną współrzędną (oś), należy ustawić pozostałe parametry na zero. Parametr zerowy oznacza, że nie nastąpi zmiana położenia wzdłuż danej osi.

Translacje są względne. Nowe położenie jest ustalane względem bieżącego położenia i orientacji macierzy. Aby wprowadzić bezwzględną zmianę w macierzy przekształcenia, należy skorzystać z metody recompose(). Znaczenie ma także kolejność transformacji. Translacja, po której następuje obrót, da inny efekt niż obrót, po którym następuje translacja.

Parametry

x:Number — Przyrostowa translacja wzdłuż osi x.
 
y:Number — Przyrostowa translacja wzdłuż osi y.
 
z:Number — Przyrostowa translacja wzdłuż osi z.

Powiązane elementy interfejsu API

clone

()metoda 
public function clone():Matrix3D

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Zwraca nowy obiekt Matrix3D będący dokładną kopią bieżącego obiektu Matrix3D.

Zwraca
Matrix3D — Nowy obiekt Matrix3D będący dokładną kopią bieżącego obiektu Matrix3D.

copyColumnFrom

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje obiekt Vector3D do określonej kolumny wywołującego obiektu Matrix3D.

Parametry

column:uint — Kolumna docelowa operacji kopiowania.
 
vector3D:Vector3D — Obiekt Vector3D, z którego należy skopiować dane.

copyColumnTo

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje określoną kolumnę wywołującego obiektu Matrix3D do obiektu Vector3D.

Parametry

column:uint — Kolumna, z której należy skopiować dane.
 
vector3D:Vector3D — Obiekt docelowy Vector3D operacji kopiowania.

copyFrom

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje wszystkie dane macierzy ze źródłowego obiektu Matrix3D do wywołującego obiektu Matrix3D.

Parametry

sourceMatrix3D:Matrix3D — Obiekt Matrix3D, z którego należy skopiować dane.

copyRawDataFrom

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje wszystkie dane wektora ze źródłowego obiektu wektora do wywołującego obiektu Matrix3D. Opcjonalny parametr index umożliwia wybranie dowolnej pozycji początkowej w wektorze.

Parametry

vector:Vector.<Number> — Obiekt wektora, z którego należy skopiować dane.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRawDataTo

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje wszystkie dane macierzy z wywołującego obiektu Matrix3D do podanego wektora. Opcjonalny parametr index umożliwia wybranie dowolnej docelowej pozycji początkowej w wektorze.

Parametry

vector:Vector.<Number> — Obiekt wektora, do którego należy skopiować dane.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRowFrom

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje obiekt Vector3D do określonego wiersza wywołującego obiektu Matrix3D.

Parametry

row:uint — Wiersz, do którego należy skopiować dane.
 
vector3D:Vector3D — Obiekt Vector3D, z którego należy skopiować dane.

copyRowTo

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiuje określony wiersz wywołującego obiektu Matrix3D do obiektu Vector3D.

Parametry

row:uint — Wiersz, z którego należy skopiować dane.
 
vector3D:Vector3D — Obiekt Vector3D, do którego mają zostać skopiowane dane.

copyToMatrix3D

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

Parametry

dest:Matrix3D

decompose

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Zwraca ustawienia translacji, obrotu i skali macierzy transformacji jako obiekt Vector złożony z trzech obiektów Vector3D. Pierwszy obiekt Vector3D zawiera elementy translacji. Drugi obiekt Vector3D zawiera elementy obrotu. Trzeci obiekt Vector3D zawiera elementy skali.

Niektóre metody klasy Matrix3D, takie jak interpolateTo(), automatycznie dokonują dekompozycji i ponownej kompozycji macierzy w celu dokonania odpowiedniej transformacji.

Aby zmodyfikować transformację macierzy z uwzględnieniem bezwzględnej nadrzędnej klatki referencyjnej, należy pobrać ustawienia za pomocą metody decompose() i wprowadzić odpowiednie zmiany. Zmodyfikowaną transformację można ustawić w obiekcie Matrix3D za pomocą metody recompose().

Parametr metody decompose() określa styl orientacji, jaki ma być używany dla transformacji. Orientacja domyślna to eulerAngles; w tym przypadku orientacja jest zdefiniowana za pomocą trzech odrębnych kątów obrotu dla poszczególnych osi. Obroty są wykonywane jeden po drugim i nie wpływają wzajemnie na swoje osie. Właściwości obrotu osi obiektu wyświetlanego powodują transformacją ze stylem orientacji eulerAngles. Pozostałe opcje stylu orientacji to axisAngle oraz quaternion. Orientacja według osi i kąta jest zdefiniowana przez kombinację osi i kąta. Oś, wokół której obracany jest obiekt, to wektor jednostkowy reprezentujący kierunek. Kąt określa wielkość obrotu wokół wektora. Kierunek decyduje także o tym, w którą stronę jest zwrócony obiekt wyświetlany, a kąt określa, która strona obiektu jest zwrócona do góry. Orientacja axisAngle jest używana w metodach appendRotation() i prependRotation(). W orientacji quaternion stosowane są liczby zespolone i czwarty element wektora. Orientację wyznaczają trzy osie obrotu (x,y,z) oraz kąt obrotu (w). Orientacja kwaternionowa jest używana w metodzie interpolate().

Parametry

orientationStyle:String (default = "eulerAngles") — Parametr opcjonalny określający styl orientacji używany przy transformacjach macierzowych. Wyróżnia się trzy typy stylów orientacji: eulerAngles (stała EULER_ANGLES), axisAngle (stała AXIS_ANGLE) i quaternion (stała QUATERNION). Dodatkowe informacje o stylach orientacji zawiera opis klasy geom.Orientation3D.

Zwraca
Vector.<Vector3D> — Obiekt Vector złożony z trzech obiektów Vector3D zawierających odpowiednio ustawienia translacji, obrotu i skali.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W tym przykładzie zastosowano metody decompose() i recompose() do poziomego rozciągania elipsy w miarę jej zbliżania się do znikającego punktu. Pierwszy obiekt Vector3D zwrócony przez metodę decompose() zawiera współrzędne translacji. Trzeci obiekt Vector3D zawiera ustawienia skali. Metoda incrementBy() obiektu Vector3D zwiększa bezwzględne ustawienia translacji i skali macierzy.
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

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Stosuje macierz transformacji, z wyjątkiem elementów translacji, w celu dokonania transformacji obiektu Vector 3D ze współrzędnych jednej przestrzeni na współrzędne innej przestrzeni. Zwrócony obiekt Vector3D zawiera nowe współrzędne po zastosowaniu obrotu i skalowania. W przypadku zastosowania przez metodę deltaTransformVector() macierzy zawierającej tylko translację, zwrócony obiekt Vector3D będzie identyczny z oryginalnym obiektem Vector3D.

Metody deltaTransformVector() można używać w celu uwzględnienia przez obiekt w jednej przestrzeni współrzędnych obrotów drugiego obiektu wyświetlanego. Obrót obiektu nie jest kopiowany; nastąpi jedynie zmiana położenia obiektu uwzględniająca zmianę obrotu. Na przykład, aby użyć wywołania API display.Graphics do narysowania obracającego się trójwymiarowego obiektu wyświetlanego, należy odwzorować obracane współrzędne obiektu na punkt dwuwymiarowy. Najpierw należy pobrać współrzędne trójwymiarowego obiektu po każdym obrocie, korzystając z metody deltaTransformVector(). Następnie należy zastosować metodę local3DToGlobal() obiektu wyświetlanego w celu przetłumaczenia współrzędnych trójwymiarowych na punkty dwuwymiarowe. Następnie można użyć punktów dwuwymiarowych do narysowania obracającego się obiektu trójwymiarowego.

Uwaga: Ta metoda automatycznie ustawia składnik w przekazywanego obiektu Vector3D na 0.0.

Parametry

v:Vector3D — Obiekt Vector3D zawierający współrzędne podlegające transformacji.

Zwraca
Vector3D — Obiekt Vector3D zawierający przetransformowane współrzędne.

Powiązane elementy interfejsu API

identity

()metoda 
public function identity():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Przekształca bieżącą macierz w macierz jednostkową. Wszystkie elementy macierzy jednostkowej na przekątnej głównej mają wartości jeden, a pozostałe elementy tej macierzy mają wartość zero. W rezultacie uzyskuje się macierz, której właściwość rawData ma wartość 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1, ustawienie obrotu ma wartość Vector3D(0,0,0), ustawienie pozycji lub translacji ma wartość Vector3D(0,0,0), a skala ma wartość Vector3D(1,1,1). Oto reprezentacja macierzy jednostkowej.

Macierz jednostkowa

Obiekt poddany transformacji poprzez zastosowanie macierzy jednostkowej nie ulega zmianie. Innymi słowy, pomnożenie macierzy przez macierz jednostkową daje w wyniku macierz identyczną z oryginalną.

interpolate

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Interpoluje przekształcenie translacji, obrotu i skalowania jednej macierzy w kierunku tego przekształcenia macierzy docelowej.

Metoda interpolate() pozwala uniknąć pewnych niepożądanych skutków użycia właściwości obrotu obiektu wokół osi. Metoda interpolate() unieważnia zapisaną w pamięci podręcznej właściwość obrotu obiektu wyświetlanego i przekształca elementy orientacji macierzy obiektu wyświetlanego do orientacji typu quaternion, a dopiero potem dokonuje interpolacji. Ta metoda gwarantuje najkrótszą, najbardziej efektywną ścieżkę obrotu. Generuje ponadto płynny obrót, przy którym obiekt nie traci stopni swobody. Sytuacja taka może wystąpić w przypadku orientacji eulerAngles, gdy obliczenia są realizowane dla każdej osi z osobna. W trakcie obrotu wokół dwóch lub większej liczby osi może dojść do równoległego ich ustawienia, co prowadzi do nieoczekiwanych wyników. Obrót z orientacją typu quaternion jest wolny od tego efektu.

Kolejne wywołania metody interpolate() umożliwiają uzyskanie efektu szybkiego rozpoczęcia ruchu obiektu, a następnie powolnego zbliżania się do innego obiektu wyświetlanego. Na przykład jeśli ustawimy parametr thisMat na zwrócony obiekt Matrix3D, parametr toMat na obiekt Matrix3D skojarzony z docelowym obiektem wyświetlanym, a parametr percent na 0.1, to obiekt wyświetlany zbliży się o dziesięć procent do obiektu docelowego. W kolejnych wywołaniach lub w kolejnych klatkach obiekt będzie zbliżał się do celu o 10% pozostałej odległości, aż do osiągnięcia celu.

Parametry

thisMat:Matrix3D — Obiekt Matrix3D przeznaczony do interpolacji.
 
toMat:Matrix3D — Docelowy obiekt Matrix3D.
 
percent:Number — Wartość z przedziału od 0 do 1 określająca procent zbliżenia obiektu Matrix3D thisMat do docelowego obiektu Matrix3D.

Zwraca
Matrix3D — Obiekt Matrix3D z elementami, których wartości znajdują się pomiędzy wartościami macierzy źródłowej a wartościami macierzy docelowej. Po zastosowaniu zwróconej macierzy do obiektu wyświetlanego this obiekt zbliża się o określony procent do obiektu docelowego.

Powiązane elementy interfejsu API

interpolateTo

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Interpoluje tę macierz w kierunku przekształceń translacji, obrotu i skalowania macierzy docelowej.

Metoda interpolateTo() pozwala uniknąć niepożądanych skutków użycia właściwości obrotu obiektu wyświetlanego wokół osi. Metoda interpolateTo() unieważnia zapisaną w pamięci podręcznej właściwość obrotu obiektu wyświetlanego i przekształca elementy orientacji macierzy obiektu wyświetlanego do orientacji typu quaternion, a dopiero potem dokonuje interpolacji. Ta metoda gwarantuje najkrótszą, najbardziej efektywną ścieżkę obrotu. Generuje ponadto płynny obrót, przy którym obiekt nie traci stopni swobody. Sytuacja taka może wystąpić w przypadku orientacji eulerAngles, gdy obliczenia są realizowane dla każdej osi z osobna. W trakcie obrotu wokół dwóch lub większej liczby osi może dojść do równoległego ich ustawienia, co prowadzi do nieoczekiwanych wyników. Obrót z orientacją typu quaternion jest wolny od tego efektu.

Uwaga: W przypadku interpolacji wartość skali macierzy jest zerowana, a macierz jest normalizowana.

Kolejne wywołania metody interpolateTo() umożliwiają uzyskanie efektu szybkiego rozpoczęcia ruchu obiektu, a następnie powolnego zbliżania się do innego obiektu wyświetlanego. Na przykład ustawienie parametru percent na 0.1 spowoduje zbliżenie obiektu wyświetlanego o dziesięć procent do obiektu docelowego określonego przez parametr toMat. W kolejnych wywołaniach lub w kolejnych klatkach obiekt będzie zbliżał się do celu o 10% pozostałej odległości, aż do osiągnięcia celu.

Parametry

toMat:Matrix3D — Docelowy obiekt Matrix3D.
 
percent:Number — Wartość z przedziału od 0 do 1 określająca położenie obiektu wyświetlanego względem celu. Im wartość bliższa jest 1,0, tym bliżej swojej bieżącej pozycji znajduje się obiekt wyświetlany. Im wartość bliższa jest 0, tym bliżej celu znajduje się obiekt wyświetlany.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W tym przykładzie trójwymiarowy obiekt wyświetlany ellipse2 zbliża się do drugiego trójwymiarowego obiektu wyświetlanego o nazwieellipse1. Obiekt ellipse2 podąża za obiektem ellipse1, próbując go „dogonić”. Jeśli obiekt ellipse1 nie obróci się wokół swojej osi y, ellipse2 dogoni go i znajdzie się na obiekcie ellipse1. Obie elipsy są rysowane w ten sam sposób, ale umieszczone w różnych położeniach w globalnym trójwymiarowym układzie współrzędnych.
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

()metoda 
public function invert():Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Odwraca bieżącą macierz Odwrócona macierz ma ten sam rozmiar co oryginalna, ale realizuje transformację przeciwną do oryginalnej. Na przykład jeśli oryginalna macierz obracała obiekt wokół osi x w jednym kierunku, odwrócona macierz będzie obracać obiekt wokół tej osi w kierunku przeciwnym. Zastosowanie macierzy odwróconej do obiektu cofa transformację wykonaną przez oryginalną macierz. Przemnożenie macierzy przez jej macierz odwróconą daje w wyniku macierz jednostkową.

Może być używana do dzielenia macierzy. Sposób na podzielenie macierzy A przez macierz B polega na pomnożeniu macierzy A przez wynik odwrócenia macierzy B. Odwrócona macierz może być także wykorzystana w przestrzeni kamery. Gdy kamera porusza się w przestrzeni globalnej, obiekt w przestrzeni globalnej musi poruszać się w kierunku przeciwnym, aby widok globalny został przetransformowany na przestrzeń kamery lub przestrzeń widoku. Na przykład gdy kamera przybliża się, obiekty będą się powiększać. Innymi słowy, jeśli kamera przemieszcza się w dół globalnej osi z, obiekt przesuwa się w górę wzdłuż globalnej osi z.

Metoda invert() zastępuje bieżącą macierz macierzą odwróconą. Aby odwrócić macierz bez zmiany macierzy źródłowej, należy najpierw skopiować macierz źródłową za pomocą metody clone(), a następnie zastosować metodę invert() do kopii.

Obiekt Matrix3D musi być odwracalny.

Zwraca
Boolean — Zwraca wartość true, jeśli macierz została pomyślnie odwrócona.

Powiązane elementy interfejsu API

pointAt

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Obraca obiekt wyświetlany w taki sposób, aby był zwrócony do określonej pozycji. Ta metoda umożliwia miejscową modyfikację orientacji. Wektor kierunku „do przodu” obiektu wyświetlanego (tj. obiekt Vector3D at) wskazuje na określoną pozycję globalną. Kierunek „do góry” obiektu wyświetlanego określany jest za pomocą obiektu Vector3D up.

Metoda pointAt() unieważnia wartość właściwości obrotu obiektu wyświetlanego zapisaną w pamięci podręcznej. Metoda dokonuje dekompozycji macierzy obiektu wyświetlanego i modyfikuje elementy obrotu w celu obrócenia obiektu do określonej pozycji. Następnie dokonuje ponownej kompozycji (aktualizacji) macierzy obiektu wyświetlanego, co powoduje zrealizowanie transformacji. Jeśli obiekt jest zwrócony w stronę ruchomego celu, np. pozycji poruszającego się obiektu, to każde kolejne wywołanie metody spowoduje obrócenie obiektu w stronę aktualnego położenia ruchomego celu.

Uwaga: Jeśli metoda Matrix3D.pointAt() zostanie użyta bez ustawienia opcjonalnych parametrów, obiekt docelowy nie będzie domyślnie zwrócony do określonej pozycji globalnej. Należy ustawić wartość półosi -y (0,-1,0) dla parametru at oraz półoś -z (0,0,-1) dla parametru up.

Parametry

pos:Vector3D — Globalna pozycja obiektu docelowego. Globalność oznacza, że transformacja obiektu jest zdefiniowana względem przestrzeni i współrzędnych globalnych. Wszystkie obiekty mają pozycje w przestrzeni globalnej.
 
at:Vector3D (default = null) — Wektor względem obiektu definiujący kierunek, w którym zwrócony jest obiekt wyświetlany. Transformacje względem obiektu odbywają się względem przestrzeni obiektu, tj. własnej klatki referencyjnej i układu współrzędnych obiektu. Wartością domyślną jest półoś +y (0,1,0).
 
up:Vector3D (default = null) — Wektor względem obiektu definiujący stronę „do góry” dla obiektu wyświetlanego. Jeśli obiekt jest narysowany tak, że obserwator patrzy na niego z góry, półoś +z jest jego wektorem „w górę“. Przekształcenia względem obiektu odbywają się w stosunku do przestrzeni obiektu, tj. własnego punktu odniesienia i układu współrzędnych obiektu. Wartością domyślną jest półoś +z (0,0,1).

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W tym przykładzie trójkąt jest zwrócony zgodnie ze ścieżką ruchu elipsy i podąża po tej ścieżce. Elipsa i trójkąt są ustawiane w różnych położeniach. Następnie elipsa porusza się w górę, do narożnika stołu montażowego. Trójkąt naśladuje translację elipsy. Można zmienić kształt trójkąta oraz parametry zwrotu i kierunku w górę za pomocą metody pointAt(), aby zobrazować ich wpływ na ruch trójkąta.
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

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Dołącza macierz na początku transformacji, mnożąc bieżący obiekt Matrix3D przez inny obiekt Matrix3D. Wynikiem jest kombinacja transformacji opisanych przez obie macierze.

Mnożenie macierzy różni się od dodawania macierzy. Mnożenie macierzy nie jest przemienne. Innymi słowy, A razy B nie równa się B razy A. Metoda prepend() wykonuje mnożenie od prawej strony, co oznacza że obiekt Matrix3D rhs znajduje się po prawej stronie operatora mnożenia.

thisMatrix = thisMatrix * rhs

Metoda prepend() wprowadza modyfikacje względem przestrzeni obiektu. Innymi słowy, są one zawsze realizowane względem początkowej klatki referencyjnej obiektu.

Metoda prepend() zastępuje bieżącą macierz macierzą dołączoną. Aby dołączyć w ten sposób dwie macierze bez zmiany bieżącej macierzy, należy najpierw skopiować bieżącą macierz za pomocą metody clone(), a następnie zastosować metodę prepend() do kopii.

Parametry

rhs:Matrix3D — Macierz, przez którą mnożony jest bieżący obiekt Matrix3D.

Powiązane elementy interfejsu API

prependRotation

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Poprzedzająco stosuje przyrostowy obrót do obiektu Matrix3D. Zastosowanie obiektu Matrix3D do obiektu wyświetlanego powoduje wykonanie obrotu przed innymi transformacjami opisanymi przez obiekt Matrix3D.

Obrót obiektu wyświetlanego jest zdefiniowany przez oś, stopień przyrostowego obrotu wokół osi oraz opcjonalny punkt będący środkiem obrotu obiektu. Osią może być dowolny kierunek ogólny. Najbardziej popularne osie są następujące: X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) i Z_AXIS (Vector3D(0,0,1)). W terminologii lotniczej obrót wokół osi y jest nazywany odchyleniem. Obrót wokół osi x jest nazywany pochyleniem. Obrót wokół osi z jest nazywany przechyłem.

Kolejność przekształceń ma znaczenie. Obrót, po którym następuje translacja daje inny efekt niż translacja, po której następuje obrót.

Obrót nie jest bezwzględny. Efekt jest realizowany względem obiektu, tj. punktu odniesienia pierwotnej pozycji i orientacji. Aby wprowadzić bezwzględną zmianę w macierzy transformacji, należy skorzystać z metody recompose().

Zastosowanie metody prependRotation() do obiektu Matrix3D obiektu wyświetlanego powoduje unieważnienie wartości właściwości obrotu obiektu zapisanych w pamięci podręcznej.

Jednym ze sposobów obrócenia obiektu wyświetlanego wokół konkretnego punktu względem jego położenia jest translacja obiektu do określonego punktu, obrócenie obiektu za pomocą metody prependRotation() i translacja obiektu z powrotem do pierwotnego położenia. W poniższym przykładzie trójwymiarowy obiekt ekranowy myObject obraca się w osi Y wokół współrzędnych (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);
     
    

Parametry

degrees:Number — Stopień obrotu.
 
axis:Vector3D — Oś lub kierunek obrotu. Najczęściej stosowane osie są następujące: X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) i Z_AXIS (Vector3D(0,0,1)). Ten wektor powinien mieć długość równą jeden.
 
pivotPoint:Vector3D (default = null) — Punkt określający środek obrotu. Domyślnym środkiem obrotu obiektu jest jego punkt rejestracji.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W tym przykładzie użytkownik może obracać elipsę wokół jej osi x i y, poruszając wskaźnikiem myszy. Punkt rejestracji elipsy znajduje się w jej środku. Elipsa obraca się wokół swojej osi y na podstawie współrzędnej x wskaźnika myszy. Obrót wokół osi x jest realizowany na podstawie współrzędnej y wskaźnika myszy.
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

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Poprzedzająco stosuje do obiektu Matrix3D przyrostowe przeskalowanie wzdłuż osi x, y i z. Zastosowanie obiektu Matrix3D do obiektu wyświetlanego powoduje wykonanie skalowania przed innymi transformacjami opisanymi przez obiekt Matrix3D. Zmiany są realizowane względem obiektu, tj. klatki referencyjnej oryginalnej pozycji i orientacji. Domyślny współczynnik skali to (1.0, 1.0, 1.0).

Skala jest zdefiniowana jako zestaw trzech przyrostowych zmian wzdłuż trzech osi (x,y,z). Każdą oś można pomnożyć przez inną liczbę. Zastosowanie zmiany skali do obiektu wyświetlanego powoduje jego powiększenie lub zmniejszenie. Na przykład ustawienie wartości osi x, y i z na dwa powoduje dwukrotne powiększenie obiektu, natomiast ustawienie wartości osi na 0.5 powoduje zmniejszenie obiektu o połowę. Aby mieć pewność, że przeskalowanie będzie miało wpływ tylko na jedną oś, należy ustawić pozostałe parametry na jeden. Wartość jeden oznacza brak skalowania wzdłuż danej osi.

Metody prependScale() można używać zarówno do skalowania, jak i do zniekształcania obiektu wyświetlanego, np. rozciągania go lub skracania. Może również służyć do powiększania (zoom) i pomniejszania określonego obszaru. Transformacje skali są wykonywane automatycznie podczas obrotów i translacji obiektu wyświetlanego.

Kolejność transformacji jest istotna. Zmiana rozmiaru, po której następuje translacja daje inny efekt niż translacja, po której następuje zmiana rozmiaru.

Parametry

xScale:Number — Mnożnik skalowania obiektu wzdłuż osi x.
 
yScale:Number — Mnożnik skalowania obiektu wzdłuż osi y.
 
zScale:Number — Mnożnik skalowania obiektu wzdłuż osi z.

Powiązane elementy interfejsu API

prependTranslation

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Poprzedzająco stosuje do obiektu Matrix3D przyrostową translację, tj. zmianę położenia wzdłuż osi x, y i z. Zastosowanie obiektu Matrix3D do obiektu wyświetlanego powoduje wykonanie translacji przed innymi transformacjami opisanymi przez obiekt Matrix3D.

Translacja określa odległość, o jaką obiekt wyświetlany przemieści się z bieżącego położenia wzdłuż osi x, y i z. Metoda prependTranslation() realizuje translację jako zestaw trzech przyrostowych zmian wzdłuż trzech osi (x,y,z). Aby translacja wpływała tylko na jedną współrzędną (oś), należy ustawić pozostałe parametry na zero. Parametr zerowy oznacza, że nie nastąpi zmiana położenia wzdłuż danej osi.

Translacje są względne. Efekt jest realizowany względem obiektu, tj. klatki referencyjnej oryginalnej pozycji i orientacji. Aby wprowadzić bezwzględną zmianę w macierzy przekształcenia, należy skorzystać z metody recompose(). Znaczenie ma także kolejność transformacji. Translacja, po której następuje obrót, da inny efekt niż obrót, po którym następuje translacja. Po zastosowaniu metody prependTranslation() wyświetlany obiekt będzie dalej przemieszczał się w kierunku, w którym jest zwrócony, niezależnie od pozostałych transformacji. Na przykład jeśli obiekt wyświetlany był zwrócony ku dodatniej półosi x, będzie dalej przemieszczał się w kierunku określonym przez metodę prependTranslation(), niezależnie od tego, jak zostanie obrócony. Aby translacja została przeprowadzona po innych transformacjach, należy użyć metody appendTranslation().

Parametry

x:Number — Przyrostowa translacja wzdłuż osi x.
 
y:Number — Przyrostowa translacja wzdłuż osi y.
 
z:Number — Przyrostowa translacja wzdłuż osi z.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W tym przykładzie użytkownik może za pomocą popychać elipsę wzdłuż osi y stołu montażowego. Gdy użytkownik umieści wskaźnik myszy w elipsie, elipsa przeskakuje o dziesięć jednostek współrzędnych na osi y. Gdy wskaźnik myszy znajdzie się poza elipsą, a elipsa nie osiągnęła jeszcze górnej krawędzi, elipsa ponownie przeskoczy o dziesięć jednostek w górę na osi y. Gdy elipsa osiągnie górną krawędź stołu montażowego, jest przenoszona z powrotem na dół.
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

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Ustawia wartości translacji, obrotu i skali w macierzy. W przeciwieństwie do zmian przyrostowych wprowadzanych przez właściwości obrotu obiektu wyświetlanego lub metody obrotu obiektu Matrix3D, zmiany wprowadzane przez metodę recompose() są zmianami bezwzględnymi. Metoda recompose() nadpisuje transformację macierzy.

Aby zmodyfikować transformację macierzy z uwzględnieniem bezwzględnej nadrzędnej klatki referencyjnej, należy pobrać ustawienia za pomocą metody decompose() i wprowadzić odpowiednie zmiany. Zmodyfikowaną transformację można ustawić w obiekcie Matrix3D za pomocą metody recompose().

Parametr metody recompose() określa styl orientacji użyty do transformacji. Orientacja domyślna to eulerAngles; w tym przypadku orientacja jest zdefiniowana za pomocą trzech odrębnych kątów obrotu dla poszczególnych osi. Obroty są wykonywane jeden po drugim i nie wpływają wzajemnie na swoje osie. Właściwości obrotu osi obiektu wyświetlanego powodują transformacją ze stylem orientacji eulerAngles. Pozostałe opcje stylu orientacji to axisAngle oraz quaternion. Orientacja axisAngle jest zdefiniowana przez kombinację osi i kąta. Oś, wokół której obracany jest obiekt, to wektor jednostkowy reprezentujący kierunek. Kąt określa wielkość obrotu wokół wektora. Kierunek decyduje także o tym, w którą stronę jest zwrócony obiekt wyświetlany, a kąt określa, która strona obiektu jest zwrócona do góry. Orientacja axisAngle jest używana w metodach appendRotation() i prependRotation(). W orientacji quaternion stosowane są liczby zespolone i czwarty element wektora. Orientacja jest reprezentowana przez trzy osie obrotu (x,y,z) oraz kąt obrotu (w). Orientacja kwaternionowa jest używana w metodzie interpolate().

Parametry

components:Vector.<Vector3D> — Obiekt Vector złożony z trzech obiektów Vector3D, które zastępują elementy translacji, obrotu i skali w obiekcie Matrix3D.
 
orientationStyle:String (default = "eulerAngles") — Parametr opcjonalny określający styl orientacji używany w przekształceniach macierzowych. Wyróżnia się trzy typy stylów orientacji: eulerAngles (stała EULER_ANGLES), axisAngle (stała AXIS_ANGLE) i quaternion (stała QUATERNION). Dodatkowe informacje o stylach orientacji zawiera opis klasy geom.Orientation3D.

Zwraca
Boolean — Zwraca wartość false, jeśli jakikolwiek z elementów obiektu Vector3D w wektorze components nie istnieje lub ma wartość NULL.

Powiązane elementy interfejsu API

transformVector

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Stosuje macierz transformacji w celu dokonania transformacji obiektu Vector3D ze współrzędnych jednej przestrzeni na współrzędne innej przestrzeni. Zwrócony obiekt Vector3D zawiera nowe współrzędne po transformacji. Wszystkie transformacje opisane w macierzy, w tym translacja, są stosowane do obiektu Vector3D.

Jeśli wynik działania metody transformVector() został zastosowany do pozycji obiektu wyświetlanego, tylko pozycja tego obiektu ulegnie zmianie. Elementy obrotu i skali obiektu wyświetlanego nie ulegają zmianie.

Uwaga: Ta metoda automatycznie ustawia składnik w przekazywanego obiektu Vector3D na 1.0.

Parametry

v:Vector3D — Obiekt Vector3D zawierający współrzędne podlegające transformacji.

Zwraca
Vector3D — Obiekt Vector3D zawierający przetransformowane współrzędne.

Powiązane elementy interfejsu API

transformVectors

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Stosuje macierz transformacji w celu transformacji obiektu Vector zawierającego obiekty Number z jednego układu współrzędnych na inny. Metoda tranformVectors() odczytuje każdą trójkę obiektów Number w obiekcie Vector vin jako współrzędne trójwymiarowe (x,y,z) i umieszcza przetransformowane współrzędne trójwymiarowe w obiekcie Vector vout. Wszystkie transformacje macierzowe, w tym translacja, są stosowane do obiektu Vector vin. Metody transformVectors() można użyć do renderowania i transformowania obiektu trójwymiarowego w postaci siatki. Siatka jest to zbiór wektorów definiujących kształt obiektu.

Parametry

vin:Vector.<Number> — Obiekt Vector zawierający obiekty Number, gdzie każde trzy obiekty Number są trójwymiarowymi współrzędnymi (x,y,z) przeznaczonymi do transformacji.
 
vout:Vector.<Number> — Obiekt Vector zawierający obiekty Number, gdzie każde trzy obiekty Number są przetransformowanymi współrzędnymi trójwymiarowymi (x,y,z).

Powiązane elementy interfejsu API

transpose

()metoda 
public function transpose():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Przekształca bieżący obiekt Matrix3D w macierz, w której wiersze są zamienione na kolumny, a kolumny na wiersze. Na przykład jeśli właściwość rawData bieżącego obiektu Matrix3D zawierała wektor 16 liczb 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34, metoda transpose() odczyta każde cztery elementy jako jeden wiersz i przekształci wiersze w kolumny. Wynikiem będzie macierz, której właściwość rawData będzie zawierać liczby: 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34.

Metoda transpose() zastępuje macierz bieżącą macierzą przetransponowaną. Aby przetransponować macierz bez zmiany macierzy bieżącej, należy najpierw skopiować macierz bieżącą za pomocą metody clone(), a następnie zastosować metodę transpose() do kopii.

Macierz ortogonalna to taka macierz kwadratowa, dla której wynik transpozycji jest równy wynikowi odwrócenia.





[ X ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.