본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Canvas Operation 에 대해 알아보자. ( Transformation & Scaling & Rotating )

by 돼지왕 왕돼지 2012. 2. 18.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 Canvas 에서 행해지는 Operation들, Transformation, Scaling, Rotating 에 대해 알아보겠습니다.
이 Operation 들은 그리려는 펜의 위치를 이동하는 것만을 말합니다. 직접 그리진 않습니다.


좌표 관련 apis.


int save ([int saveFlags])
void restore()
void restoreToCount(int saveCount)




평행 이동 (transformation)

 
vodi translate (float dx, float dy)
    : 기준 좌표값이 이동하며, 새로 translate 할 때는 새로운 기준좌표값이 다시 기준
 
Paint Pnt = new Paint();
Pnt.setAntiAlias(true);
 
Pnt.setColor(Color.YELLOW);
canvas.drawRect(10, 10, 50, 50, Pnt);
 
canvas.skew(-0.1f, 0); // 오른쪽으로 기울어짐
canvas.translte(60, 0);
canvas.drawRect(10, 10, 50, 50, Pnt);
 
canvas.skew(-0.1f, 0);
canvas.translate(60, 0);
canvas.drawRect(10, 10, 50, 50, Pnt);


 
 
 

확대 ( Scale )

 
public final void scale (float sx, float sy [, float px, float py])
   : sx가 x축 확대비율, sy가 y축 확대비율. (canvas 적용되는 값들 전체 적용)
 
 

회전 ( Rotation )

  
final void rotate (float degrees [, float px, float py])
   : degree는 시계방향으로 px, py는 회전 중심점. 생략시 (0,0)이 중심이 된다.

void skew (float sx, float sy) 
   :  기울임.

 
로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글