Adobe® Flash® Platform용 ActionScript® 3.0 참조 설명서
 |  패키지 및 클래스 목록 숨기기 |  패키지  |  클래스  |  새로운 내용  |  색인  |  부록  |  영어로 표시되는 이유
필터: 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 태그
사용되지 않는 요소의 목록
액세스 가능성 구현 상수
ActionScript 예제 사용 방법
법적 고지 사항
패키지flash.geom
클래스public class Matrix3D
상속Matrix3D Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

Matrix3D 클래스는 3차원(3D) 표시 객체의 위치와 방향을 결정하는 변형 행렬을 나타냅니다. 이 행렬은 x, y, z축을 따라 위치를 조정하는 평행 이동, 회전, 크기 조절을 비롯한 변형 함수를 실행할 수 있습니다. 또한 Matrix3D 클래스는 3D 좌표 공간에서 2차원(2D) 보기로 점을 매핑하는 원근 투영을 수행할 수도 있습니다.

단일 행렬은 여러 변환을 조합하여 한 번에 3D 표시 객체에 적용할 수 있습니다. 예를 들어 3D 좌표에 행렬을 적용하여 회전 후 평행 이동을 수행할 수 있습니다.

표시 객체의 z 속성이나 rotation 또는 scaling 속성을 명시적으로 설정하는 경우 해당 Matrix3D 객체가 자동으로 만들어집니다.

transform.matrix3d 속성을 통해 3D 표시 객체의 Matrix3D 객체에 액세스할 수 있습니다. 2D 객체에는 Matrix3D 객체가 없습니다.

2D 객체의 z 속성 값은 0이며 matrix3D 속성 값은 null입니다.

참고: 동일한 Matrix3D 객체가 서로 다른 두 표시 객체에 지정되는 경우 런타임 오류가 발생합니다.

Matrix3D 클래스는 변형 데이터를 보유하는 4행 4열의 숫자 표인 4x4 정방 행렬을 사용합니다. 행렬의 처음 세 행은 3D 축(x,y,z)의 데이터를 보유합니다. 평행 이동 정보는 마지막 열에 있습니다. 회전 및 크기 조절 데이터는 처음 세 열에 있습니다. 크기 조절 인수는 처음 세 열의 대각선 숫자입니다. Matrix3D 요소를 나타내면 다음과 같습니다.

Matrix3D 요소

Matrix3D 클래스를 사용할 때는 행렬 수학의 내부 작업을 이해할 필요가 없습니다. Matrix3D 클래스는 변형 및 투영 작업을 단순화하는 appendTranslation(), appendRotation() 또는 interpolateTo() 등의 구체적인 메서드를 제공합니다. 또한 decompose()recompose() 메서드 또는 rawData 속성을 사용하여 내부 행렬 요소에 액세스할 수도 있습니다.

표시 객체는 자신의 축 회전 속성을 캐시하여 각 축에 대한 회전을 별도로 유지하고 다양한 회전 조합을 관리합니다. Matrix3D 객체의 메서드를 호출하여 표시 객체를 변형하면 객체의 회전 캐시가 무효화됩니다.

관련 API 요소



공용 속성
 속성정의 주체
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  determinant : Number
[읽기 전용] 행렬이 반전 가능한지 여부를 결정하는 숫자입니다.
Matrix3D
  position : Vector3D
변형의 기준 틀 내에서 표시 객체의 3D 좌표(x,y,z) 위치를 보유하는 Vector3D 객체입니다.
Matrix3D
  rawData : Vector.<Number>
각각의 4개 요소가 4x4 매트릭스의 열인 16개 숫자의 Vector입니다.
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
소스 Vector 객체의 모든 벡터 데이터를 호출 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 객체의 Vector로 반환합니다.
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
  
변형 행렬을 사용하여 한 좌표 공간에서 다른 좌표 공간으로 숫자의 Vector를 변형합니다.
Matrix3D
  
현재 Matrix3D 객체를 행과 열이 교환된 행렬로 변환합니다.
Matrix3D
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 세부 정보

determinant

속성
determinant:Number  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

행렬이 반전 가능한지 여부를 결정하는 숫자입니다.

