MatrixTransformer 클래스에는 Matrix 객체의 기하학적 변환을 적용하는 정적 메서드가 포함되어 있습니다.
transform() 메서드
transform()
메서드에는 다음 항목에 대한 각 매개 변수가 포함되어 있습니다.
-
sourceMatrix
- 이 메서드로 변환하는 입력 행렬
-
xScale
및
yScale
-
x
및
y
비율 인수
-
dx
및
dy
-
x
및
y
평행 이동 크기(픽셀)
-
rotation
- 회전 크기(도)
-
skew
- 기울이기 인수(백분율)
-
skewType
- 기울이기 방향(
"right"
또는
"left"
)
반환값은 결과 행렬입니다.
transform()
메서드는 클래스의 다음 정적 메서드를 호출합니다.
-
skew()
-
scale()
-
translate()
-
rotate()
각 메서드는 변환 효과가 적용된 소스 행렬을 반환합니다.
skew() 메서드
skew()
메서드는 행렬의
b
및
c
속성을 조정하여 행렬을 기울입니다. 선택적 매개 변수인
unit
은 기울이기 각도를 정의하는 데 사용되는 단위를 결정하고, 필요한 경우 이 메서드는
angle
값을 라디안으로 변환합니다.
if (unit == "degrees")
{
angle = Math.PI * 2 * angle / 360;
}
if (unit == "gradients")
{
angle = Math.PI * 2 * angle / 100;
}
기울이기 변환을 적용하기 위해
skewMatrix
라는 Matrix 객체를 만들어 조정합니다. 처음에는 다음과 같이 단위 행렬입니다.
var skewMatrix:Matrix = new Matrix();
skewSide
매개 변수는 기울이기 변환을 적용할 변을 결정합니다. 이 매개 변수가
"right"
로 설정되면 다음 코드에서는 행렬의
b
속성을 설정합니다.
skewMatrix.b = Math.tan(angle);
그렇지 않은 경우에는 다음과 같이 Matrix 객체의
c
속성을 조정하여 아래쪽 변이 기울어집니다.
skewMatrix.c = Math.tan(angle);
그런 다음 아래 예제와 같이 두 행렬을 연결하여 기존 행렬에 결과 기울이기가 적용됩니다.
sourceMatrix.concat(skewMatrix);
return sourceMatrix;
scale() 메서드
다음 예제에서는 비율 인수가 백분율로 지정되어 있는 경우
scale()
메서드로 비율 인수를 조정하고 행렬 객체의
scale()
메서드를 사용하는 방법을 보여 줍니다.
if (percent)
{
xScale = xScale / 100;
yScale = yScale / 100;
}
sourceMatrix.scale(xScale, yScale);
return sourceMatrix;
translate() 메서드
translate()
메서드는 다음과 같이 행렬 객체의
translate()
메서드를 호출하여
dx
및
dy
평행 이동 인수를 적용합니다.
sourceMatrix.translate(dx, dy);
return sourceMatrix;
rotate() 메서드
rotate()
메서드는 입력 회전 인수가 도 또는 그래디언트 단위로 지정되어 있는 경우 이를 라디안으로 변환한 다음, 행렬 객체의
rotate()
메서드를 호출합니다.
if (unit == "degrees")
{
angle = Math.PI * 2 * angle / 360;
}
if (unit == "gradients")
{
angle = Math.PI * 2 * angle / 100;
}
sourceMatrix.rotate(angle);
return sourceMatrix;