Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: AIR 30.0 или более ранней версии, Flash Player 30.0 или более ранней версии, Flash Lite 4
Flex 4.6 или более ранней версии, Flash Pro CS6 или более ранней версии
Скрыть фильтры
flash.geom 

Matrix3D  - AS3

Пакетыx

Верхний уровень
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

Элементы языка

Глобальные константы
Глобальные функции
Операторы
Инструкции, ключевые слова и директивы
Специальные типы

Приложения

Новые возможности
Ошибки компилятора
Предупреждения компилятора
Ошибки времени выполнения
Миграция ActionScript 3
Поддерживаемые наборы символов
Только MXML
Элементы движения XML
Теги Timed Text
устаревший_индекс
Константы реализации специальных возможностей
Использование примеров
Юридическая информация
Пакетflash.geom
Классpublic class Matrix3D
НаследованиеMatrix3D Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Класс Matrix3D представляет матрицу преобразования, которая определяет положение и ориентацию трехмерного (3D) экранного объекта. С помощью матрицы можно выполнять функции преобразования, включая перенос (изменение положения по осям x, y и z), поворот и масштабирование (изменение размера). С помощью класса Matrix3D можно также выполнять перспективное проецирование, при котором точки трехмерного координатного пространства сопоставляются в двумерной проекции.

В одной матрице могут сочетаться несколько преобразований и их одновременное применение к трехмерному экранному объекту. Например, матрицу можно применить к трехмерным координатам для выполнения поворота с последующим перемещением.

Если свойство z или какое-либо свойство поворота или масштабирования экранного объекта задано явно, соответствующий объект Matrix3D создается автоматически.

Доступ к объекту Matrix3D трехмерного экранного объекта можно получить с помощью свойства transform.matrix3d. Для двумерных объектов объект Matrix3D не предусмотрен.

Значение свойства z двухмерного объекта равно нулю, а значение его свойства matrix3D равно null.

Примечание. Если один объект Matrix3D назначен двум различным экранным объектам, возникает ошибка выполнения.

В классе Matrix3D используется квадратная матрица размерностью 4x4, представляющая собой таблицу чисел из четырех строк и столбцов, в которой содержатся данные для преобразования. В первых трех строках матрицы содержатся данные для каждой трехмерной оси (x,y,z). Данные о преобразовании находятся в последнем столбце. Данные об ориентации и масштабировании хранятся в первых трех столбцах. Коэффициенты масштабирования являются диагональными числами в первых трех столбцах. Ниже представлены элементы Matrix3D:

Элементы Matrix3D

Для использования класса Matrix3D не требуется понимание принципов вычисления матриц. В нем предоставляются определенные методы, которые позволяют упростить задачи преобразования и проецирования, например методы appendTranslation(), appendRotation() или interpolateTo(). Можно также использовать методы decompose() и recompose() или свойство rawData для доступа к базовым элементам матрицы.

В экранных объектах выполняется кэширование свойств поворота осей для выполнения отдельного поворота каждой оси и управления различными комбинациями поворотов. При вызове метода объекта Matrix3D для преобразования экранного объекта кэш поворота объекта становится недействительным.

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  determinant : Number
[только для чтения] Число, которое определяет, является ли матрица обратимой.
Matrix3D
  position : Vector3D
Объект Vector3D, в котором хранится положение, трехмерная координата (x,y,z) экранного объекта в системе координат преобразования.
Matrix3D
  rawData : Vector.<Number>
Вектор из 16 чисел, где каждые четыре элемента представляют собой столбец матрицы размером 4 x 4.
Matrix3D
Общедоступные методы
 МетодОпределено
  
Matrix3D(v:Vector.<Number> = null)
Создание объекта Matrix3D.
Matrix3D
  
Добавление матрицы путем умножения другого объекта Matrix3D на текущий объект Matrix3D.
Matrix3D
  
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Добавление инкрементного поворота к объекту Matrix3D.
Matrix3D
  
appendScale(xScale:Number, yScale:Number, zScale:Number):void
Добавление инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D.
Matrix3D
  
Добавление инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D.
Matrix3D
  
Возвращает новый объект Matrix3D, который является точной копией текущего объекта Matrix3D.
Matrix3D
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Копирует объект Vector3D в определенный столбец вызывающего объекта Matrix3D.
Matrix3D
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Копирует определенный столбец вызывающего объекта Matrix3D в объект Vector3D.
Matrix3D
  
copyFrom(sourceMatrix3D:Matrix3D):void
Копирует все данные матрицы из исходного объекта Matrix3D в вызывающий объект Matrix3D.
Matrix3D
  
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Копирует все данные вектора из исходного объекта вектора в вызывающий объект Matrix3D.
Matrix3D
  
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Копирует все данные матрицы из вызывающего объекта Matrix3D в предоставленный вектор.
Matrix3D
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Копирует объект Vector3D в определенную строку вызывающего объекта Matrix3D.
Matrix3D
  
copyRowTo(row:uint, vector3D:Vector3D):void
Копирует определенную строку вызывающего объекта Matrix3D в объект Vector3D.
Matrix3D
  
Matrix3D
  
decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Возвращает параметры перемещения, поворота и масштабирования матрицы преобразования в виде вектора из тех объектов Vector3D.
Matrix3D
  
Использует матрицу преобразования без элементов перемещения для преобразования объекта Vector3D из одних пространственных координат в другие.
Matrix3D
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
Преобразует текущую матрицу в единичную матрицу.
Matrix3D
  
interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
[статические] Интерполирует трансформацию переноса, поворота и масштаба одной матрицы по отношению к этим значениям целевой матрицы.
Matrix3D
  
Интерполирует эту матрицу по отношению к трансформациям переноса, поворота и масштаба целевой матрицы.
Matrix3D
  
Обращение текущей матрицы.
Matrix3D
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Поворот экранного объекта, чтобы он был обращен лицевой стороной к определенному положению.
Matrix3D
  
Вставка матрицы в начало путем умножения текущего объекта Matrix3D на другой объект Matrix3D.
Matrix3D
  
prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Добавление в начало инкрементного поворота к объекту Matrix3D.
Matrix3D
  
prependScale(xScale:Number, yScale:Number, zScale:Number):void
Добавление в начало инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D.
Matrix3D
  
Добавление в начало инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D.
Matrix3D
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Задает параметры перемещения, поворота и масштабирования матрицы преобразования.
Matrix3D
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
  
Матрица преобразования используется для преобразования объекта Vector3D из одних пространственных координат в другие.
Matrix3D
  
Матрица преобразования используется для преобразования вектора чисел из одного пространства координат в другое.
Matrix3D
  
Преобразование текущего объекта Matrix3D в матрицу, в которой выполнена перестановка строк и столбцов.
Matrix3D
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве

determinant

свойство
determinant:Number  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Число, которое определяет, является ли матрица обратимой.

Объект Matrix3D должен быть обратимым. Свойство determinant можно использовать, чтобы сделать объект Matrix3D обратимым. Если определитель равен нулю, обратная матрица не существует. Например, если вся строка или весь столбец матрицы равен нулю или две строки или два столбца матрицы равны, то свойство determinant имеет нулевое значение. Определитель также используется для решения серий уравнений.

Только для квадратной матрицы, такой как класс Matrix3D, предусмотрен определитель.



Реализация
    public function get determinant():Number

Связанные элементы API

position

свойство 
position:Vector3D

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Объект Vector3D, в котором хранится положение, трехмерная координата (x,y,z) экранного объекта в системе координат преобразования. Свойство position позволяет получить немедленный доступ к вектору перемещения матрицы экранного объекта без необходимости разбиения и восстановления матрицы.

С помощью свойства position можно получить и настроить элементы перемещения матрицы преобразования.



Реализация
    public function get position():Vector3D
    public function set position(value:Vector3D):void

Связанные элементы API

rawData

свойство 
rawData:Vector.<Number>

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Вектор из 16 чисел, где каждые четыре элемента представляют собой столбец матрицы размером 4 x 4.

Исключение выдается, если свойство rawData задано для необратимой матрицы. Объект Matrix3D должен быть обратимым. Если требуется необратимая матрица, создайте подкласс объекта Matrix3D.



Реализация
    public function get rawData():Vector.<Number>
    public function set rawData(value:Vector.<Number>):void

Связанные элементы API

Сведения о конструкторе

Matrix3D

()Конструктор
public function Matrix3D(v:Vector.<Number> = null)

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Создание объекта Matrix3D. Объекты Matrix3D можно инициализировать с помощью вектора из 16 чисел, в котором каждые четыре элемента представляют собой столбец. После создания объекта Matrix3D доступ к элементам матрицы можно получить с помощью свойства rawData.

Если отсутствуют заданные параметры, конструктор создает единичный объект Matrix3D. По определению в единичной матрице присвоены единичные значения для всех элементов по главной диагонали и нулевые значения для всех остальных элементов. Значением свойства rawData единичной матрицы является: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1. Значением положения или перемещения единичной матрицы является Vector3D(0,0,0), значением для вращения — Vector3D(0,0,0), а значением для масштабирования — Vector3D(1,1,1).

Параметры
v:Vector.<Number> (default = null) — Вектор из 16 чисел, где каждые четыре элемента представляют собой столбец матрицы размером 4 x 4.

Связанные элементы API

Сведения о методе

append