Matrix3D 객체는 반전 가능해야 합니다. determinant 속성을 사용하면 Matrix3D 객체가 반전 가능한지 확인할 수 있습니다. determinant가 0이면 역행렬이 존재하지 않습니다. 예를 들어 행렬의 전체 행이나 열이 0이거나 두 행이나 열이 서로 같으면 determinant가 0입니다. determinant는 연립 방정식을 풀 때도 사용됩니다.

Matrix3D 클래스와 같은 정방 행렬에만 determinant가 있습니다.



구현
    public function get determinant():Number

관련 API 요소

position

속성 
position:Vector3D

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

변형의 기준 틀 내에서 표시 객체의 3D 좌표(x,y,z) 위치를 보유하는 Vector3D 객체입니다. 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

각각의 4개 요소가 4x4 매트릭스의 열인 16개 숫자의 Vector입니다.

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 객체를 만듭니다. 각각의 4개 요소가 하나의 열인 16개 숫자의 Vector를 사용하여 Matrix3D 객체를 초기화할 수 있습니다. Matrix3D 객체를 만든 후 rawData속성을 사용하여 행렬 요소에 액세스할 수 있습니다.

매개 변수가 정의되지 않은 경우 생성자는 항등 또는 단위 Matrix3D 객체를 만듭니다. 행렬 표기법에서 항등 행렬은 주 대각선 위치의 모든 요소 값이 1이고 나머지 요소 값이 모두 0인 행렬입니다. 항등 행렬의 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) — 각각의 4개 요소가 4x4 매트릭스의 열인 16개 숫자의 Vector입니다.

관련 API 요소

메서드 세부 정보

append

()메서드
public function append(lhs:Matrix3D):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

현재 Matrix3D 객체에 다른 Matrix3D 객체를 곱하여 행렬을 추가합니다. 결과에는 두 행렬 변형이 결합됩니다. Matrix3D 객체를 여러 행렬과 곱할 수 있습니다. 최종 Matrix3D 객체는 모든 변형의 결과가 들어 있습니다.

행렬 곱셈은 행렬 덧셈과 다릅니다. 행렬 곱셈에서는 교환법칙이 성립되지 않습니다. 즉, A 곱하기 B는 B 곱하기 A와 다릅니다. append() 메서드를 사용하면 왼쪽부터 곱해지므로 lhs Matrix3D 객체는 multiplication 연산자의 왼쪽에 있습니다.

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 객체의 다른 변형이 수행된 후 회전이 수행됩니다.

표시 객체의 회전은 축, 축을 중심으로 하는 증분 회전 각도, 객체의 회전 중심에 대한 선택적 pivot 점으로 정의됩니다. 축은 일반적인 모든 방향일 수 있습니다. 일반적인 축은 X_AXIS(Vector3D(1,0,0)), Y_AXIS(Vector3D(0,1,0)) 및 Z_AXIS(Vector3D(0,0,1))입니다. 항공 관련 용어에서는 y축 중심 회전을 요(yaw), x축 중심 회전을 피치(pitch), z축 중심 회전을 롤(roll)이라고 합니다.

변형 순서도 중요합니다. 회전 후 평행 이동 변형을 수행할 때는 평행 이동 후 회전 변형을 수행할 때와 다른 효과가 나타납니다.

회전 효과는 절대 기준이 아닙니다. 현재 위치 및 방향이 기준으로 사용됩니다. 변형 행렬에 절대 변경을 적용하려면 recompose() 메서드를 사용합니다. appendRotation() 메서드는 표시 객체의 rotationX 속성과 같은 축 회전 속성과도 다릅니다. 회전 속성은 항상 모든 평행 이동보다 먼저 적용되지만 appendRotation() 메서드는 행렬에서의 순서에 따라 수행됩니다. 표시 객체의 회전 속성과 비슷한 효과를 만들려면 행렬에서 다른 변형보다 먼저 회전을 수행하는 prependRotation() 메서드를 사용합니다.

표시 객체의 Matrix3D 객체에 appendRotation() 메서드의 변형을 적용하면 표시 객체의 캐시된 회전 속성 값이 무효화됩니다.

