패키지 | flash.geom |
클래스 | public class Matrix |
상속 | Matrix Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
matrix
속성에 적용한 다음, 이 Transform 객체를 표시 객체의 transform
속성으로 적용함으로써 표시 객체에서 다양한 그래픽 변형 작업을 수행할 수 있습니다. 이러한 변형 기능으로는 평행 이동(x와 y 위치 변경), 회전, 크기 조절 및 기울이기 등이 있습니다.
이러한 종류의 변형을 총칭하여 어파인 변형(affine transformations)이라고 합니다. 어파인 변형에서는 변형 과정에서 선이 곧은 상태를 유지하므로 평행선이 그대로 평행을 이루게 됩니다.
표시 객체에 변형 행렬을 적용하려면 Transform 객체를 만들어 matrix
속성을 변형 행렬로 설정한 다음, 표시 객체의 transform
속성을 Transform 객체로 설정합니다. Matrix 객체는 다음을 비롯한 일부 메서드에서 매개 변수로 사용할 수 있습니다.
- BitmapData 객체의
draw()
메서드 - Graphics 객체의
beginBitmapFill()
메서드,beginGradientFill()
메서드 또는lineGradientStyle()
메서드
변형 행렬 객체는 다음 내용이 들어 있는 3 x 3 행렬입니다.
기존의 변형 행렬에서 u
, v
및 w
속성은 추가적인 기능을 제공합니다. Matrix 클래스는 2차원 영역에서만 작동할 수 있으므로 항상 u
와 v
의 속성 값은 0.0, w
의 속성 값은 1.0으로 가정합니다. 이 행렬의 유효 값은 다음과 같습니다.
Matrix 객체에서 나머지 여섯 가지 속성(a
, b
, c
, d
, tx
및 ty
) 값을 가져오고 설정할 수 있습니다.
Matrix 클래스는 평행 이동, 크기 조절, 회전 및 기울이기의 네 가지 주요 변형 종류를 지원합니다. 다음 테이블에서 설명하는 특수한 메서드를 사용하면 이 중 세 가지 변형을 설정할 수 있습니다.
변형 종류 | 메서드 | Matrix 값 | 표시 결과 | 설명 |
---|---|---|---|---|
평행 이동(위치 이동) |
translate(tx, ty)
| 이미지를 오른쪽으로 tx 픽셀, 아래쪽으로 ty 픽셀 이동합니다. | ||
크기 조절 |
scale(sx, sy)
| 각 픽셀의 x 축 위치에 sx , y 축 위치에 sy 를 곱하여 이미지 크기를 조절합니다. | ||
회전 |
rotate(q)
| 라디안 단위로 측정된 각도 q 만큼 이미지를 회전합니다. | ||
기울이기 또는 시어링(shearing) | 메서드가 없으므로 속성 b 와 c 를 설정해야 합니다. | 이미지를 x 축이나 y 축에 평행하게 점차 이동합니다. Matrix 객체의 b 속성은 y 축을 기준으로 한 경사각의 탄젠트 값을 나타내고, c 속성은 x 축을 기준으로 한 경사각의 탄젠트 값을 나타냅니다. |
각 변형 함수가 현재 행렬 속성을 변경하므로 여러 변형을 효과적으로 결합할 수 있습니다. 이렇게 하려면 표시 객체의 transform
속성을 사용하여 먼저 두 가지 이상의 변형 함수를 호출한 다음, 해당 표시 객체 대상에 행렬을 적용합니다.
Matrix 객체의 메서드를 호출하기 전에 new Matrix()
생성자를 사용하여 Matrix 객체를 만드십시오.
기타 예제
관련 API 요소
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()
속성 | 정의 주체 | ||
---|---|---|---|
a : Number
이미지의 크기를 조절하거나 회전할 때 x축의 픽셀 위치에 영향을 주는 값입니다. | Matrix | ||
b : Number
이미지를 회전하거나 기울일 때 y축의 픽셀 위치에 영향을 주는 값입니다. | Matrix | ||
c : Number
이미지를 회전하거나 기울일 때 x축의 픽셀 위치에 영향을 주는 값입니다. | Matrix | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
d : Number
이미지의 크기를 조절하거나 회전할 때 y축의 픽셀 위치에 영향을 주는 값입니다. | Matrix | ||
tx : Number
x축을 따라 각 점이 평행 이동할 거리입니다. | Matrix | ||
ty : Number
y축을 따라 각 점이 평행 이동할 거리입니다. | Matrix |
메서드 | 정의 주체 | ||
---|---|---|---|
지정된 매개 변수를 가진 새로운 Matrix 객체를 생성합니다. | Matrix | ||
이 행렬의 복제본인 새 Matrix 객체와, 포함된 객체의 동일한 복사본을 함께 반환합니다. | Matrix | ||
행렬을 현재 행렬과 연결하여 두 행렬의 기하학적 효과를 효율적으로 결합합니다. | Matrix | ||
Vector3D 객체를 호출 Matrix3D 객체의 특정 열에 복사합니다. | Matrix | ||
호출 Matrix 객체의 특정 열을 Vector3D 객체에 복사합니다. | Matrix | ||
소스 Point 객체의 모든 행렬 데이터를 호출 Matrix 객체에 복사합니다. | Matrix | ||
Vector3D 객체를 호출 Matrix 객체의 특정 행에 복사합니다. | Matrix | ||
호출 Matrix 객체의 특정 행을 Vector3D 객체에 복사합니다. | Matrix | ||
크기 조절, 회전 및 평행 이동을 위한 매개 변수가 포함되어 있습니다. | Matrix | ||
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Graphics 클래스의 beginGradientFill() 및 lineGradientStyle() 메서드에서 사용할 특정한 스타일의 행렬을 만듭니다. | Matrix | ||
변형 전 좌표 공간의 점이 지정된 경우 변형 작업 후 해당 점의 좌표를 반환합니다. | Matrix | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
각 행렬 속성을 null 변환을 발생시키는 값으로 설정합니다. | Matrix | ||
원행렬의 반대 변형을 수행합니다. | Matrix | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
Matrix 객체에 회전 변형을 적용합니다. | Matrix | ||
행렬에 크기 조절 변형을 적용합니다. | Matrix | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
Matrix의 멤버를 지정된 값으로 설정합니다.
| Matrix | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
Matrix 객체의 속성 목록을 나타내는 텍스트 값을 반환합니다. | Matrix | ||
Matrix 객체가 나타내는 기하학적 변형을 지정된 점에 적용한 결과를 반환합니다. | Matrix | ||
dx 및 dy 매개 변수에 지정된 대로 x 및 y 축을 따라 행렬을 평행 이동합니다. | Matrix | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
a | 속성 |
public var a:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
이미지의 크기를 조절하거나 회전할 때 x축의 픽셀 위치에 영향을 주는 값입니다.
예제 ( 예제 사용 방법 )
myMatrix
를 만들고 해당 a
값을 설정합니다.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.a); // 1 myMatrix.a = 2; trace(myMatrix.a); // 2
b | 속성 |
public var b:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
이미지를 회전하거나 기울일 때 y축의 픽셀 위치에 영향을 주는 값입니다.
예제 ( 예제 사용 방법 )
myMatrix
를 만들고 해당 b
값을 설정합니다.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.b); // 0 var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.b = Math.tan(radians); trace(myMatrix.b); // 0.5773502691896257
c | 속성 |
public var c:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
이미지를 회전하거나 기울일 때 x축의 픽셀 위치에 영향을 주는 값입니다.
예제 ( 예제 사용 방법 )
myMatrix
를 만들고 해당 c
값을 설정합니다.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.c); // 0 var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.c = Math.tan(radians); trace(myMatrix.c); // 0.5773502691896257
d | 속성 |
public var d:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
이미지의 크기를 조절하거나 회전할 때 y축의 픽셀 위치에 영향을 주는 값입니다.
예제 ( 예제 사용 방법 )
myMatrix
를 만들고 해당 d
값을 설정합니다.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.d); // 1 myMatrix.d = 2; trace(myMatrix.d); // 2
tx | 속성 |
public var tx:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
x축을 따라 각 점이 평행 이동할 거리입니다.
예제 ( 예제 사용 방법 )
myMatrix
를 만들고 해당 tx
값을 설정합니다.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 trace(myMatrix.tx);
ty | 속성 |
public var ty:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
y축을 따라 각 점이 평행 이동할 거리입니다.
예제 ( 예제 사용 방법 )
myMatrix
를 만들고 해당 ty
값을 설정합니다.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.ty); // 0 myMatrix.ty = 50; trace(myMatrix.ty); // 50
Matrix | () | 생성자 |
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
지정된 매개 변수를 가진 새로운 Matrix 객체를 생성합니다. 행렬 표기법에서 다음과 같이 속성이 구성됩니다.
new Matrix()
생성자에 매개 변수를 제공하지 않으면 다음 값을 갖는 단위 행렬이 만들어집니다.
행렬 표기법에서 단위 행렬은 다음과 같이 나타납니다.
매개 변수a:Number (default = 1 ) — 이미지의 크기를 조절하거나 회전할 때 x축의 픽셀 위치에 영향을 주는 값입니다.
| |
b:Number (default = 0 ) — 이미지를 회전하거나 기울일 때 y축의 픽셀 위치에 영향을 주는 값입니다.
| |
c:Number (default = 0 ) — 이미지를 회전하거나 기울일 때 x축의 픽셀 위치에 영향을 주는 값입니다.
| |
d:Number (default = 1 ) — 이미지의 크기를 조절하거나 회전할 때 y축의 픽셀 위치에 영향을 주는 값입니다.
| |
tx:Number (default = 0 ) — x축을 따라 각 점이 평행 이동할 거리입니다.
| |
ty:Number (default = 0 ) — y축을 따라 각 점이 평행 이동할 거리입니다.
|
예제 ( 예제 사용 방법 )
Matrix()
생성자에 매개 변수를 보내지 않고 matrix_1
을 만들고, 이 생성자에 매개 변수를 보내어 matrix_2
를 만듭니다. 매개 변수 없이 만들어진 matrix_1
은 a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0 값을 갖는 단위 행렬입니다.
import flash.geom.Matrix; var matrix_1:Matrix = new Matrix(); trace(matrix_1); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6); trace(matrix_2); // (a=1, b=2, c=3, d=4, tx=5, ty=6)
clone | () | 메서드 |
concat | () | 메서드 |
public function concat(m:Matrix):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
행렬을 현재 행렬과 연결하여 두 행렬의 기하학적 효과를 효율적으로 결합합니다. 수학적 용어에서 두 행렬을 연결한다는 것은 행렬 곱셈을 사용하여 두 행렬을 결합하는 것과 같습니다.
예를 들어 행렬 m1
이 인수 4만큼 객체의 크기를 조절하고 행렬 m2
가 1.5707963267949 라디안(Math.PI/2
)만큼 객체를 회전하는 경우, m1.concat(m2)
는 m1
을 인수 4만큼 객체의 크기를 조절하고 Math.PI/2
라디안만큼 객체를 회전하는 행렬로 변환합니다.
이 메서드는 소스 행렬을 연결된 행렬로 바꿉니다. 두 개의 소스 행렬 중 하나를 바꾸지 않고 두 행렬을 연결하려면 클래스 예제 단원에서 보여준 것처럼, 먼저 clone()
메서드를 사용하여 소스 행렬을 복사하십시오.
매개 변수
m:Matrix — 소스 행렬에 연결할 행렬입니다.
|
copyColumnFrom | () | 메서드 |
copyColumnTo | () | 메서드 |
copyFrom | () | 메서드 |
copyRowFrom | () | 메서드 |
copyRowTo | () | 메서드 |
createBox | () | 메서드 |
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
크기 조절, 회전 및 평행 이동을 위한 매개 변수가 포함되어 있습니다. 이 메서드를 행렬에 적용하면 해당 매개 변수에 따라 행렬 값이 설정됩니다.
createBox()
메서드를 사용하면 identity()
, rotate()
, scale()
및 translate()
메서드를 연속적으로 적용한 것과 동일한 행렬을 얻을 수 있습니다. 예를 들어 mat1.createBox(2,2, Math.PI/4, 100, 100)
는 다음과 동일한 효과를 냅니다.
import flash.geom.Matrix; var mat1:Matrix = new Matrix(); mat1.identity(); mat1.rotate(Math.PI/4); mat1.scale(2,2); mat1.translate(10,20);
매개 변수
scaleX:Number — 크기를 가로로 조절할 비율입니다.
| |
scaleY:Number — 크기를 세로로 조절할 비율입니다.
| |
rotation:Number (default = 0 ) — 회전할 각도(라디안 단위)입니다.
| |
tx:Number (default = 0 ) — x 축을 따라 오른쪽으로 평행 이동할 픽셀 수입니다.
| |
ty:Number (default = 0 ) — y 축을 따라 아래쪽으로 평행 이동할 픽셀 수입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
createBox()
메서드를 호출하여 myMatrix
의 x 비율, y 비율, 회전, x 위치 및 y 위치를 설정합니다.
package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Transform; public class Matrix_createBox extends Sprite { public function Matrix_createBox() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createBox(1, 2, Math.PI/4, 50, 100); trace(myMatrix.toString()); // (a=0.7071067811865476, b=1.414213562373095, c=-0.7071067811865475, // d=1.4142135623730951, tx=50, ty=100) var rectangleShape:Shape = createRectangle(20, 80, 0xFF0000); addChild(rectangleShape); var rectangleTrans:Transform = new Transform(rectangleShape); rectangleTrans.matrix = myMatrix; } public function createRectangle(w:Number, h:Number, color:Number):Shape { var rect:Shape = new Shape(); rect.graphics.beginFill(color); rect.graphics.drawRect(0, 0, w, h); addChild(rect); return rect; } } }
createGradientBox | () | 메서드 |
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Graphics 클래스의 beginGradientFill()
및 lineGradientStyle()
메서드에 사용할 특정한 스타일의 행렬을 만듭니다. 폭과 높이는 scaleX
/ scaleY
쌍으로 크기가 조절되고 tx
/ty
값은 폭과 높이의 절반만큼 오프셋됩니다.
예를 들어 다음 특성을 갖는 그래디언트를 생각해 보십시오.
GradientType.LINEAR
- 비율 배열이
[0, 255]
로 설정된 녹색 및 파랑의 두 색상 SpreadMethod.PAD
InterpolationMethod.LINEAR_RGB
다음 그림은 매개 변수 설정이 서로 다른 createGradientBox()
메서드를 사용하여 행렬이 정의된 경우의 그래디언트를 보여 줍니다.
createGradientBox() 설정 | 결과 그래디언트 |
---|---|
width = 25; height = 25; rotation = 0; tx = 0; ty = 0; | |
width = 25; height = 25; rotation = 0; tx = 25; ty = 0; | |
width = 50; height = 50; rotation = 0; tx = 0; ty = 0; | |
width = 50; height = 50; rotation = Math.PI / 4; // 45 degrees tx = 0; ty = 0; |
매개 변수
width:Number — 그래디언트 상자의 폭입니다.
| |
height:Number — 그래디언트 상자의 높이입니다.
| |
rotation:Number (default = 0 ) — 회전할 각도(라디안 단위)입니다.
| |
tx:Number (default = 0 ) — x 축을 따라 오른쪽으로 평행 이동할 픽셀 단위 거리입니다. 이 값은 width 매개 변수의 절반만큼 오프셋됩니다.
| |
ty:Number (default = 0 ) — y 축을 따라 아래쪽으로 평행 이동할 픽셀 단위 거리입니다. 이 값은 height 매개 변수의 절반만큼 오프셋됩니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
createBox()
메서드를 호출하여 myMatrix
의 x 비율, y 비율, 회전, x 위치 및 y 위치를 설정합니다.
package { import flash.display.GradientType; import flash.display.Sprite; import flash.geom.Matrix; public class Matrix_createGradientBox extends Sprite { public function Matrix_createGradientBox() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [100, 100]; var ratios:Array = [0, 0xFF]; this.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix); this.graphics.drawRect(0, 0, 300, 200); } } }
deltaTransformPoint | () | 메서드 |
public function deltaTransformPoint(point:Point):Point
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
변형 전 좌표 공간의 점이 지정된 경우 변형 작업 후 해당 점의 좌표를 반환합니다. transformPoint()
메서드를 사용하여 적용된 표준 변형과 달리 deltaTransformPoint()
메서드를 사용한 변형에서는 평행 이동 매개 변수 tx
와 ty
를 고려하지 않습니다.
매개 변수
point:Point — 행렬 변형의 결과를 얻을 대상이 되는 점입니다.
|
Point — 행렬 변형을 적용한 결과로 얻어진 점입니다.
|
identity | () | 메서드 |
public function identity():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
각 행렬 속성을 null 변환을 발생시키는 값으로 설정합니다. 단위 행렬을 적용하여 변형된 객체는 원래의 객체와 동일해집니다.
identity()
메서드를 호출하면 결과 행렬의 속성은 a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0이 됩니다.
행렬 표기법에서 단위 행렬은 다음과 같이 나타납니다.
invert | () | 메서드 |
public function invert():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
원행렬의 반대 변형을 수행합니다. 역행렬을 객체에 적용하여 원행렬을 적용할 때 수행한 변형을 실행 취소할 수 있습니다.
예제 ( 예제 사용 방법 )
doubleScaleMatrix
의 invert()
메서드를 호출하여 halfScaleMatrix
를 만듭니다. 그런 다음 이 두 객체가 서로 간의 변형 효과를 없애는 역행렬임을 noScaleMatrix
와 동일한 originalAndInverseMatrix
를 만듦으로써 보여 줍니다.
package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Transform; public class Matrix_invert extends Sprite { public function Matrix_invert() { var rect0:Shape = createRectangle(20, 80, 0xFF0000); var rect1:Shape = createRectangle(20, 80, 0x00FF00); var rect2:Shape = createRectangle(20, 80, 0x0000FF); var rect3:Shape = createRectangle(20, 80, 0x000000); var trans0:Transform = new Transform(rect0); var trans1:Transform = new Transform(rect1); var trans2:Transform = new Transform(rect2); var trans3:Transform = new Transform(rect3); var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0); trans0.matrix = doubleScaleMatrix; trace(doubleScaleMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0) var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0); trans1.matrix = noScaleMatrix; rect1.x = 50; trace(noScaleMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var halfScaleMatrix:Matrix = doubleScaleMatrix.clone(); halfScaleMatrix.invert(); trans2.matrix = halfScaleMatrix; rect2.x = 100; trace(halfScaleMatrix.toString()); // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0) var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone(); originalAndInverseMatrix.concat(halfScaleMatrix); trans3.matrix = originalAndInverseMatrix; rect3.x = 150; trace(originalAndInverseMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) } public function createRectangle(w:Number, h:Number, color:Number):Shape { var rect:Shape = new Shape(); rect.graphics.beginFill(color); rect.graphics.drawRect(0, 0, w, h); addChild(rect); return rect; } } }
rotate | () | 메서드 |
scale | () | 메서드 |
public function scale(sx:Number, sy:Number):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
행렬에 크기 조절 변형을 적용합니다. x 축에는 sx
가 곱해지고 y 축에는 sy
가 곱해집니다.
scale()
메서드는 Matrix 객체의 a
와 d
속성을 변경합니다. 행렬 표기법에서 이것은 현재의 행렬을 다음 행렬에 연결하는 것과 같습니다.
매개 변수
sx:Number — x 축을 따라 객체의 크기를 조절하는 데 사용되는 승수입니다.
| |
sy:Number — y 축을 따라 객체의 크기를 조절하는 데 사용되는 승수입니다.
|
setTo | () | 메서드 |
toString | () | 메서드 |
transformPoint | () | 메서드 |
translate | () | 메서드 |
MatrixExample
클래스를 사용하여 그래디언트 채우기가 적용된 큰 사각형을 만드는 방법을 보여 줍니다. 이는 다음 단계로 이루어집니다.
- 응용 프로그램에서 새 Matrix 객체
myMatrix
를 만들고,trace()
메서드를 사용하여myMatrix
객체에 대한 기본 속성 값을 출력합니다. - 그런 다음
width
및height
매개 변수를 200픽셀로 설정하고, 회전 없이 x 축 및 y 축을 따라 평행 이동할 거리를 50 픽셀로 설정하여createGradientBox()
를 호출합니다. createGradientBox()
를 호출한 다음에는myMatrix
객체를 다시 인쇄하여 변경 사항을 보여 줍니다.- 그래디언트 상자가 채워지는 방식을 제어하는 다음 세 가지 변수를 설정합니다.
colors
: 그래디언트 색상을 단색 빨강과 단색 파랑 사이의 색상으로 설정합니다.alphas
: 불투명도를 단색으로 설정합니다.ratios
: 빨강 및 파랑에 동일하게 색상 배분을 설정합니다.
- 응용 프로그램에서는 graphics 메서드
beginGradientFill()
(myMatrix
객체에서 작동)을 호출한 다음lineTo()
메서드를 호출하여 상자에 그래디언트 채우기가 적용되도록 합니다.
package { import flash.geom.Matrix; import flash.display.Sprite; import flash.display.GradientType; public class MatrixExample extends Sprite { public function MatrixExample() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0, 0xFF]; graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix); graphics.lineTo(0, 300); graphics.lineTo(300, 300); graphics.lineTo(300, 0); graphics.lineTo(0, 0); } } }
Tue Jun 12 2018, 03:17 PM Z