If you're seeing this message, it means we're having trouble loading external resources on our website.

웹 필터가 올바르게 작동하지 않으면 도메인 *. kastatic.org*.kasandbox.org이 차단되어 있는지 확인하세요.

주요 내용

다중 변환

이제 평행이동, 회전 및 크기 조정의 기본적인 사항을 알았습니다. 이 모든 것을 함께 이용하는 것과 처음에 간과했던 일부 복잡성에 관해 살펴보겠습니다.

순서 고려

여러 변형을 수행할 때 순서에 따라 결과가 다릅니다. 회전 다음에 변환 다음에 크기를 조정하는 것은 변환 다음에 회전 다음에 크기를 조정하는 것과 동일한 결과를 제공하지 않습니다. 다음은 그것을 보여주는 예제 프로그램입니다.
사용하는 순서는 원하는 결과가 무엇인가에 달려 있습니다. 객체 자체가 아닌 모눈 종이를 이동한다는 것을 염두에 두기 바랍니다. 그리고 동작하는 순서를 찾아야 합니다.

변환 행렬

회전, 평행이동 또는 크기 조정을 할 때마다 변환을 하는 데 필요한 정보는 수로 구성된 표에 축적됩니다. 이 표 또는 행렬에는 약간의 행과 열이 있지만 그럼에도 불구하고 수학의 기적을 통해 임의의 일련의 변환을 수행하는 데 필요한 모든 정보를 포함합니다. 그리고 그것이 바로 pushMatrix()popMatrix()의 이름에 해당 단어가 있는 이유입니다.
이름의 push와 pop 부분은 어떤가요? 이것은 스택(stack)과 같은 컴퓨터 개념에서 온 것입니다. 이것은 카페테리아에서 스프링이 든 쟁반 기계처럼 작동합니다. 누군가 쟁반을 스택에 반환하면 쟁반은 자체 무게로 플랫폼을 아래로 꾹 누룹니다. 누군가 쟁반이 필요하면 스택의 상단에서 가져갈 수 있으며 나머지 쟁반들은 위로 약간 올라옵니다.
비슷한 방법으로 pushMatrix()는 좌표 시스템의 현재 상태를 메모리 영역의 맨 위에 놓고 popMatrix()은 그 상태를 다시 끄집어 냅니다. 이전 예제에서는 그림의 각 부분 전에 확실하게 좌표 시스템이 "깨끗해"지도록 pushMatrix()popMatrix()를 사용했습니다. 다른 모든 예제에서 그러한 두 함수에 대한 호출은 실제로 필요하지 않습니다. 왜냐하면 후속적인 변형이 존재하지 않기 때문입니다. 그러나 아무것도 건드리지 않고 격자판의 상태를 저장하고 복원할 수 있습니다. 가장 좋은 방법으로는 임의의 변형을 수행할 때 항상 그러한 함수를 사용하기 바랍니다.
또한 행렬을 다시 원래의 상태("항등 행렬(identity matrix)")로 재설정하는 resetMatrix() 함수가 있습니다. 그러나 push와 pop 함수는 거의 항상 더 나은 방법입니다.
대수학에서 행렬이 어떻게 작동하는지 학습하거나 복습하고 싶나요? 칸아카데미의 행렬, 특히 행렬을 이용한 기하학적 변환을 살펴볼 수 있습니다.

본 내용은 제이 데이비드 아이젠버그(J David Eisenberg) 가 저술한 2D Transformations을 각색한 것이며, 본 내용물의 저작권은 Creative Commons Attribution-NonCommercial-ShareAlike 라이선스를 적용합니다.