JavaTM Platform
Standard Ed. 6

java.awt.geom
인터페이스 PathIterator

기존의 구현 클래스의 일람:
FlatteningPathIterator


public interface PathIterator

PathIterator 인터페이스의 제공하는 기구를 사용하면(자),Shape 인터페이스를 구현하는 객체는, 한 번에 1 세그먼트(segment) 단위로 경계의 패스를 꺼내는 것을 호출 측에 허가하는 것으로, 그 경계의 기하학적 도형을 돌려줄 수가 있습니다. 이 인터페이스는, 1 차에서 3 차까지의 베지에곡선 (라인 및 2 차 또는 3 차 베제스프라인)을 사용하는 것으로 그러한 객체가 그 경계의 패스를 꺼낼 수 있도록(듯이) 합니다.  

복수의 서브 패스는, 「MOVETO」세그먼트(segment)를 사용해 기하학적 도형을 불연속으로 해, 어느 서브 패스의 최후로부터 다음의 서브 패스의 선두로 이동하는 것으로 표현할 수 있습니다.  

각 서브 패스는, 서브 패스의 마지막 세그먼트(segment)를 그 서브 패스의 선두의 「MOVETO」세그먼트(segment)와 같은 좌표로 끝내는지, 또는 「CLOSE」세그먼트(segment)를 사용해 마지막 점으로부터 최초의 점까지 라인 세그먼트(segment)를 추가하는 것으로 수작업으로 종료할 수가 있습니다. 「CLOSE」세그먼트(segment)를 사용해 패스를 닫는 이외 방법으로 윤곽을 수작업으로 닫으면(자), 서브 패스의 종점에서 다른 선종 장식이 사용될 가능성이 있습니다. 예를 들어,BasicStroke 객체는 「CLOSE」세그먼트(segment)를 검출했을 경우에 최초의 점과 마지막 점을 묶기 위해서(때문에) 「JOIN」를 선의 장식으로서 사용합니다만, 최초의 좌표와 같은 좌표로 패스를 끝내면(자), 마지막에 「CAP」가 선의 장식으로서 사용됩니다.

관련 항목:
Shape , BasicStroke

필드의 개요
static int SEG_CLOSE
          선행하는 서브 패스가 가장 새로운 SEG_MOVETO 에 대응하는 점까지의 라인 세그먼트(segment)를 추가하는 것으로 닫혀지지 않으면 안 되는 것을 지정하는 세그먼트(segment)형 정수입니다.
static int SEG_CUBICTO
          가장 새롭게 지정된 점으로부터 draw 되는 3 차 파라메트릭 곡선을 지정하는 3 개의 점세트의 세그먼트(segment)형 정수입니다.
static int SEG_LINETO
          가장 새롭게 지정된 점으로부터 draw 되는 라인의 종점을 지정하는 점의 세그먼트(segment)형 정수입니다.
static int SEG_MOVETO
          새로운 서브 패스의 개시 위치를 지정하는 점의 세그먼트(segment)형 정수입니다.
static int SEG_QUADTO
          가장 새롭게 지정된 점으로부터 draw 되는 2 차 파라메트릭 곡선을 지정하는 점의 페어의 세그먼트(segment)형 정수입니다.
static int WIND_EVEN_ODD
          패스의 내부를 결정하기 위해서(때문에) 우기규칙을 지정하는 굴곡 규칙 정수입니다.
static int WIND_NON_ZERO
          패스의 내부를 결정하기 위해서(때문에) 비제로 규칙을 지정하는 굴곡 규칙 정수입니다.
 
메소드의 개요
 int currentSegment (double[] coords)
          반복 처리의 현재의 패스 세그먼트(segment)의 좌표 및 형태를 돌려줍니다.
 int currentSegment (float[] coords)
          반복 처리의 현재의 패스 세그먼트(segment)의 좌표 및 형태를 돌려줍니다.
 int getWindingRule ()
          패스의 내부를 결정하는 굴곡 규칙을 돌려줍니다.
 boolean isDone ()
          반복 처리가 완료했는지의 여부를 판정합니다.
 void next ()
          이동의 순서 방향으로 아직 점이 있는 경우에, 그 방향에 따라 패스의 다음의 세그먼트(segment)에 반복자를 이동합니다.
 

필드의 상세

WIND_EVEN_ODD

static final int WIND_EVEN_ODD
패스의 내부를 결정하기 위해서(때문에) 우기규칙을 지정하는 굴곡 규칙 정수입니다. 우기규칙은, 점으로부터 무한원점에 임의의 방향으로 draw 된 광선이 패스 세그먼트(segment)에 의해 홀수회 횡단해지는 경우에 그 점이 패스의 안쪽에 있는 것을 지정합니다.

관련 항목:
정수 필드치

WIND_NON_ZERO

static final int WIND_NON_ZERO
패스의 내부를 결정하기 위해서(때문에) 비제로 규칙을 지정하는 굴곡 규칙 정수입니다. 비제로 규칙은, 점으로부터 무한원점에 draw 된 광선이, 패스 세그먼트(segment)에 의해 시계 방향과는 다른 회수로, 반시계방향으로 횡단해지는 경우에 그 점이 패스의 안쪽에 있는 것을 지정합니다.

관련 항목:
정수 필드치

SEG_MOVETO

static final int SEG_MOVETO
새로운 서브 패스의 개시 위치를 지정하는 점의 세그먼트(segment)형 정수입니다.

관련 항목:
정수 필드치

SEG_LINETO

static final int SEG_LINETO
무엇보다 새롭게 지정된 점으로부터 draw 되는 라인의 종점을 지정하는 점의 세그먼트(segment)형 정수입니다.

