JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
ÀÎÅÍÆäÀ̽º PathIterator

¾Ë·ÁÁø ±¸Çö Ŭ·¡½º ¸ñ·Ï:
FlatteningPathIterator

public interface PathIterator

PathIteratorÀÎÅÍÆäÀ̽ºÀÇ Á¦°øÇÏ´Â µµ±¸¸¦ »ç¿ëÇϸé, Shape ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼´Â ÇÑ ¹ø¿¡ 1 ¼¼±×¸ÕÆ®(segment) ´ÜÀ§·Î °æ°èÀÇ Æнº¸¦ ²¨³»´Â °ÍÀ» È£Ãâ Ãø¿¡ Çã°¡ÇÏ´Â °ÍÀ¸·Î ±× °æ°èÀÇ Áö¿À¸ÞÆ®¸®¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â 1 Â÷¿¡¼­ 3 Â÷±îÁöÀÇ º£Áö¿¡°î¼± (¶óÀÎ ¹× 2 Â÷ ¶Ç´Â 3 Â÷ º£Á¦½ºÇÁ¶óÀÎ)À» »ç¿ëÇÏ´Â °ÍÀ¸·Î ±×·¯ÇÑ °´Ã¼°¡ ±× °æ°èÀÇ Æнº¸¦ ²¨³¾ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.

º¹¼öÀÇ ¼­ºê Æнº´Â ¡¸MOVETO¡¹¼¼±×¸ÕÆ®(segment)¸¦ »ç¿ëÇØ Áö¿À¸ÞÆ®¸®¸¦ ºÒ¿¬¼ÓÀ¸·Î ÇØ, ¾î´À ¼­ºê ÆнºÀÇ ÃÖÈķκÎÅÍ ´ÙÀ½ÀÇ ¼­ºê ÆнºÀÇ ¼±µÎ·Î À̵¿ÇÏ´Â °ÍÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.

°¢ ¼­ºê Æнº´Â ¼­ºê ÆнºÀÇ ¸¶Áö¸· ¼¼±×¸ÕÆ®(segment)¸¦ ±× ¼­ºê ÆнºÀÇ ¼±µÎÀÇ ¡¸MOVETO¡¹¼¼±×¸ÕÆ®(segment)¿Í °°Àº ÁÂÇ¥·Î ³¡³»´ÂÁö, ¶Ç´Â ¡¸CLOSE¡¹¼¼±×¸ÕÆ®(segment)¸¦ »ç¿ëÇØ ¸¶Áö¸· Á¡À¸·ÎºÎÅÍ ÃÖÃÊÀÇ Á¡±îÁö ¼±ºÐÀ» Ãß°¡ÇÏ´Â °ÍÀ¸·Î ¼öÀÛ¾÷À¸·Î Á¾·áÇÒ ¼ö ÀÖ½À´Ï´Ù . ¡¸CLOSE¡¹¼¼±×¸ÕÆ®(segment)¸¦ »ç¿ëÇØ Æнº¸¦ ´Ý´Â ÀÌ¿Ü ¹æ¹ýÀ¸·Î À±°ûÀ» ¼öÀÛ¾÷À¸·Î ´ÝÀ¸¸é, ¼­ºê ÆнºÀÇ Á¾Á¡¿¡¼­ ´Ù¸¥ ¼±Á¾ Àå½ÄÀÌ »ç¿ëµÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, BasicStroke °´Ã¼´Â ¡¸CLOSE¡¹¼¼±×¸ÕÆ®(segment)¸¦ °ËÃâÇßÀ» °æ¿ì¿¡ ÃÖÃÊÀÇ Á¡°ú ¸¶Áö¸· Á¡À» ¹­±â À§Çؼ­ ¡¸JOIN¡¹¸¦ ¼±ÀÇ Àå½ÄÀ¸·Î¼­ »ç¿ëÇÕ´Ï´Ù¸¸, ÃÖÃÊÀÇ ÁÂÇ¥¿Í °°Àº ÁÂÇ¥·Î Æнº¸¦ ³¡³»¸é, ¸¶Áö¸·¿¡ ¡¸CAP¡¹°¡ ¼±ÀÇ Àå½ÄÀ¸·Î¼­ »ç¿ëµË´Ï´Ù.

°ü·Ã Ç׸ñ:
Shape, BasicStroke

ÇÊµå °³¿ä
static int SEG_CLOSE
          ¼±ÇàÇÏ´Â ¼­ºê Æнº°¡ °¡Àå »õ·Î¿î SEG_MOVETO¿¡ ´ëÀÀÇÏ´Â Á¡±îÁöÀÇ ¼±ºÐÀ» Ãß°¡ÇÏ´Â °ÍÀ¸·Î ´ÝÇôÁöÁö ¾ÊÀ¸¸é ¾È µÇ´Â °ÍÀ» ÁöÁ¤ÇÏ´Â ¼¼±×¸ÕÆ®(segment)Çü Á¤¼öÀÔ´Ï´Ù.