표시 객체를 자신의 위치를 기준으로 특정 점을 중심으로 회전하는 방법 중 하나는 객체의 평행 이동을 지정된 점으로 설정하고 appendRotation() 메서드를 사용하여 객체를 회전한 다음 객체를 원래 위치로 다시 평행 이동하는 것입니다. 다음 예제에서는 3D 표시 객체인 myObject에 좌표 (10,10,0)을 중심으로 y축 회전을 적용합니다.

    
    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))입니다. 이 벡터의 길이는 1이어야 합니다.
 
pivotPoint:Vector3D (default = null) — 객체의 회전 중심을 결정하는 점입니다. 객체의 기본 pivot 점은 객체의 등록 포인트입니다.

관련 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로 설정하면 객체가 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축을 따라 매개 변수에 지정된 대로 이동합니다. 평행 이동을 특정 축에만 적용하려면 다른 매개 변수를 0으로 설정합니다. 매개 변수가 0이면 해당 축을 따라 변경하지 않는 것입니다.

평행 이동 변경은 절대 기준이 아닙니다. 행렬의 현재 위치와 방향이 기준으로 사용됩니다. 변형 행렬에 절대 변경을 적용하려면 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

소스 Vector 객체의 모든 벡터 데이터를 호출 Matrix3D 객체에 복사합니다. 선택적 인덱스 매개 변수를 사용하면 벡터에서 임의의 시작 슬롯을 선택할 수 있습니다.

매개 변수

vector:Vector.<Number> — 복사할 데이터가 있는 Vector 객체입니다.
 
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> — 데이터를 복사할 Vector 객체입니다.
 
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 객체의 Vector로 반환합니다. 첫 번째 Vector3D 객체는 평행 이동 요소를 보유합니다. 두 번째 Vector3D 객체는 회전 요소를 보유합니다. 세 번째 Vector3D 객체는 크기 조절 요소를 보유합니다.

interpolateTo() 메서드 등의 일부 Matrix3D 메서드는 행렬을 자동으로 분해하고 재구성하여 변형을 수행합니다.

절대 부모 기준 틀을 사용하여 행렬의 변형을 수정하려면 decompose() 메서드를 사용하여 설정을 검색하고 적절히 변경합니다. 그런 다음 recompose() 메서드를 사용하여 Matrix3D 객체를 수정된 변형으로 설정합니다.

decompose() 메서드의 매개 변수는 변형에 사용할 방향 스타일을 지정합니다. 기본 방향은 각 축에 대한 서로 다른 세 개의 회전각으로 방향을 정의하는 eulerAngles입니다. 회전은 차례대로 수행되며 다른 회전의 축을 변경하지 않습니다. 표시 객체의 축 회전 속성은 오일러 각 방향 스타일 변형을 수행합니다. 다른 방향 스타일 옵션은 axisAnglequaternion입니다. 축 각 방향에서는 축과 각의 조합을 사용하여 방향을 결정합니다. 객체가 회전하는 중심 축은 방향을 나타내는 단위 벡터입니다. 각은 벡터 주위로 회전할 크기를 나타냅니다. 또한 방향은 표시 객체가 향하는 위치를 결정하고, 각은 위쪽을 가리키는 방향을 결정합니다. appendRotation()prependRotation() 메서드에는 축 각 방향이 사용됩니다. 쿼터니언 방향에는 복소수 및 벡터의 네 번째 요소가 사용됩니다. 세 개의 회전축(x,y,z)과 회전각(w)을 통해 방향을 나타냅니다. interpolate() 메서드에는 쿼터니언이 사용됩니다.

매개 변수

orientationStyle:String (default = "eulerAngles") — 행렬 변형에 사용되는 방향 스타일을 결정하는 선택적 매개 변수입니다. 세 가지 방향 스타일은 eulerAngles(상수 EULER_ANGLES), axisAngle(상수 AXIS_ANGLE) 및 quaternion(상수 QUATERNION)입니다. 여러 방향 스타일에 대한 자세한 내용은 geom.Orientation3D 클래스를 참조하십시오.

반환값
Vector.<Vector3D> — 각각 평행 이동, 회전 및 크기 조절 설정이 들어 있는 세 Vector3D 객체의 Vector입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

