프로세싱 좌표변환
좌표변환 함수를 이용하여 도형의 좌표, 크기, 회전등을
표현해보자.
스케치 소스
----------------------------------------------------------------------------
void setup(){
size(480,360);
background(255);
}
void draw(){
fill(255);
rect(0, 0, 100, 100); // 흰색 사각형을 (0,0)에 100x100크기로 그림 --(1)
translate(30, 20); // 기준좌표(왼쪽 맨위)를 (30,20)으로 이동
rect(0, 0, 100, 100); // 결국 사각형을 (30,20)에 100x100크기로 그림 --(2)
translate(50,50); // 기준좌표를 (50,50)으로 이동
// 누적 이동되어 기준좌표는 (0,0)에서 부터 (80,70)으로 이동됨
rect(0,0,100,100); // 결국 사각형을 (80,70)에 100x100크기로 그림 --(3)
translate(-80,-70); // 기준좌표를 (0,0)으로 원위치
pushMatrix(); //pushMatrix(); 와 popMatrix(); 사이에서
// translate(); rotate(); scale();가 적용됨
translate(30, 20);
fill(0);
rect(0, 0, 50, 50); // --(4)
popMatrix();
fill(102);
rect(15, 10, 50, 50); // 위에서 쓰인translate();는 pushMatrix(); 와 popMatrix(); 사이에서
// 제한 되므로 사각형은 그대로 (15,10)좌표에서 그려짐. --(5)
translate(width/2, height/2); //기준좌표를 창의 중앙점으로 옮김
rect(-26, -26, 52, 52); // --(6)
fill(255);
rotate(PI/6.0); // 좌료를 시계방향으로 30도 회전
line(0,0,0,180); // 좌표가 회전으로 수직선이 아닌 사선이 그려짐 --(7)
line(0,0,240,0); // 좌표가 회전으로 수평선이 아닌 사선이 그려짐 --(8)
rect(-26, -26, 52, 52); // 시계방향으로 30도 회전된 사각형 --(9)
scale(0.5); // 좌표를 가로세로 0.5축소됨
rect(200, 200, 50, 50); // 옮겨진 기준좌표(중점)에서 --(10)
//(200,200)이 아닌 (100,100)위치에 그려짐(좌표 회전됨 유지)
scale(0.5,0.7); // 좌표가 가로0.5 세로 0.7 축소됨
//결국 누적되어 가로 0.25 세로 0.35축소됨
rect(200, 200, 50, 50); // --(11)
}
--------------------------------------------------------------------------------------
화면
프로세싱 레퍼런스 http://processing.org/reference/
Transform
applyMatrix()
popMatrix()
printMatrix()
pushMatrix()
resetMatrix()
rotate()
rotateX()
rotateY()
rotateZ()
scale()
shearX()
shearY()
translate()
'아두이노_프로세싱 > 프로세싱' 카테고리의 다른 글
프로세싱 배열선언 (0) | 2012.08.05 |
---|---|
프로세싱 이미지 다루기 (0) | 2012.08.04 |
프로세싱 글자 다루기 (0) | 2012.08.02 |
프로세싱 수학함수3 (atan2() 함수 마우스를 따라다니는 진자) (0) | 2012.07.30 |
프로세싱 수학함수2 (삼각함수) (0) | 2012.07.30 |