static int SEG_CUBICTO
          °¡Àå »õ·Ó°Ô ÁöÁ¤µÈ Á¡À¸·ÎºÎÅÍ ·»´õ¸µ µÇ´Â 3 Â÷ ÆĶó¸ÞÆ®¸¯ °î¼±À» ÁöÁ¤ÇÏ´Â 3°³ÀÇ Á¡¼¼Æ®ÀÇ ¼¼±×¸ÕÆ®(segment)Çü Á¤¼öÀÔ´Ï´Ù.
static int SEG_LINETO
          °¡Àå »õ·Ó°Ô ÁöÁ¤µÈ Á¡À¸·ÎºÎÅÍ ·»´õ¸µ µÇ´Â ¼±ÀÇ Á¾Á¡À» ÁöÁ¤ÇÏ´Â Á¡ÀÇ ¼¼±×¸ÕÆ®(segment)Çü Á¤¼öÀÔ´Ï´Ù.
static int SEG_MOVETO
          »õ·Î¿î ¼­ºê ÆнºÀÇ °³½Ã À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â Á¡ÀÇ ¼¼±×¸ÕÆ®(segment)Çü Á¤¼öÀÔ´Ï´Ù.
static int SEG_QUADTO
          °¡Àå »õ·Ó°Ô ÁöÁ¤µÈ Á¡À¸·ÎºÎÅÍ ·»´õ¸µ µÇ´Â 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
ÆнºÀÇ ³»ºÎ¸¦ °áÁ¤Çϱâ À§Çؼ­ ¿ì±â±ÔÄ¢À» ÁöÁ¤ÇÏ´Â ±¼°î ±ÔÄ¢ Á¤¼öÀÔ´Ï´Ù. ¿ì±â±ÔÄ¢Àº Á¡À¸·ÎºÎÅÍ ¹«ÇÑ¿øÁ¡¿¡ ÀÓÀÇÀÇ ¹æÇâÀ¸·Î ·»´õ¸µ µÈ ±¤¼±ÀÌ Æнº ¼¼±×¸ÕÆ®(segment)¿¡ ÀÇÇØ È¦¼öȸ Ⱦ´ÜÇØÁö´Â °æ¿ì¿¡ ±× Á¡ÀÌ ÆнºÀÇ ¾ÈÂÊ¿¡ ÀÖ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

WIND_NON_ZERO

static final int WIND_NON_ZERO
ÆнºÀÇ ³»ºÎ¸¦ °áÁ¤Çϱâ À§Çؼ­ ºñÁ¦·Î ±ÔÄ¢À» ÁöÁ¤ÇÏ´Â ±¼°î ±ÔÄ¢ Á¤¼öÀÔ´Ï´Ù. ºñÁ¦·Î ±ÔÄ¢Àº Á¡À¸·ÎºÎÅÍ ¹«ÇÑ¿øÁ¡¿¡ ·»´õ¸µ µÈ ±¤¼±ÀÌ, Æнº ¼¼±×¸ÕÆ®(segment)¿¡ ÀÇÇØ ½Ã°è ¹æÇâ°ú´Â ´Ù¸¥ ȸ¼ö·Î ¹Ý½Ã°è¹æÇâÀ¸·Î Ⱦ´ÜÇØÁö´Â °æ¿ì¿¡ ±× Á¡ÀÌ ÆнºÀÇ ¾ÈÂÊ¿¡ ÀÖ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

SEG_MOVETO

static final int SEG_MOVETO
»õ·Î¿î ¼­ºê ÆнºÀÇ °³½Ã À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â Á¡ÀÇ ¼¼±×¸ÕÆ®(segment)Çü Á¤¼öÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

SEG_LINETO

static final int SEG_LINETO
¹«¾ùº¸´Ù »õ·Ó°Ô ÁöÁ¤µÈ Á¡À¸·ÎºÎÅÍ ·»´õ¸µ µÇ´Â ¼±ÀÇ Á¾Á¡À» ÁöÁ¤ÇÏ´Â Á¡ÀÇ ¼¼±×¸ÕÆ®(segment)Çü Á¤¼öÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

SEG_QUADTO

static final int SEG_QUADTO
¹«¾ùº¸´Ù »õ·Ó°Ô ÁöÁ¤µÈ Á¡À¸·ÎºÎÅÍ ·»´õ¸µ µÇ´Â 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
¹«¾ùº¸´Ù »õ·Ó°Ô ÁöÁ¤µÈ Á¡À¸·ÎºÎÅÍ ·»´õ¸µ µÇ´Â 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)Çü Á¤¼öÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪
¸Þ¼­µåÀÇ »ó¼¼

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 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.