PathIterator 인터페이스
PathIterator 인터페이스
PathIterator 인터페이스는 Shape 인터페이스를 구현하는 객체가 경계의 기하 구조를 한 번에 한 세그먼트씩 검색할 수 있는 메커니즘을 제공해요.
본문
이 인터페이스는 1차부터 3차까지의 베지어 곡선(직선, 2차·3차 베지어 스플라인)을 사용해서 경계 경로를 한 세그먼트씩 검색할 수 있게 해요.
public interface PathIterator
여러 하위 경로는 MOVETO 세그먼트로 기하 구조에 불연속을 만들어 한 하위 경로의 끝에서 다음 하위 경로의 시작으로 이동함으로써 표현할 수 있어요.
세그먼트 타입 상수
SEG_MOVETO— 새 하위 경로의 시작점으로 이동하는 세그먼트SEG_LINETO— 직선 세그먼트SEG_QUADTO— 2차 베지어 세그먼트SEG_CUBICTO— 3차 베지어 세그먼트SEG_CLOSE— 하위 경로를 닫는 세그먼트
각 하위 경로는 마지막 세그먼트를 그 하위 경로의 시작 MOVETO 세그먼트와 같은 좌표에서 끝내거나 CLOSE 세그먼트를 사용해 수동으로 닫을 수 있어요. CLOSE 세그먼트는 마지막 점에서 처음으로 돌아가는 선분을 추가해요.
윈딩 규칙 상수
WIND_EVEN_ODD— 짝수-홀수 규칙WIND_NON_ZERO— 0이 아닌 규칙
두 규칙은 경로의 어느 영역이 안쪽인지 결정하는 방식이 달라요.
주의
윤곽선을 수동으로 닫는 것과 CLOSE 세그먼트로 경로를 닫는 것은 끝점에서 다른 선 스타일 장식이 사용될 수 있어요. 예를 들어 BasicStroke 객체는 CLOSE 세그먼트를 만나면 첫 점과 마지막 점을 연결하는 선 JOIN 장식을 사용하지만, 경로를 시작 좌표와 같은 좌표에서 끝내면 끝점에 선 CAP 장식이 사용돼요.
주요 메서드
currentSegment(float[] coords)/currentSegment(double[] coords)— 현재 세그먼트의 좌표와 타입을 반환해요.next()— 다음 세그먼트로 이동해요.isDone()— 반복 완료 여부를 확인해요.getWindingRule()— 윈딩 규칙을 반환해요.