()метод
public function append(lhs:Matrix3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление матрицы путем умножения другого объекта Matrix3D на текущий объект Matrix3D. Результат объединяет оба преобразования матрицы. Объект Matrix3D можно умножить на несколько матриц. В конечном объекте Matrix3D будет содержаться результат всех преобразований.

Умножение матриц отличается от сложения матриц. Умножение матриц не является коммутативным. Другими словами, A, умноженное на Б, не равно Б, умноженному на А. При использовании метода append() умножение выполняется с левой стороны, то есть объект Matrix3D lhs находится слева от оператора умножения.

thisMatrix = lhs * thisMatrix;

При первом вызове метода append() выполняется изменение относительно родительского пространства. При последующих вызовах выполняются изменения относительно системы координат добавленного объекта Matrix3D.

Метод append() заменяет текущую матрицу добавленной матрицей. Если необходимо добавить две матрицы без изменения текущей матрицы, скопируйте текущую матрицу с помощью метода clone(), а затем примените метод append() к копии.

Параметры

lhs:Matrix3D — Левосторонняя матрица, то есть умноженная на текущий объект Matrix3D.

Связанные элементы API

appendRotation

()метод 
public function appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление инкрементного поворота к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет поворот после других преобразований в объекте Matrix3D.

Поворот экранного объекта определяется осью, постепенно увеличивающимся углом поворота вокруг оси и дополнительной точкой поворота для центра поворота объекта. Ось может располагаться в одном из общепринятых направлений. Наиболее часто используемыми осями являются X_AXIS (Vector3D (1,0,0)), Y_AXIS (Vector3D (0,1,0)) и Z_AXIS (Vector3D (0,0,1)). В авиационной терминологии поворот вокруг оси y называется «рысканием». Поворот вокруг оси x называется «тангажом». Поворот вокруг оси z называется «креном».

Порядок преобразования учитывается. Эффект преобразования поворота с последующим перемещением отличается от преобразования перемещения с последующим поворотом.

Эффект поворота не является абсолютным. Он выполняется относительно текущего положения и ориентации. Для выполнения абсолютного изменения матрицы преобразования необходимо использовать метод recompose(). Метод appendRotation() также отличается от свойства поворота оси экранного объекта, такого как свойство rotationX. Свойство поворота всегда применяется перед любым преобразованием, в то время как метод appendRotation() применяется относительно уже существующих значений матрицы. Чтобы получить эффект, аналогичный свойству поворота оси экранного объекта, используйте метод prependRotation(), который выполняет поворот перед другими преобразованиями матрицы.

Когда преобразование метода appendRotation() применяется к объекту Matrix3D экранного объекта, кэшированные значения свойств поворота экранного объекта становятся недействительными.

Одним из способов вращения экранного объекта вокруг определенной точки относительно его расположения является настройка перемещения объекта в заданную точку, вращение объекта с использованием метода appendRotation() и обратное перемещение объекта а исходное положение. В следующем примере трехмерный экранный объект myObject осуществляет вращение по оси y вокруг точки с координатами (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);
     
    

Параметры

degrees:Number — Угол поворота в градусах.
 
axis:Vector3D — Ось или направление поворота. Обычно используются оси X_AXIS (Vector3D (1,0,0)), Y_AXIS (Vector3D (0,1,0)) и Z_AXIS (Vector3D (0,0,1)). Длина этого вектора должна равняться единице.
 
pivotPoint:Vector3D (default = null) — Точка, которая определяет центр поворота объекта. Точкой поворота объекта по умолчанию является точка регистрации объекта.

Связанные элементы API

appendScale

()метод 
public function appendScale(xScale:Number, yScale:Number, zScale:Number):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет изменения масштаба после других преобразований в объекте Matrix3D. По умолчанию используется коэффициент масштабирования, равный (1.0, 1.0, 1.0).

Масштаб определяется как набор трех инкрементных изменений вдоль трех осей (x,y,z). Каждую ось можно умножить на различное число. При применении изменений масштаба к экранному объекту размер объекта увеличивается или уменьшается. Например, установка осей x, y и z на значение 2 увеличивает размер объекта вдвое, тогда как установка этих осей на значение 0.5 уменьшает размер в два раза. Чтобы преобразование масштаба выполнялось только относительно определенной оси, необходимо задать для остальных параметров значения 1. Значение 1 параметра означает, что изменение масштаба вдоль заданной оси выполняться не будет.

Метод appendScale() можно использовать для изменения размеров, а также для управления искажениями, такими как укорочение или удлинение экранного объекта или увеличение или уменьшение масштаба определенного местоположения. Преобразования масштаба выполняются автоматически во время поворота и перемещения экранного объекта.

Порядок преобразования учитывается. Эффект масштабирования с последующим перемещением отличается от эффекта перемещения с последующим преобразованием масштаба.

Параметры

xScale:Number — Коэффициент, используемый для масштабирования объекта вдоль оси x.
 
yScale:Number — Коэффициент, используемый для масштабирования объекта вдоль оси y.
 
zScale:Number — Коэффициент, используемый для масштабирования объекта по оси z.

Связанные элементы API

appendTranslation

()метод 
public function appendTranslation(x:Number, y:Number, z:Number):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет изменения перемещения после других преобразований в объекте Matrix3D.

Перемещение определяется как набор из трех инкрементных изменений вдоль трех осей (x,y,z). Когда преобразование применяется к экранному объекту, экранный объект перемещается из текущего положения вдоль осей x, y и z в соответствии с заданными параметрами. Чтобы перемещение выполнялось только относительно определенной оси, необходимо задать для остальных параметров нулевые значения. Нулевое значение параметра означает, что изменение вдоль заданной оси выполняться не будет.

Изменения перемещения не являются абсолютными. Они выполняются относительно текущего расположения и ориентации матрицы. Для выполнения абсолютного изменения матрицы преобразования необходимо использовать метод recompose(). Порядок преобразования также учитывается. Эффект преобразования перемещения, за которым следует поворот, отличается от поворота с последующим перемещением.

Параметры

x:Number — Инкрементное перемещение по оси x.
 
y:Number — Инкрементное перемещение по оси y.
 
z:Number — Инкрементное перемещение по оси z.

Связанные элементы API

clone

()метод 
public function clone():Matrix3D

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Возвращает новый объект Matrix3D, который является точной копией текущего объекта Matrix3D.

Возвращает
Matrix3D — Новый объект Matrix3D, который является точной копией текущего объекта Matrix3D.

copyColumnFrom

()метод 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует объект Vector3D в определенный столбец вызывающего объекта Matrix3D.

Параметры

column:uint — Целевой столбец копии.
 
vector3D:Vector3D — Объект Vector3D, из которого следует скопировать данные.

copyColumnTo

()метод 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует определенный столбец вызывающего объекта Matrix3D в объект Vector3D.

Параметры

column:uint — Столбец, в который следует скопировать данные.
 
vector3D:Vector3D — Целевой объект Vector3D копии.

copyFrom

()метод 
public function copyFrom(sourceMatrix3D:Matrix3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует все данные матрицы из исходного объекта Matrix3D в вызывающий объект Matrix3D.

Параметры

sourceMatrix3D:Matrix3D — Объект Matrix3D, из которого следует скопировать данные.

copyRawDataFrom

()метод 
public function copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует все данные вектора из исходного объекта вектора в вызывающий объект Matrix3D. Дополнительный параметр индекса позволяет выбрать любой начальный раздел вектора.

Параметры

vector:Vector.<Number> — Объект вектора, из которого следует скопировать данные.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRawDataTo

()метод 
public function copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует все данные матрицы из вызывающего объекта Matrix3D в предоставленный вектор. Дополнительный параметр индекса позволяет выбрать любой целевой начальный раздел вектора.

Параметры

vector:Vector.<Number> — Объект вектора, в который следует скопировать данные.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRowFrom

()метод 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует объект Vector3D в определенную строку вызывающего объекта Matrix3D.

Параметры

row:uint — Строка, в которую следует скопировать данные.
 
vector3D:Vector3D — Объект Vector3D, из которого следует скопировать данные.

copyRowTo

()метод 
public function copyRowTo(row:uint, vector3D:Vector3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4

Копирует определенную строку вызывающего объекта Matrix3D в объект Vector3D.

Параметры

row:uint — Строка, из которой следует скопировать данные.
 
vector3D:Vector3D — Объект Vector3D, в который копируются данные.

copyToMatrix3D

()метод 
public function copyToMatrix3D(dest:Matrix3D):void

Параметры

dest:Matrix3D

decompose

()метод 
public function decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Возвращает параметры перемещения, поворота и масштабирования матрицы преобразования в виде вектора из тех объектов Vector3D. В первом объекте Vector3D хранятся элементы перемещения. Во втором объекте Vector3D хранятся элементы поворота. В третьем объекте Vector3D хранятся элементы масштабирования.

Некоторые методы Matrix3D, например метод interpolateTo(), автоматически разбивает на части и восстанавливает матрицу для выполнения преобразования.

Чтобы модифицировать преобразование матрицы с использованием абсолютной родительской системой координат, получите параметры при помощи метода decompose() и внесите соответствующие изменения. Затем можно применить к объекту Matrix3D измененное преобразование при помощи метода recompose().

Параметр метода decompose() задает стиль ориентации, используемый для преобразования. По умолчанию используется ориентация eulerAngles, которая определяет ориентацию с тремя различными углами поворота вокруг каждой оси. Повороты выполняются последовательно, и ось каждого поворота не изменяется. С помощью свойств поворота осей экранного объекта выполняется преобразование стиля ориентации эйлеровых углов (Euler Angles). Другими вариантами стиля ориентации являются axisAngle и quaternion. Для определения ориентации межосевых улов используется комбинация оси и угла. Ось, вокруг которой вращается объект, является единичным вектором, который представляет направление. Угол представляет величину поворота относительно вектора. Направление также определяет расположение лицевой стороны экранного объекта, а угол — направление лицевой стороны вверх. В методах appendRotation() и prependRotation() используется ориентация межосевого угла. В ориентации кватерниона используются комплексные числа и четвертый элемент вектора. Такая ориентация представлена тремя осями поворота (x,y,z) и углом поворота (w). В методе interpolate() используется кватернион.

Параметры

orientationStyle:String (default = "eulerAngles") — Необязательный параметр, определяющий стиль ориентации, используемый для матрицы преобразования. Три типа стиля ориентации: eulerAngles (константа EULER_ANGLES), axisAngle (константа AXIS_ANGLE) и quaternion (константа QUATERNION). Для получения дополнительной информации о другом стиле ориентации см. класс geom.Orientation3D.

Возвращает
Vector.<Vector3D> — Вектор из трех объектов Vector3D, в каждом из которых содержатся соответствующие параметры перемещения, поворота и масштабирования.

Связанные элементы API


Пример  ( Использование этого примера )

В следующем примере при помощи методов decompose() и recompose() эллипс вытягивается по горизонтали во время движения к точке схода. Первый объект Vector3D, возвращенный методом decompose(), содержит координаты перемещения. Третий объект Vector3D содержит параметры масштабирования. Метод объекта Vector3D incrementBy() увеличивает значения параметров абсолютного перемещения и масштабирования матрицы.
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

()метод 
public function deltaTransformVector(v:Vector3D):Vector3D

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Использует матрицу преобразования без элементов перемещения для преобразования объекта Vector3D из одних пространственных координат в другие. В возвращенном объекте Vector3D содержатся новые координаты, полученные после применения преобразований поворота и масштабирования. Если в методе deltaTransformVector() применяется матрица, в которой содержится только преобразование перемещения, возвращенный объект Vector3D совпадает с исходным объектом Vector3D.

Метод deltaTransformVector() можно использовать, чтобы экранный объект в одном пространстве координат реагировал на преобразование поворота второго экранного объекта. Поворот не будет копироваться в объекте; изменяется только положение объекта в соответствии с изменениями поворота. Например, чтобы использовать программный интерфейс display.Graphics для рисования трехмерного вращающегося экранного объекта, необходимо назначить координаты трехмерного вращающегося объекта двухмерной точке. Сначала получите трехмерные координаты объекта после каждого поворота с помощью метода deltaTransformVector(). Далее примените метод local3DToGlobal() экранного объекта для преобразования трехмерных координат в двумерные точки. Затем двумерные точки можно использовать для рисования трехмерного вращающегося объекта.

Примечание. Этот метод автоматически задает для компонента w переданного объекта Vector3D значение 0.0.

Параметры

v:Vector3D — Объект Vector3D с координатами, которые подлежат преобразованию.

Возвращает
Vector3D — Объект Vector3D с преобразованными координатами.

Связанные элементы API

identity

()метод 
public function identity():void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Преобразует текущую матрицу в единичную матрицу. В единичной матрице присвоены единичные значения для всех элементов по главной диагонали и нулевые значения для всех остальных элементов. В результате получается матрица, в которой значение rawData равно 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1, в качестве параметра поворота используется Vector3D(0,0,0), для параметра положения или перемещения задано значение Vector3D(0,0,0), а для масштаба — Vector3D(1,1,1). Ниже представлена единичная матрица:

Единичная матрица

Преобразование объекта путем применения единичной матрицы не выполняется. Другими словами, если матрица умножается на единичную матрицу, в результате получается матрица, идентичная исходной матрице.

interpolate

()метод 
public static function interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Интерполирует трансформацию переноса, поворота и масштаба одной матрицы по отношению к этим значениям целевой матрицы.

Метод interpolate() позволяет избежать получение некоторых нежелательных результатов, которые могут появиться при использовании методов, таких как свойств поворота осей экранного объекта. Метод interpolate() отменяет действие кэшированного значения свойства поворота экранного объекта и преобразует элементы ориентации матрицы экранного объекта в кватернион перед интерполяцией. Этот метод обеспечивает кратчайший наиболее эффективный контур вращения. Он также позволяет выполнять сглаживание без эффекта «шарнирного замка». Эффект «шарнирного замка» может произойти при использовании эйлеровых углов, когда каждая ось обрабатывается независимо. Во время вращения вокруг двух или более осей оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов. Вращение кватерниона позволяет избежать появление эффекта «шарнирного замка».

При последующих вызовах метода interpolate() может возникать эффект быстрого запуска экранного объекта, а затем медленное приближение другого экранного объекта. Например, если установить параметр thisMat на возвращенный объект Matrix3D, параметр toMat на объект Matrix3D, связанный с целевым экранным объектом, а параметр percent на значение 0,1, экранный объект переместится на 10 процентов ближе к целевому объекту. При последующих вызовах или в последующих кадрах объект переместится на десять процентов от оставшихся девяноста процентов, затем на десять процентов от оставшегося смещения и далее, пока цель не будет достигнута.

Параметры

thisMat:Matrix3D — Объект Matrix3D, который будет интерполирован.
 
toMat:Matrix3D — Целевой объект Matrix3D.
 
percent:Number — Значение от 0 до 1, которое определяет процентное значение, на которое следует интерполировать объект Matrix3D thisMat по отношению к целевому объекту Matrix3D.

Возвращает
Matrix3D — Объект Matrix3D с элементами, которые размещают значения матрицы между исходной матрицей и целевой матрицей. Когда возвращенная матрица применяется к экранному объекту this, объект перемещается на определенное значение ближе к целевому объекту.

Связанные элементы API

interpolateTo

()метод 
public function interpolateTo(toMat:Matrix3D, percent:Number):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Интерполирует эту матрицу по отношению к трансформациям переноса, поворота и масштаба целевой матрицы.

Метод interpolateTo() позволяет избежать получения нежелательных результатов, которые могут появиться при использовании методов, таких как свойств поворота осей экранного объекта. Метод interpolateTo() отменяет действие кэшированного значения свойства поворота экранного объекта и преобразует элементы ориентации матрицы экранного объекта в кватернион перед интерполяцией. Этот метод обеспечивает кратчайший наиболее эффективный контур вращения. Он также позволяет выполнять сглаживание без эффекта «шарнирного замка». Эффект «шарнирного замка» может произойти при использовании эйлеровых углов, когда каждая ось обрабатывается независимо. Во время вращения вокруг двух или более осей оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов. Вращение кватерниона позволяет избежать появление эффекта «шарнирного замка».

Примечание. В случае интерполяции значение масштабирования матрицы сбрасывается, после чего выполняется нормализация матрицы.

При последующих вызовах метода interpolateTo() может возникнуть эффект быстрого запуска экранного объекта, а затем медленное приближение другого экранного объекта. Например, если для параметра percent задано значение 0,1, экранный объект перемещается на десять процентов ближе к целевому объекту, заданному параметром toMat. При последующих вызовах или в последующих кадрах объект переместится на десять процентов от оставшихся девяноста процентов, затем на десять процентов от оставшегося смещения и далее, пока цель не будет достигнута.

Параметры

toMat:Matrix3D — Целевой объект Matrix3D.
 
percent:Number — Значение от 0 до 1, которое определяет расположение экранного объекта относительно цели. Чем ближе значение к 1,0, тем ближе экранный объект к его текущему положению. Чем ближе значение к 0, тем ближе экранный объект к цели.

Связанные элементы API


Пример  ( Использование этого примера )

В данном примере ellipse2, трехмерный экранный объект, перемещается по направлению к ellipse1, другому трехмерному экранному объекту. ellipse2 следует за ellipse1, пытаясь поймать его. Если ellipse1 не будет вращаться вокруг своей оси y, ellipse2 достигнет верха ellipse1. Эти два эллипса нарисованы одинаково, но размещены в различных трехмерных положениях мировых координат.
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

()метод 
public function invert():Boolean

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Обращение текущей матрицы. Размер обратной матрицы равен размеру исходной матрицы, но выполнено обратное преобразование исходной матрицы. Например, если в исходной матрице объект вращается вокруг оси x в определенном направлении, при обращении матрицы объект будет вращаться вокруг оси в обратном направлении. При применении обратной матрицы к объекту происходит отмена преобразования, выполненного исходной матрицей. При умножении матрицы на обратную матрицу получается единичная матрица.

Обратную матрицу можно использовать для деления одной матрицы на другую. Разделить матрицу A на матрицу B можно, умножив матрицу А на обратную матрицу B. Обратную матрицу можно также использовать с пространством камеры. При перемещении камеры в пространстве мировых координат объект в этом пространстве должен перемещаться в обратном направлении для выполнения преобразования представления в мировых координатах в пространство камеры или обзора. Например, когда камера перемещается ближе, объекты становятся больше. Другими словами, если камера перемещается вниз по оси z мировой системы координат, объект перемещается вверх по оси z мировой системы координат.

Метод invert() заменяет текущую матрицу обратной матрицей. Если необходимо обратить матрицу без изменения текущей матрицы, сначала скопируйте текущую матрицу с помощью метода clone(), а затем примените метод invert() к копии.

Объект Matrix3D должен быть обратимым.

Возвращает
Boolean — Возвращает значение true, если обращение матрицы выполнено успешно.

Связанные элементы API

pointAt

()метод 
public function pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Поворот экранного объекта, чтобы он был обращен лицевой стороной к определенному положению. Этот метод позволяет выполнять изменение ориентации на месте. Прямое направление вектора экранного объекта (объект Vector3D at) будет указывать на заданное положение относительно мировых координат. Направление экранного объекта вверх задается с помощью объекта Vector3D up.

Метод pointAt() отменяет действие кэшированных значений свойств поворота экранного объекта. Метод разбивает на части матрицу экранного объекта и изменяет элементы поворота для поворота объекта в заданное положение. А затем восстанавливает (обновляет) матрицу экранного объекта, которая выполняет преобразование. Если объект указывает на движущуюся цель, например положение перемещающегося объекта, то при каждом последующем вызове метода объект будет поворачиваться к движущейся цели.

Примечание. Если метод Matrix3D.pointAt() используется без настройки дополнительных параметров, целевой объект не обращается лицом в заданную позицию относительно мировой системы координат по умолчанию. Необходимо задать для свойства at значение по оси -y (0,-1,0) и для свойства up значение по оси -z (0,0,-1).

Параметры

pos:Vector3D — Положение целевого объекта относительно мировых координат. Положение относительно мировых координат определяет преобразование объекта относительно мирового пространства, в котором располагаются все объекты.
 
at:Vector3D (default = null) — Вектор относительно объекта, определяющий место локализации экранного объекта. Положение относительно объекта определяет преобразование объекта относительно пространства объекта, собственной координатной системы объекта. Значением по умолчанию является ось +y (0,1,0).
 
up:Vector3D (default = null) — Вектор относительно объекта, определяющий «верх» экранного объекта. Если объект обращен лицевой стороной вниз при просмотре сверху, ось +z будет являться для этого объекта вектором, направленным вверх. Положение относительно объекта определяет преобразование объекта относительно пространства объекта, собственной координатной системы объекта. Значением по умолчанию является ось +z (0,0,1).

Связанные элементы API


Пример  ( Использование этого примера )

В следующем примере треугольник указывает на эллипс и следует по траектории его движения. Для эллипса и треугольника заданы различные местоположения. Затем эллипс перемещается вверх по направлению к углу рабочей области. Треугольник следует за перемещением эллипса. Можно изменить форму треугольника и параметры at и up метода pointAt(), чтобы увидеть, как эти изменения влияют на движение треугольника.
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

()метод 
public function prepend(rhs:Matrix3D):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Вставка матрицы в начало путем умножения текущего объекта Matrix3D на другой объект Matrix3D. Результат объединяет оба преобразования матрицы.

Умножение матриц отличается от сложения матриц. Умножение матриц не является коммутативным. Другими словами, A, умноженное на Б, не равно Б, умноженному на А. При использовании метода prepend() умножение выполняется с правой стороны, то есть объект Matrix3D rhs находится справа от оператора умножения.

thisMatrix = thisMatrix * rhs

При помощи метода prepend() осуществляются изменения относительно пространства объекта. Другими словами, они всегда выполняются относительно исходной координатной системы объекта.

Метод prepend() заменяет текущую матрицу добавленной в начало матрицей. Если необходимо добавить в начало две матрицы без изменения текущей матрицы, скопируйте текущую матрицу с помощью метода clone(), а затем примените метод prepend() к копии.

Параметры

rhs:Matrix3D — Правосторонняя матрица, на которую умножается текущий объект Matrix3D.

Связанные элементы API

prependRotation

()метод 
public function prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление в начало инкрементного поворота к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет поворот перед другими преобразованиями в объекте Matrix3D.

Поворот экранного объекта определяется осью, постепенно увеличивающимся углом поворота вокруг оси и дополнительной точкой поворота для центра поворота объекта. Ось может располагаться в одном из общепринятых направлений. Наиболее часто используемыми осями являются X_AXIS (Vector3D (1,0,0)), Y_AXIS (Vector3D (0,1,0)) и Z_AXIS (Vector3D (0,0,1)). В авиационной терминологии поворот вокруг оси y называется «рысканием». Поворот вокруг оси x называется «тангажом». Поворот вокруг оси z называется «креном».

Порядок преобразования учитывается. Эффект преобразования поворота с последующим перемещением отличается от перемещения с последующим поворотом.

Эффект поворота не является абсолютным. Эффект относится к объекту, то есть относительно координатной системы исходного положения и ориентации. Для выполнения абсолютного изменения преобразования необходимо использовать метод recompose().

Когда преобразование метода prependRotation() применяется к объекту Matrix3D экранного объекта, кэшированные значения свойств поворота экранного объекта становятся недействительными.

Одним из способов вращения экранного объекта вокруг определенной точки относительно его расположения является настройка перемещения объекта в заданную точку, вращение объекта с использованием метода prependRotation() и обратное перемещение объекта в исходное положение. В следующем примере трехмерный экранный объект myObject осуществляет вращение по оси y вокруг точки с координатами (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);
     
    

Параметры

degrees:Number — Угол поворота.
 
axis:Vector3D — Ось или направление поворота. Обычно используются оси X_AXIS (Vector3D (1,0,0)), Y_AXIS (Vector3D (0,1,0)) и Z_AXIS (Vector3D (0,0,1)). Длина этого вектора должна равняться единице.
 
pivotPoint:Vector3D (default = null) — Точка, которая определяет центр поворота. Точкой поворота объекта по умолчанию является точка регистрации объекта.

Связанные элементы API


Пример  ( Использование этого примера )

В следующем примере пользователь может двигать мышь, чтобы заставить эллипс вращаться вокруг осей x и y. Эллипс рисуется с точкой регистрации в центре. Эллипс вращается вокруг оси y, используя координату x мыши. Эллипс вращается вокруг оси x, используя координату y мыши.
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

()метод 
public function prependScale(xScale:Number, yScale:Number, zScale:Number):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление в начало инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет масштабирование перед другими преобразованиями в объекте Matrix3D. Изменения выполняются относительно объекта, то есть относительно координатной системы исходного положения и ориентации. По умолчанию используется коэффициент масштабирования, равный (1.0, 1.0, 1.0).

Масштаб определяется как набор трех инкрементных изменений вдоль трех осей (x,y,z). Каждую ось можно умножить на различное число. При применении изменений масштаба к экранному объекту размер объекта увеличивается или уменьшается. Например, установка осей x, y и z на значение 2 увеличивает размер объекта вдвое, тогда как установка этих осей на значение 0.5 уменьшает размер в два раза. Чтобы преобразование масштаба выполнялось только относительно определенной оси, необходимо задать для остальных параметров значения 1. Значение 1 параметра означает, что изменение масштаба вдоль заданной оси выполняться не будет.

Метод prependScale() можно использовать для изменения размеров, а также для управления искажениями, такими как укорочение или удлинение экранного объекта. Он также может использоваться для увеличения или уменьшения масштаба определенного местоположения. Преобразования масштаба выполняются автоматически во время поворота и перемещения экранного объекта.

Порядок преобразования учитывается. Эффект масштабирования с последующим перемещением отличается от эффекта перемещения с последующим преобразованием масштаба.

Параметры

xScale:Number — Коэффициент, используемый для масштабирования объекта вдоль оси x.
 
yScale:Number — Коэффициент, используемый для масштабирования объекта вдоль оси y.
 
zScale:Number — Коэффициент, используемый для масштабирования объекта по оси z.

Связанные элементы API

prependTranslation

()метод 
public function prependTranslation(x:Number, y:Number, z:Number):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Добавление в начало инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет изменения перемещения перед другими преобразованиями в объекте Matrix3D.

Перемещение определяет расстояние, на которое передвигается экранный объект из текущего положения вдоль осей x, y и z. Метод prependTranslation() задает перемещение как набор трех инкрементных изменений положения вдоль трех осей (x,y,z). Для выполнения изменения перемещения только вдоль определенной оси необходимо задать для остальных параметров нулевые значения. Нулевое значение параметра означает, что изменение вдоль заданной оси выполняться не будет.

Изменения перемещения не являются абсолютными. Эффект относится к объекту, то есть относительно координатной системы исходного положения и ориентации. Для выполнения абсолютного изменения матрицы преобразования необходимо использовать метод recompose(). Порядок преобразования также учитывается. Эффект преобразования перемещения, за которым следует поворот, отличается от преобразования поворота с последующим перемещением. При использовании метода prependTranslation() экранный объект продолжает перемещаться лицевой стороной вперед вне зависимости от других преобразований. Например, если экранный объект был повернут лицевой стороной к положительной оси x, перемещение объекта продолжится в направлении, заданном в методе prependTranslation(), вне зависимости от поворота объекта. Для выполнения изменения перемещения после других преобразований необходимо использовать метод appendTranslation().

Параметры

x:Number — Инкрементное перемещение по оси x.
 
y:Number — Инкрементное перемещение по оси y.
 
z:Number — Инкрементное перемещение по оси z.

Связанные элементы API


Пример  ( Использование этого примера )

В следующем примере пользователь может заставить эллипс переместиться вверх по оси y рабочей области, используя мышь. При наведении курсора мыши на эллипс он перемещается на 10 координат вверх по оси y. Если убрать курсор с эллипса до того, как он достиг верха, он снова переместится на 10 координат вверх по оси y. После того как эллипс достигнет верха, он переместится обратно в низ рабочей области.
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

()метод 
public function recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Задает параметры перемещения, поворота и масштабирования матрицы преобразования. В отличие от инкрементных изменений, выполняемых свойствами поворота экранного объекта или методами поворота объекта Matrix3D изменения, выполняемые методом recompose(), являются абсолютными. Метод recompose() перезаписывает преобразование матрицы.

Чтобы модифицировать преобразование матрицы с использованием абсолютной родительской системой координат, получите параметры при помощи метода decompose() и внесите соответствующие изменения. Затем можно применить к объекту Matrix3D измененное преобразование при помощи метода recompose().

Параметр метода recompose() задает стиль ориентации, который использовался для преобразования. По умолчанию используется ориентация eulerAngles, которая определяет ориентацию с тремя различными углами поворота вокруг каждой оси. Повороты выполняются последовательно, и ось каждого поворота не изменяется. С помощью свойств поворота осей экранного объекта выполняется преобразование стиля ориентации эйлеровых углов (Euler Angles). Другими вариантами стиля ориентации являются axisAngle и quaternion. Для определения ориентации межосевых улов (Axis Angle) используется комбинация оси и угла. Ось, вокруг которой вращается объект, является единичным вектором, который представляет направление. Угол представляет величину поворота относительно вектора. Направление также определяет расположение лицевой стороны экранного объекта, а угол — направление лицевой стороны вверх. В методах appendRotation() и prependRotation() используется ориентация межосевого угла. В ориентации кватерниона используются комплексные числа и четвертый элемент вектора. Ориентация представляется тремя осями поворота (x,y,z) и углом поворота (w). В методе interpolate() используется кватернион.

Параметры

components:Vector.<Vector3D> — Вектор из трех объектов Vector3D, заменяющих элементы перемещения, поворота и масштабирования объекта Matrix3D.
 
orientationStyle:String (default = "eulerAngles") — Необязательный параметр, определяющий стиль ориентации, используемый для матрицы преобразования. Три типа стиля ориентации: eulerAngles (константа EULER_ANGLES), axisAngle (константа AXIS_ANGLE) и quaternion (константа QUATERNION). Для получения дополнительной информации о другом стиле ориентации см. класс geom.Orientation3D.

Возвращает
Boolean — Возвращает false, если любой из элементов Vector3D, входящих в состав вектора components, не существует или равен нулю.

Связанные элементы API

transformVector

()метод 
public function transformVector(v:Vector3D):Vector3D

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Матрица преобразования используется для преобразования объекта Vector3D из одних пространственных координат в другие. В возвращенном объекте Vector3D содержатся новые координаты, полученные после преобразования. Все преобразования матрицы, включая перемещение, применяются к объекту Vector3D.

Если результат метода transformVector() был применен к положению экранного объекта, будет изменено только положение экранного объекта. Элементы поворота и масштабирования экранного объекта не изменяются.

Примечание. Этот метод автоматически задает для компонента w переданного объекта Vector3D значение 1.0.

Параметры

v:Vector3D — Объект Vector3D с координатами, которые подлежат преобразованию.

Возвращает
Vector3D — Объект Vector3D с преобразованными координатами.

Связанные элементы API

transformVectors

()метод 
public function transformVectors(vin:Vector.<Number>, vout:Vector.<Number>):void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Матрица преобразования используется для преобразования вектора чисел из одного пространства координат в другое. Метод tranformVectors() выполняет чтение каждой тройки чисел в объекте вектора vin в виде трехмерной координаты (x,y,z) и размещает преобразованную трехмерную координату в объекте вектора vout. Все преобразования матрицы, включая перемещение, применяются к объекту вектора vin. Можно использовать метод transformVectors() для визуализации и преобразования трехмерного объекта в виде петли. Петля — это набор вершин, определяющий форму объекта.

Параметры

vin:Vector.<Number> — Вектор чисел, в котором каждые три числа представляют трехмерную координату (x,y,z), подлежащую преобразованию.
 
vout:Vector.<Number> — Вектор чисел, в котором каждые три числа представляют трехмерную преобразованную координату (x,y,z).

Связанные элементы API

transpose

()метод 
public function transpose():void

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Преобразование текущего объекта Matrix3D в матрицу, в которой выполнена перестановка строк и столбцов. Например, если в свойстве rawData текущего объекта Matrix3D содержатся следующие шестнадцать чисел — 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34, метод transpose() выполняет чтение каждых четырех элементов в виде строк и преобразует строки в столбцы. Результатом будет матрица, имеющая значения rawData: 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34.

Метод transpose() заменяет исходную матрицу транспонированной матрицей. Если необходимо транспонировать матрицу без изменения исходной матрицы, сначала скопируйте исходную матрицу с помощью метода clone(), а затем примените метод transpose() к копии.

Ортогональная матрица является квадратной матрицей, транспонирование которой равнозначно обращению.





[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.