매트릭스 스택 설정 함수
이 문서는 매트릭스 스택의 현재 최상단을 지정된 매트릭스로 덮어쓰는 함수인 matrix_stack_set
에 대해 설명합니다.
함수 구문
matrix_stack_set(matrix);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
matrix | 정수 | 사용할 매트릭스 인덱스 |
반환값
이 함수는 반환값이 없습니다.
사용 예제
아래의 코드는 새로운 매트릭스를 생성하고, 그 결과로 얻은 매트릭스 인덱스를 변수 "m"에 저장한 후, 매트릭스 스택의 최상단을 이 매트릭스로 교체합니다.
var m = matrix_build(x, y, 0, 0, 0, 0, 1, 1, 1);
matrix_stack_set(m);
활용 및 응용 예제
- 2D 변환 적용
gml var translate_matrix = matrix_build(1, 0, 0, 1, 100, 50); matrix_stack_set(translate_matrix);
- 회전 변환 적용
gml var rotation_matrix = matrix_build(cos(degtorad(45)), sin(degtorad(45)), -sin(degtorad(45)), cos(degtorad(45)), 0, 0); matrix_stack_set(rotation_matrix);
- 스케일 변환 적용
gml var scale_matrix = matrix_build(2, 0, 0, 2, 0, 0); matrix_stack_set(scale_matrix);
- 복합 변환 적용
gml var combined_matrix = matrix_build(1, 0, 0, 1, 50, 50); combined_matrix = matrix_multiply(combined_matrix, matrix_build(cos(degtorad(30)), sin(degtorad(30)), -sin(degtorad(30)), cos(degtorad(30)), 0, 0)); matrix_stack_set(combined_matrix);
- 원점으로 이동 후 회전
gml var move_to_origin = matrix_build(1, 0, 0, 1, -50, -50); matrix_stack_set(move_to_origin); var rotation = matrix_build(cos(degtorad(90)), sin(degtorad(90)), -sin(degtorad(90)), cos(degtorad(90)), 0, 0); matrix_stack_set(rotation); var move_back = matrix_build(1, 0, 0, 1, 50, 50); matrix_stack_set(move_back);
이와 같은 방식으로 matrix_stack_set
함수를 활용하여 다양한 매트릭스 변환을 적용할 수 있습니다.