2012/01/30

[Android Dev] Path를 이용한 그리기

Path는 외곽선 정보를 담고 있는 객체로 다소 복잡한 그리기에 이용할 수 있다.

간단한 사용법은 아래 코드를 보면 쉽게 파악할 수 있다.

Path path = new Path();

path.moveTo( 10, 10 );
path.lineTo( 20, 20 );
path.moveTo( 30, 30 );
path.lineTo( 50, 50 );

RectF rc = new RectF();
rc.set( 100, 100, 200, 200 );
path.addArc( rc, 0, 120 );

path.moveTo( 200, 200 );
path.cubicTo( 300, 200, 200, 300, 300, 300 );

path.moveTo( 200, 300 );
path.quadTo( 300, 300, 300, 400 );

Paint paint = new Paint();
paint.setAntiAlias( true );
paint.setStrokeWidth( 2 );

paint.setColor( Color.YELLOW );
paint.setStyle(Paint.Style.STROKE);
canvas.drawPath( path, paint );



위 코드의 결과로 아래와 같은 그림이 그려 졌다.



Path는 그림을 그리 듯 외곽선 정보를 추가할 수 있다. move 와 line 으로 선을 그릴 수 있으며 Arc, Circle, Quad, Cubic 으로 곡선을 추가할 수 있다. 패스를 그리는 함수 중 r로 시작하는 함수는 좌표 계산을 상대적으로 하는 함수 이다.



개발자 문서를 보면 함수에 대한 설명을 볼 수 있다.



Path는 다른 객체와 결합할 수 있고 Matrix를 이용하여 변형도 가능한다. 

아래 코드는 위에서 작업한 Path를 복사해서 200,200 좌표를 기준으로 45도 회전 시키는 코드이다.

Matrix matrix = new Matrix();
matrix.setRotate( 45, 200, 200 );

Path path2 = new Path();
path2.set( path );
path2.transform( matrix );

Paint paint2 = new Paint();
paint2.setAntiAlias( true );
paint2.setStrokeWidth( 2 );

paint2.setColor( Color.GREEN );
paint2.setStyle(Paint.Style.STROKE);
canvas.drawPath( path2, paint2 );



 위 코드의  실행 결과는 아래 이미지와 같다.

 

&

Original Post : http://neodreamer-dev.tistory.com/633

No comments :

Post a Comment