이 예제에서는 decompose()recompose() 메서드를 사용하여 타원을 소실점 방향으로 이동하면서 가로로 늘립니다. decompose() 메서드에서 반환하는 첫 번째 Vector3D 객체는 평행 이동 좌표를 보유합니다. 세 번째 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 API를 사용하여 회전하는 3D 표시 객체를 그리려면 3D 객체의 회전하는 좌표를 2D 점에 매핑해야 합니다. 우선 deltaTransformVector() 메서드를 사용하여 각 회전 후 객체의 3D 좌표를 검색합니다. 그런 다음 표시 객체의 local3DToGlobal() 메서드를 적용하여 3D 좌표를 2D 점으로 변환합니다. 그런 다음 2D 점을 사용하여 회전하는 3D 객체를 그릴 수 있습니다.

참고: 이 메서드는 전달된 Vector3D의 w 구성 요소를 자동으로 0.0으로 설정합니다.

매개 변수

v:Vector3D — 변형될 좌표를 보유하는 Vector3D 객체입니다.

반환값
Vector3D — 좌표가 변형된 Vector3D 객체입니다.

관련 API 요소

identity

()메서드 
public function identity():void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

현재 행렬을 항등 또는 단위 행렬로 변환합니다. 항등 행렬은 주 대각선의 요소 값이 1이고 나머지 요소 값이 모두 0인 행렬입니다. 결과는 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%만큼 이동합니다. 후속 호출 또는 후속 프레임에서 객체가 대상에 도달할 때까지 나머지 90%의 10%만큼 이동한 다음 나머지 거리의 10%만큼씩 이동하는 과정이 계속됩니다.

매개 변수

thisMat:Matrix3D — 보간할 Matrix3D 객체입니다.
 
toMat:Matrix3D — 대상 Matrix3D 객체입니다.
 
percent:Number0에서 1 사이의 값이며, thisMat Matrix3D 객체를 대상 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 매개 변수로 지정된 대상 객체에 10%만큼 접근합니다. 후속 호출 또는 후속 프레임에서 객체가 대상에 도달할 때까지 나머지 90%의 10%만큼 이동한 다음 나머지 거리의 10%만큼씩 이동하는 과정이 계속됩니다.

매개 변수

toMat:Matrix3D — 대상 Matrix3D 객체입니다.
 
percent:Number0에서 1 사이의 값이며, 대상을 기준으로 표시 객체의 위치를 결정합니다. 값이 1.0에 가까울수록 표시 객체가 현재 위치에 가까워집니다. 값이 0에 가까울수록 표시 객체가 대상에 가까워집니다.

관련 API 요소


예제  ( 예제 사용 방법 )

이 예제에서는 3차원 표시 객체인 ellipse2가 다른 3차원 표시 객체인 ellipse1에 접근합니다. ellipse2ellipse1을 따라가면서 잡으려고 합니다. ellipse1이 y축 중심으로 회전하지 않으면 ellipse2ellipse1에 도달하여 겹치게 됩니다. 두 타원은 동일한 방법으로 그려지지만 3차원 월드 공간에서 서로 다른 위치에 배치됩니다.
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로 나누려면 행렬 A에 행렬 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

지정된 위치를 향하도록 표시 객체를 회전합니다. 이 메서드를 사용하면 제자리에서 방향을 수정할 수 있습니다. 표시 객체의 전방 방향 벡터(at Vector3D 객체)는 지정된 월드 기준 위치를 가리킵니다. 표시 객체의 위쪽 방향은 up Vector3D 객체로 지정됩니다.

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 요소


예제  ( 예제 사용 방법 )

이 예제에서는 삼각형이 타원의 이동 경로를 가리키면서 따라갑니다. 타원과 삼각형을 서로 다른 위치로 설정합니다. 그런 다음 타원을 스테이지 모서리를 향해 위쪽으로 이동합니다. 삼각형은 타원의 평행 이동을 따릅니다. 삼각형의 모양과 pointAt()의 "at" 및 "up" 매개 변수를 변경하면 삼각형의 움직임에 주는 영향을 확인할 수 있습니다.
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 곱하기 B는 B 곱하기 A와 다릅니다. prepend() 메서드를 사용하면 오른쪽부터 곱해지므로 rhs Matrix3D 객체는 multiplication 연산자의 오른쪽에 있습니다.

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 객체의 다른 변형이 수행되기 전에 회전이 수행됩니다.

