|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Polygon extends Object implements Shape, Serializable
Polygon class инкапсулирует описание закрытой, двумерной области в пределах координатного пространства. Эта область ограничивается произвольным числом линейных сегментов, каждый из которых является одной стороной многоугольника. Внутренне, многоугольник включает список (x,y) координатные пары, где каждая пара определяет вершину многоугольника, и двух последовательных пар, являются конечными точками строки, которая является стороной многоугольника. Первые и заключительные пары (x,y) к точкам присоединяется линейный сегмент, который закрывает многоугольник. Это Polygon определяется с помощью даже нечетного вьющегося правила. См. WIND_EVEN_ODD для определения даже нечетного вьющегося правила. Методы тестирования хита этого class, которые включают contains, intersects и inside методы, используйте внутреннее определение, описанное в Shape Комментарии class.Shape, Сериализированная Форма| Модификатор и Тип | Поле и Описание |
|---|---|
protected Rectangle |
границы
Границы этого
Polygon. |
int |
npoints
Общее количество точек.
|
int[] |
xpoints
Массив X координат.
|
int[] |
ypoints
Массив координат Y.
|
| Конструктор и Описание |
|---|
Polygon()
Создает пустой многоугольник.
|
Polygon(int[] xpoints, int[] ypoints, int npoints)
Конструкции и инициализируют a
Polygon от указанных параметров. |
| Модификатор и Тип | Метод и Описание |
|---|---|
void |
addPoint(int x, int y)
Добавляет указанные координаты к этому
Polygon. |
boolean |
contains(double x, double y)
Тесты, если указанные координаты в границе
Shape, как описано определением внутренних. |
boolean |
contains(double x, double y, double w, double h)
Тесты, если внутренняя часть
Shape полностью содержит указанную прямоугольную область. |
boolean |
contains(int x, int y)
Определяет, являются ли указанные координаты в этом
Polygon. |
boolean |
contains(Point p)
Определяет ли указанное
Point в этом Polygon. |
boolean |
contains(Point2D p)
|
boolean |
contains(Rectangle2D r)
Тесты, если внутренняя часть
Shape полностью содержит указанное Rectangle2D. |
Прямоугольник |
getBoundingBox()
Осуждаемый.
С версии 1.1 JDK, замененной
getBounds(). |
Прямоугольник |
getBounds()
Получает ограничивающий прямоугольник этого
Polygon. |
Rectangle2D |
getBounds2D()
Возвращает высокую точность и более точный ограничивающий прямоугольник
Shape чем getBounds метод. |
PathIterator |
getPathIterator(AffineTransform at)
Возвращает объект iterator, который выполняет итерации вдоль границы этого
Polygon и обеспечивает доступ к геометрии схемы этого Polygon. |
PathIterator |
getPathIterator(AffineTransform at, double flatness)
Возвращает объект iterator, который выполняет итерации вдоль границы
Shape и обеспечивает доступ к геометрии схемы Shape. |
boolean |
inside(int x, int y)
Осуждаемый.
С версии 1.1 JDK, замененной
contains(int, int). |
boolean |
intersects(double x, double y, double w, double h)
Тесты, если внутренняя часть
Shape пересекает внутреннюю часть указанной прямоугольной области. |
boolean |
intersects(Rectangle2D r)
Тесты, если внутренняя часть
Shape пересекает внутреннюю часть указанного Rectangle2D. |
void |
invalidate()
Лишает законной силы или сбрасывает любые внутренне-кэшированные-данные, которые зависят от координат вершины этого
Polygon. |
void |
reset()
Сбросы это
Polygon возразите против пустого многоугольника. |
void |
translate(int deltaX, int deltaY)
Преобразовывает вершины
Polygon deltaX вдоль оси X и deltaY вдоль оси Y. |
public int npoints
npoints представляет число актуальных вопросов в этом Polygon и могли бы быть меньше чем число элементов в xpoints или ypoints. Это значение может быть НУЛЕМ.addPoint(int, int)public int[] xpoints
Polygon. Дополнительные элементы позволяют новым точкам быть добавленными к этому Polygon не воссоздавая этот массив. Значение npoints равно числу актуальных вопросов в этом Polygon.addPoint(int, int)public int[] ypoints
Polygon. Дополнительные элементы позволяют новым точкам быть добавленными к этому Polygon не воссоздавая этот массив. Значение npoints равно числу актуальных вопросов в этом Polygon.addPoint(int, int)protected Rectangle bounds
Polygon. Это значение может быть нулем.getBoundingBox(), getBounds()public Polygon()
public Polygon(int[] xpoints,
int[] ypoints,
int npoints)
Polygon от указанных параметров.xpoints - массив X координатypoints - массив координат Ynpoints - общее количество точек в PolygonNegativeArraySizeException - если значение npoints отрицательно.IndexOutOfBoundsException - если npoints больше чем длина xpoints или длина ypoints.NullPointerException - если xpoints или ypoints null.public void reset()
Polygon возразите против пустого многоугольника. Координатные массивы и данные в них оставляют нетронутыми, но число очков сбрасывается, чтобы обнулить, чтобы отметить старые данные вершины как недопустимые и начать накапливать новые данные вершины вначале. Все внутренне-кэшированные-данные, касающиеся старых вершин, отбрасываются. Отметьте, что начиная с координатных массивов до сброса снова используются, создавая новое пустое Polygon могло бы быть больше памяти, эффективной чем сброс текущего, если число вершин в новых данных многоугольника значительно меньше чем число вершин в данных до сброса.invalidate()public void invalidate()
Polygon. Этот метод нужно вызвать после любого непосредственного управления координатами в xpoints или ypoints массивы, чтобы избежать непоследовательных следствий методов такой как getBounds или contains это могло бы кэшировать данные от более ранних вычислений, касающихся координат вершины.getBounds()public void translate(int deltaX,
int deltaY)
Polygon deltaX вдоль оси X и deltaY вдоль оси Y.deltaX - количество, чтобы преобразовать вдоль X осейdeltaY - количество, чтобы преобразовать вдоль Оси Ypublic void addPoint(int x,
int y)
Polygon. Если работа, которая вычисляет ограничивающий прямоугольник этого Polygon был уже выполнен, такой как getBounds или contains, тогда этот метод обновляет ограничивающий прямоугольник.
x - указанное X координатy - указанная координата YgetBounds(), contains(java.awt.Point)public Rectangle getBounds()
Polygon. Ограничивающий прямоугольник является самым маленьким Rectangle чьи стороны параллельны x и осям Y координатного пространства, и могут полностью содержать Polygon.getBounds в интерфейсе ShapeRectangle это определяет границы этого Polygon.Shape.getBounds2D()@Deprecated public Rectangle getBoundingBox()
getBounds().Polygon.Polygon.public boolean contains(Point p)
Point в этом Polygon.p - указанное Point быть протестированнымtrue если Polygon содержит Point; false иначе.contains(double, double)public boolean contains(int x,
int y)
Polygon. x - указанное X координат, которые будут протестированыy - указанные Y координируют, чтобы быть протестированнымиtrue если это Polygon содержит указанные координаты (x,y); false иначе.contains(double, double)@Deprecated public boolean inside(int x, int y)
contains(int, int).Polygon.x - указанное X координат, которые будут протестированыy - указанные Y координируют, чтобы быть протестированнымиtrue если это Polygon содержит указанные координаты (x,y); false иначе.contains(double, double)public Rectangle2D getBounds2D()
Shape чем getBounds метод. Отметьте, что нет никакой гарантии что возвращенный Rectangle2D самый маленький ограничивающий прямоугольник, который включает Shape, только то, что Shape находится полностью в пределах обозначенного Rectangle2D. Ограничивающий прямоугольник, возвращенный этим методом, обычно более труден чем возвращенное getBounds метод и никогда не перестал работать должный переполнить проблем, так как возвращаемое значение может быть экземпляром Rectangle2D это использует значения двойной точности, чтобы сохранить размерности. Отметьте, что определение внутренних может привести к ситуациям где точки на схеме определения shape возможно, не считается содержавшимся в возвращенном bounds объект, но только в случаях, где те вопросы также не рассматриваются содержавшиеся в оригинале shape.
Если a point в shape согласно contains(point) метод, тогда это должно быть в возвращенном Rectangle2D границы возражают согласно contains(point) метод bounds. Определенно:
shape.contains(p) требует bounds.contains(p)
Если a point не в shape, тогда это могло бы все еще содержаться в bounds объект:
bounds.contains(p) не подразумевает shape.contains(p)
getBounds2D в интерфейсе ShapeRectangle2D это - ограничивающий прямоугольник высокой точности Shape.Shape.getBounds()public boolean contains(double x,
double y)
Shape, как описано определением внутренних.public boolean contains(Point2D p)
public boolean intersects(double x,
double y,
double w,
double h)
Shape пересекает внутреннюю часть указанной прямоугольной области. Прямоугольная область, как полагают, пересекается Shape если какая-либо точка содержится в обоих внутренняя часть Shape и указанная прямоугольная область. Shape.intersects() метод позволяет a Shape реализация, чтобы консервативно возвратиться true когда:
Shape пересекитесь, но Shapes этот метод мог бы возвратиться true даже при том, что прямоугольная область не пересекается Shape. Area class выполняет более точные вычисления геометрического пересечения чем больше всего Shape объекты и поэтому могут использоваться, если более точный ответ требуется.intersects в интерфейсе Shapex - X координат верхнего левого угла указанной прямоугольной областиy - координата Y верхнего левого угла указанной прямоугольной областиw - width указанной прямоугольной областиh - height указанной прямоугольной областиtrue если внутренняя часть Shape и внутренняя часть прямоугольной области пересекается, или, и, очень вероятно, пересечется и перекрестные вычисления, было бы слишком дорого, чтобы выполнить; false иначе.Areapublic boolean intersects(Rectangle2D r)
Shape пересекает внутреннюю часть указанного Rectangle2D. Shape.intersects() метод позволяет a Shape реализация, чтобы консервативно возвратиться true когда: Rectangle2D и Shape пересекитесь, но Shapes этот метод мог бы возвратиться true даже при том, что Rectangle2D не пересекается Shape. Area class выполняет более точные вычисления геометрического пересечения чем больше всего Shape объекты и поэтому могут использоваться, если более точный ответ требуется.intersects в интерфейсе Shaper - указанное Rectangle2Dtrue если внутренняя часть Shape и внутренняя часть указанного Rectangle2D пересекитесь, или, и, очень вероятно, пересекутся и перекрестные вычисления, было бы слишком дорого, чтобы выполнить; false иначе.Shape.intersects(double, double, double, double)public boolean contains(double x,
double y,
double w,
double h)
Shape полностью содержит указанную прямоугольную область. Все координаты, которые лежат в прямоугольной области, должны лечь в пределах Shape для всей rectanglar области, которую рассмотрят содержавший в пределах Shape. Shape.contains() метод позволяет a Shape реализация, чтобы консервативно возвратиться false когда:
intersect возвраты метода true и Shape полностью содержит прямоугольную область, предельно дороги. Shapes этот метод мог бы возвратиться false даже при том, что Shape содержит прямоугольную область. Area class выполняет более точные геометрические вычисления чем больше всего Shape объекты и поэтому могут использоваться, если более точный ответ требуется.contains в интерфейсе Shapex - X координат верхнего левого угла указанной прямоугольной областиy - координата Y верхнего левого угла указанной прямоугольной областиw - width указанной прямоугольной областиh - height указанной прямоугольной областиtrue если внутренняя часть Shape полностью содержит указанную прямоугольную область; false иначе или, если Shape содержит прямоугольную область и intersects возвраты метода true и вычисления включения были бы слишком дороги, чтобы выполнить.Area, Shape.intersects(double, double, double, double)public boolean contains(Rectangle2D r)
Shape полностью содержит указанное Rectangle2D. Shape.contains() метод позволяет a Shape реализация, чтобы консервативно возвратиться false когда: intersect возвраты метода true и Shape полностью содержит Rectangle2D предельно дороги. Shapes этот метод мог бы возвратиться false даже при том, что Shape содержит Rectangle2D. Area class выполняет более точные геометрические вычисления чем больше всего Shape объекты и поэтому могут использоваться, если более точный ответ требуется.contains в интерфейсе Shaper - Указанное Rectangle2Dtrue если внутренняя часть Shape полностью содержит Rectangle2D; false иначе или, если Shape содержит Rectangle2D и intersects возвраты метода true и вычисления включения были бы слишком дороги, чтобы выполнить.Shape.contains(double, double, double, double)public PathIterator getPathIterator(AffineTransform at)
Polygon и обеспечивает доступ к геометрии схемы этого Polygon. Дополнительное AffineTransform может быть определен так, чтобы координаты, возвращенные в итерации, были преобразованы соответственно.getPathIterator в интерфейсе Shapeat - дополнительное AffineTransform быть примененным к координатам, поскольку они возвращаются в итерации, или null если непреобразованные координаты требуютсяPathIterator объект, который обеспечивает доступ к геометрии этого Polygon.public PathIterator getPathIterator(AffineTransform at, double flatness)
Shape и обеспечивает доступ к геометрии схемы Shape. Только SEG_MOVETO, SEG_LINETO, и типы точки SEG_CLOSE возвращаются iterator. Так как многоугольники являются уже плоскими, flatness параметр игнорируется. Дополнительное AffineTransform может быть определен, когда координаты, возвращенные в итерации, преобразовываются соответственно.getPathIterator в интерфейсе Shapeat - дополнительное AffineTransform быть примененным к координатам, поскольку они возвращаются в итерации, или null если непреобразованные координаты требуютсяflatness - максимальное количество, которое контрольные точки для данной кривой могут изменить от colinear перед подразделенной кривой, заменяется прямой линией, соединяющей конечные точки. Так как многоугольники уже плоские flatness параметр игнорируется.PathIterator объект, который обеспечивает доступ к Shape геометрия объекта.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92