관련 항목:
정수 필드치

SEG_QUADTO

static final int SEG_QUADTO
무엇보다 새롭게 지정된 점으로부터 draw 되는 2 차 파라메트릭 곡선을 지정하는 점의 페어의 세그먼트(segment)형 정수입니다. 곡선은, 가장 새롭게 지정된 (현재의) 점 (CP), 최초의 제어점 (P1), 및 마지막 보간 된 제어점 (P2)을 사용해, 범위 (t=[0..1]) 으로 파라메트릭 컨트롤 방정식을 푸는 것으로 보간 됩니다. 이 곡선의 파라메트릭 컨트롤 방정식은 다음과 같이 됩니다.
          P(t) = B(2,0) *CP + B(2,1) *P1 + B(2,2) *P2
          0 <= t <= 1

        B(n, m) = mth coefficient of nth degree Bernstein polynomial
               = C(n, m) * t^(m) * (1 - t)^(n-m)
        C(n, m) = Combinations of n things, taken m at a time
               = n! / (m! * (n-m)! )
 

관련 항목:
정수 필드치

SEG_CUBICTO

static final int SEG_CUBICTO
무엇보다 새롭게 지정된 점으로부터 draw 되는 3 차 파라메트릭 곡선을 지정하는 3 개의 점세트의 세그먼트(segment)형 정수입니다. 곡선은, 가장 새롭게 지정된 (현재의) 점 (CP), 최초의 제어점 (P1), 2 번째의 제어점 (P2), 및 마지막 보간 된 제어점 (P3)을 사용해, 범위 (t=[0..1]) 으로 파라메트릭 컨트롤 방정식을 푸는 것으로 보간 됩니다. 이 곡선의 파라메트릭 컨트롤 방정식은 다음과 같이 됩니다.
          P(t) = B(3,0) *CP + B(3,1) *P1 + B(3,2) *P2 + B(3,3) *P3
          0 <= t <= 1

        B(n, m) = mth coefficient of nth degree Bernstein polynomial
               = C(n, m) * t^(m) * (1 - t)^(n-m)
        C(n, m) = Combinations of n things, taken m at a time
               = n! / (m! * (n-m)! )
 
이 형태의 곡선은, 일반적으로 베지에곡선으로서 알려져 있습니다.

관련 항목:
정수 필드치

SEG_CLOSE

static final int SEG_CLOSE
선행하는 서브 패스가 가장 새로운 SEG_MOVETO 에 대응하는 점까지의 라인 세그먼트(segment)를 추가하는 것으로 닫혀지지 않으면 안 되는 것을 지정하는 세그먼트(segment)형 정수입니다.

관련 항목:
정수 필드치
메소드의 상세

getWindingRule

int getWindingRule()
패스의 내부를 결정하는 굴곡 규칙을 돌려줍니다.

반환값:
굴곡 규칙
관련 항목:
WIND_EVEN_ODD , WIND_NON_ZERO

isDone

boolean isDone()
반복 처리가 완료했는지의 여부를 판정합니다.

반환값:
모든 세그먼트(segment)가 읽히고 있는 경우는 true, 그렇지 않은 경우는 false

next

void next()
이동의 순서 방향으로 아직 점이 있는 경우에, 그 방향에 따라 패스의 다음의 세그먼트(segment)에 반복자를 이동합니다.


currentSegment

int currentSegment(float[] coords)
반복 처리의 현재의 패스 세그먼트(segment)의 좌표 및 형태를 돌려줍니다. 반환값은, 패스 세그먼트(segment)의 형태 (SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, 또는 SEG_CLOSE)입니다. 길이 6 의 float 배열을 건네주지 않으면 안되어, 그것은 점의 좌표를 포함하기 위해서 사용됩니다. 각 점은, float x, y 좌표의 페어로서 포함됩니다. SEG_MOVETO 형 및 SEG_LINETO 형은 1 개의 점을 돌려주어, SEG_QUADTO 는 2 개의 점을 돌려주어, SEG_CUBICTO 는 3 개의 점을 돌려주어, SEG_CLOSE 는 점을 돌려주지 않습니다.

파라미터:
coords - 이 메소드로부터 반환되는 데이터를 보관 유지한다 배열
반환값:
현재의 패스 세그먼트(segment)의 형태
관련 항목:
SEG_MOVETO , SEG_LINETO , SEG_QUADTO , SEG_CUBICTO , SEG_CLOSE

currentSegment

int currentSegment(double[] coords)
반복 처리의 현재의 패스 세그먼트(segment)의 좌표 및 형태를 돌려줍니다. 반환값은, 패스 세그먼트(segment)의 형태 (SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, 또는 SEG_CLOSE)입니다. 길이 6 의 double 배열을 돌려주지 않으면 안되어, 그것은 점의 좌표를 포함하기 위해서 사용됩니다. 각 점은, double x, y 좌표의 페어로서 포함됩니다. SEG_MOVETO 형 및 SEG_LINETO 형은 1 개의 점을 돌려주어, SEG_QUADTO 는 2 개의 점을 돌려주어, SEG_CUBICTO 는 3 개의 점을 돌려주어, SEG_CLOSE 는 점을 돌려주지 않습니다.

파라미터:
coords - 이 메소드로부터 반환되는 데이터를 보관 유지한다 배열
반환값:
현재의 패스 세그먼트(segment)의 형태
관련 항목:
SEG_MOVETO , SEG_LINETO , SEG_QUADTO , SEG_CUBICTO , SEG_CLOSE

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.