표시 객체의 회전은 축, 축을 중심으로 하는 증분 회전 각도, 객체의 회전 중심에 대한 선택적 pivot 점으로 정의됩니다. 축은 일반적인 모든 방향일 수 있습니다. 일반적인 축은 X_AXIS(Vector3D(1,0,0)), Y_AXIS(Vector3D(0,1,0)) 및 Z_AXIS(Vector3D(0,0,1))입니다. 항공 관련 용어에서는 y축 중심 회전을 요(yaw), x축 중심 회전을 피치(pitch), z축 중심 회전을 롤(roll)이라고 합니다.

변형 순서도 중요합니다. 회전 후 평행 이동 변형을 수행할 때는 평행 이동 후 회전을 수행할 때와 다른 효과가 나타납니다.

회전 효과는 절대 기준이 아닙니다. 이 효과의 기준은 객체(원래 위치와 방향의 기준 틀)입니다. 변형에 절대 변경을 적용하려면 recompose() 메서드를 사용합니다.

표시 객체의 Matrix3D 객체에 prependRotation() 메서드의 변형을 적용하면 표시 객체의 캐시된 회전 속성 값이 무효화됩니다.

표시 객체를 자신의 위치를 기준으로 특정 점을 중심으로 회전하는 방법 중 하나는 객체의 평행 이동을 지정된 점으로 설정하고 prependRotation() 메서드를 사용하여 객체를 회전한 다음 객체를 원래 위치로 다시 평행 이동하는 것입니다. 다음 예제에서는 3D 표시 객체인 myObject에 좌표 (10,10,0)을 중심으로 y축 회전을 적용합니다.

    
    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))입니다. 이 벡터의 길이는 1이어야 합니다.
 
pivotPoint:Vector3D (default = null) — 회전 중심을 정의하는 점입니다. 객체의 기본 pivot 점은 객체의 등록 포인트입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

이 예제에서는 사용자가 마우스를 움직여 타원을 xy축 주위로 회전할 수 있습니다. 타원은 등록 포인트를 중심에 두고 그려집니다. 타원이 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로 설정하면 객체가 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)을 따른 세 개의 증분 변경 집합으로 평행 이동을 설정합니다. 특정 축에만 평행 이동을 적용하려면 다른 매개 변수를 0으로 설정합니다. 매개 변수가 0이면 해당 축을 따라 변경하지 않는 것입니다.

평행 이동 변경은 절대 기준이 아닙니다. 이 효과의 기준은 객체(원래 위치와 방향의 기준 틀)입니다. 변형 행렬에 절대 변경을 적용하려면 recompose() 메서드를 사용합니다. 변형 순서도 중요합니다. 평행 이동 후 회전 변형을 수행할 때는 회전 후 평행 이동 변형을 수행할 때와 다른 효과가 나타납니다. prependTranslation()을 사용하면 표시 객체가 다른 변형에 관계없이 자신이 향하는 방향으로 계속 이동합니다. 예를 들어 표시 객체가 양의 x축 방향을 향하고 있으면 객체의 회전에 관계없이 prependTranslation() 메서드에 지정된 방향으로 계속 이동합니다. 평행 이동을 다른 변형보다 나중에 적용하려면 appendTranslation() 메서드를 사용합니다.

매개 변수

x:Number — x축을 따른 증분 평행 이동입니다.
 
y:Number — y축을 따른 증분 평행 이동입니다.
 
z:Number — z축을 따른 증분 평행 이동입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

이 예제에서는 사용자가 마우스를 사용하여 타원을 스테이지의 y축 위쪽으로 밀 수 있습니다. 사용자가 마우스를 타원 위로 이동하면 타원이 y축 위쪽으로 좌표 10만큼 이동합니다. 마우스가 타원을 벗어나면 타원이 아직 맨 위에 도달하지 않은 경우 타원이 다시 y축 위쪽으로 좌표 10만큼 이동합니다. 타원이 맨 위에 도달하면 스테이지의 맨 아래로 다시 이동합니다.
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() 메서드를 사용하여 설정을 검색하고 적절히 변경합니다. 그런 다음 recompose() 메서드를 사용하여 Matrix3D 객체를 수정된 변형으로 설정합니다.

