플래시 개발시에 자주 쓰이는 산수 또는 수학들 5 - 1 - 행렬, Matrix3D
ActionScript 3 2011. 10. 19. 02:17 |자, 글을 보기 전에 이 글을 먼저 보세요 (http://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC)
자세한 설명은 위 링크에 더 많이 나와있고, 전 실제 Matrix3D가 어떻게 돌아가는지를 살짜쿵 맛보겠습니다. 내용이 많아질거 같아 설명은 링크에 양보하겠습니다.
(Matrix 로 설명을 할까 하다가, 요즘 플래시 11 + 3d 스터디를 시작했기 때문에 Matrix3D 로 설명을 하겠습니다.)
(as 레퍼런스의 이미지를 가져왔습니다)
Matrix3D 는 4*4 행렬을 사용합니다
4 * 4 행렬이기 때문에 총 원소(이 표현이 맞는지 모르겠네요)는 16개가 됩니다. Matrix 와 달리 16개나 되는 숫자를 넣다보니 Vector.<Number> 를 생성자의 인자로 갖게 됩니다.
그리고 Vector 의 원소는 1행의 1열부터 1행2열, 1행 3열, 1행 4열, 2행 1열..... 이런 순서로 채우게 됩니다
예를 들어,
var v:Vector.<Number> = Vector.<Number>([0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15])
var m:Matrix3D = new Matrix3D(v)
이렇게 넣는다면,
0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15
이렇게 채운다는 말이죠...
디스플레이 오브젝트의 기본값(scaleX = scaleY = scaleZ = 1, x = y = z = 0)으로 넣는다면
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
이렇게 될겁니다. 맨마지막(그림에서 tw)이 1인 이유는 항등행렬에 만족하기 위해서입니다. 이건 나중에 기회가 되면...
자, 이걸 위치를 이동시켜보죠. x, y 를 각각 100 씩 이동시켜본다고 하면...
1 0 0 100
0 1 0 100
0 0 1 0
0 0 0 1
이 되어야 한다는 겁니다
하지만 이런걸 대신 해주는게 바로 Matrix3D 입니다. 여러가지 행렬연산을 해주는 메소드들이 있죠... 예를 들어 위치이동이라면 appendTranslation($x:Number, $y:Number, $z:Number):void 이 바로 그놈입니다
var a:Matrix3D = new Matrix3D();
a.appendTranslation(100,200,300);
trace(a.rawData);
//////////////////////////
1,0,0,0,0,1,0,0,0,0,1,0,100,200,300,1
이렇게 나온단 얘기입니다... 이 외에도 많은 메소드 들이 있는데 그 녀석들이 복잡한 행렬연산을 대신하기 위해 있습니다.
뭐, 어렵죠? 저도 어렵습니다
그러니 어려운 행렬 계산은 컴퓨터에 맞기고, 우리는 3d 공부나 하는 것이... 아 3d가 더 어려운가...
암튼 내용이 길어지니 오늘은 Matrix3D 맛배기만... (사실, 저도 행렬을 잘 몰라 공부하며 쓴거라... 더 공부해야 2편을 쓸 수 있다는...)
p.s. 웬지 써놓고 보니, 자주 쓰이는 플래시 수학은 아닌듯하다는... 게다가 스터디에도 딱히 필요 없을 것도 같다는...
//////////////////////////
1,0,0,0,0,1,0,0,0,0,1,0,100,200,300,1
이렇게 나온단 얘기입니다... 이 외에도 많은 메소드 들이 있는데 그 녀석들이 복잡한 행렬연산을 대신하기 위해 있습니다.
뭐, 어렵죠? 저도 어렵습니다
그러니 어려운 행렬 계산은 컴퓨터에 맞기고, 우리는 3d 공부나 하는 것이... 아 3d가 더 어려운가...
암튼 내용이 길어지니 오늘은 Matrix3D 맛배기만... (사실, 저도 행렬을 잘 몰라 공부하며 쓴거라... 더 공부해야 2편을 쓸 수 있다는...)
p.s. 웬지 써놓고 보니, 자주 쓰이는 플래시 수학은 아닌듯하다는... 게다가 스터디에도 딱히 필요 없을 것도 같다는...
'ActionScript 3' 카테고리의 다른 글
as2용 Dictionary 클래스 만들기 - 0 (0) | 2013.02.04 |
---|---|
e-book "플래시와 비트" A/S 포스팅 &, |, ~ 사용하기 (0) | 2011.11.07 |
플래시 개발시에 자주 쓰이는 산수 또는 수학들 1-1 - 원주율, π (0) | 2011.10.19 |
플래시 개발시에 자주 쓰이는 산수 또는 수학들 4 - 0, 1 그리고 범위 (0) | 2011.10.15 |
플래시 개발시에 자주 쓰이는 산수 또는 수학들 3 - 항등식 / 스크롤 (0) | 2011.10.15 |