java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
接口 PathIterator

所有已知实现类:
FlatteningPathIterator

public interface PathIterator

PathIterator 接口通过允许调用方一次一段地获取边界的路径,为实现 Shape 接口的对象提供返回其边界几何形状的机制。此接口允许这些对象一次一段地获取其边界,方法是使用从一阶到三阶 Bézier 曲线,这些曲线是直线、二次或三次 Bézier 样条。

多个子路径可以通过使用 "MOVETO" 段在几何形状中创建间断性以从一个子路径的结尾移动到下一个子路径的开头来表示。

每个子路径都可以被手动关闭,方法是在该子路径的起始 "MOVETO" 段所在的坐标上结束子路径中的最后一段,或者使用 "CLOSE" 段追加一条线段连接最后一点和第一点。应该知道,相对于使用 "CLOSE" 段关闭路径而言,手动关闭轮廓可能导致在子路径的结束点使用不同的线风格装饰。例如,BasicStroke 对象使用线 "JOIN" 装饰来连接第一点和最后一点(如果遇到 "CLOSE" 段),而在该开头坐标上结束路径将导致在结尾使用线 "CAP" 装饰。

另请参见:
Shape, BasicStroke

字段摘要
static int SEG_CLOSE
          该段类型常量指定应该通过将线段追加到与最新 SEG_MOVETO 对应的点来关闭前面的子路径。
static int SEG_CUBICTO
          该段类型常量针对某个 3 个点的集合,指定要根据最新指定点绘制的三次参数曲线。
static int SEG_LINETO
          该段类型常量针对某个点,指定要根据最新指定点绘制的线的结束点。
static int SEG_MOVETO
          该段类型常量针对某个点,指定新子路径的起始位置。
static int SEG_QUADTO
          该段类型常量针对某对点,指定要根据最新指定点绘制的二次参数曲线。
static int WIND_EVEN_ODD
          用于指定确定路径内部的奇偶规则的缠绕规则常量。
static int WIND_NON_ZERO
          用于指定确定路径内部的非零规则的缠绕规则常量。
 
方法摘要
 int currentSegment(double[] coords)
          使用迭代返回当前路径段的坐标和类型。
 int currentSegment(float[] coords)
          使用迭代返回当前路径段的坐标和类型。
 int getWindingRule()
          返回用于确定路径迭代的缠绕规则。
 boolean isDone()
          测试迭代是否完成。
 void next()
          只要最初的遍历方向上还存在点,就沿该方向将迭代器移动到下一个路径段。
 

字段详细信息

WIND_EVEN_ODD

static final int WIND_EVEN_ODD
用于指定确定路径内部的奇偶规则的缠绕规则常量。奇偶规则规定,如果路径段穿过任意方向上从一点向无穷大绘制的射线的次数为奇数,则该点位于路径内。

另请参见:
常量字段值

WIND_NON_ZERO

static final int WIND_NON_ZERO
用于指定确定路径内部的非零规则的缠绕规则常量。非零规则规定,如果路径段按逆时针方向与按顺时针方向穿过任意方向上从一点向无穷大绘制的射线的次数不同,则该点位于路径内。

另请参见:
常量字段值

SEG_MOVETO

static final int SEG_MOVETO
该段类型常量针对某个点,指定新子路径的起始位置。

另请参见:
常量字段值

SEG_LINETO

static final int SEG_LINETO
该段类型常量针对某个点,指定要根据最新指定点绘制的线的结束点。

另请参见:
常量字段值

SEG_QUADTO

static final int SEG_QUADTO
该段类型常量针对某对点,指定要根据最新指定点绘制的二次参数曲线。该曲线通过使用最新指定的(当前)点 (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 个点的集合,指定要根据最新指定点绘制的三次参数曲线。该曲线通过使用最新指定的(当前)点 (CP)、第一个控制点 (P1)、第二个控制点 (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)!)
 
这一形式的曲线通常称为 Bézier 曲线。

另请参见:
常量字段值

SEG_CLOSE

static final int SEG_CLOSE
该段类型常量指定应该通过将线段追加到与最新 SEG_MOVETO 对应的点来关闭前面的子路径。

另请参见:
常量字段值
方法详细信息

getWindingRule

int getWindingRule()
返回用于确定路径迭代的缠绕规则。

返回:
缠绕规则。
另请参见:
WIND_EVEN_ODD, WIND_NON_ZERO

isDone

boolean isDone()
测试迭代是否完成。

返回:
如果已经读取了所有的段,则返回 true;否则返回 false

next

void next()
只要最初的遍历方向上还存在点,就沿该方向将迭代器移动到下一个路径段。


currentSegment

int currentSegment(float[] coords)
使用迭代返回当前路径段的坐标和类型。返回值就是路径段类型:SEG_MOVETO、SEG_LINETO、SEG_QUADTO、SEG_CUBICTO 或 SEG_CLOSE。必须传入长度为 6 的 float 数组,该数组可用于存储点的坐标。每个点都存储为一对 float x、y 坐标。SEG_MOVETO 和 SEG_LINETO 类型返回一个点,SEG_QUADTO 返回两个点,SEG_CUBICTO 返回 3 个点,SEG_CLOSE 不返回任何点。

参数:
coords - 保存从此方法返回数据的数组
返回:
当前路径段的路径段类型。
另请参见:
SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, SEG_CLOSE

currentSegment

int currentSegment(double[] coords)
使用迭代返回当前路径段的坐标和类型。返回值就是路径段类型:SEG_MOVETO、SEG_LINETO、SEG_QUADTO、SEG_CUBICTO 或 SEG_CLOSE。必须传入长度为 6 的 double 数组,该数组可用于存储点的坐标。每个点都存储为一对 double x、y 坐标。SEG_MOVETO 和 SEG_LINETO 类型返回一个点,SEG_QUADTO 返回两个点,SEG_CUBICTO 返回 3 个点,SEG_CLOSE 不返回任何点。

参数:
coords - 保存从此方法返回数据的数组
返回:
当前路径段的路径段类型。
另请参见:
SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, SEG_CLOSE

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策