recompose() 메서드의 매개 변수는 변형에 사용된 방향 스타일을 지정합니다. 기본 방향은 각 축에 대한 서로 다른 세 개의 회전각으로 방향을 정의하는 eulerAngles입니다. 회전은 차례대로 수행되며 다른 회전의 축을 변경하지 않습니다. 표시 객체의 축 회전 속성은 오일러 각 방향 스타일 변형을 수행합니다. 다른 방향 스타일 옵션은 axisAnglequaternion입니다. 축 각 방향에서는 축과 각의 조합을 사용하여 방향을 결정합니다. 객체가 회전하는 중심 축은 방향을 나타내는 단위 벡터입니다. 각은 벡터 주위로 회전할 크기를 나타냅니다. 또한 방향은 표시 객체가 향하는 위치를 결정하고, 각은 위쪽을 가리키는 방향을 결정합니다. appendRotation()prependRotation() 메서드에는 축 각 방향이 사용됩니다. 쿼터니언 방향에는 복소수 및 벡터의 네 번째 요소가 사용됩니다. 세 개의 축(x,y,z)과 회전각(w)을 사용하여 방향을 나타냅니다. interpolate() 메서드에는 쿼터니언이 사용됩니다.

매개 변수

components:Vector.<Vector3D> — Matrix3D 객체의 평행 이동, 회전 및 크기 조절 요소를 대체하는 세 Vector3D 객체의 Vector입니다.
 
orientationStyle:String (default = "eulerAngles") — 행렬 변형에 사용되는 방향 스타일을 결정하는 선택적 매개 변수입니다. 세 가지 방향 스타일은 eulerAngles(상수 EULER_ANGLES), axisAngle(상수 AXIS_ANGLE) 및 quaternion(상수 QUATERNION)입니다. 여러 방향 스타일에 대한 자세한 내용은 geom.Orientation3D 클래스를 참조하십시오.

반환값
Booleancomponents Vector의 Vector3D 요소 중 하나라도 없거나 null인 경우 false를 반환합니다.

관련 API 요소

transformVector

()메서드 
public function transformVector(v:Vector3D):Vector3D

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

변형 행렬을 사용하여 한 좌표 공간에서 다른 좌표 공간으로 Vector3D 객체를 변형합니다. 반환된 Vector3D 객체는 변형이 적용된 새 좌표를 보유합니다. 평행 이동을 비롯한 모든 행렬 변형이 Vector3D 객체에 적용됩니다.

transformVector() 메서드의 결과를 표시 객체의 위치에 적용하면 표시 객체의 위치만 변경되고 표시 객체의 회전 및 크기 조절 요소는 그대로 유지됩니다.

참고: 이 메서드는 전달된 Vector3D의 w 구성 요소를 자동으로 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

변형 행렬을 사용하여 한 좌표 공간에서 다른 좌표 공간으로 숫자의 Vector를 변형합니다. tranformVectors() 메서드는 vin Vector 객체의 숫자를 세 개씩 읽어 3D 좌표(x,y,z)로 인식하고 변형된 3D 좌표를 vout Vector 객체에 배치합니다. 평행 이동을 비롯한 모든 행렬 변형이 vin Vector 객체에 적용됩니다. transformVectors() 메서드를 사용하면 3D 객체를 메쉬로 렌더링하고 변형할 수 있습니다. 메쉬는 객체의 모양을 정의하는 꼭지점의 컬렉션입니다.

매개 변수

vin:Vector.<Number> — 각각의 3개 숫자가 변형될 3D 좌표(x,y,z)를 나타내는 숫자 Vector입니다.
 
vout:Vector.<Number> — 각각의 3개 숫자가 변형된 3D 좌표(x,y,z)를 나타내는 숫자 Vector입니다.

관련 API 요소

transpose

()메서드 
public function transpose():void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

현재 Matrix3D 객체를 행과 열이 교환된 행렬로 변환합니다. 예를 들어 현재 Matrix3D 객체의 rawData1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34라는 16개의 숫자가 들어 있는 경우 transpose() 메서드는 요소를 4개씩 한 행으로 읽고 행을 열로 바꿉니다. 결과 행렬의 rawData1,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 클래스는 영어로 나타납니다.