Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Polygon extends Object implements Shape, Serializable
Polygon
класс инкапсулирует описание закрытой, двумерной области в пределах координатного пространства. Эта область ограничивается произвольным числом линейных сегментов, каждый из которых является одной стороной многоугольника. Внутренне, многоугольник включает список (x,y)
координатные пары, где каждая пара определяет вершину многоугольника, и двух последовательных пар, являются конечными точками строки, которая является стороной многоугольника. Первые и заключительные пары (x,y)
к точкам присоединяется линейный сегмент, который закрывает многоугольник. Это Polygon
определяется с помощью даже нечетного вьющегося правила. См. WIND_EVEN_ODD
для определения даже нечетного вьющегося правила. Методы тестирования хита этого класса, которые включают contains
, intersects
и inside
методы, используйте внутреннее определение, описанное в Shape
комментарии класса.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
- общее количество точек в Polygon
NegativeArraySizeException
- если значение 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
в интерфейсе Shape
Rectangle
это определяет границы этого 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
в интерфейсе Shape
Rectangle2D
это - ограничивающий прямоугольник высокой точности 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
класс выполняет более точные вычисления геометрического пересечения чем больше всего Shape
объекты и поэтому могут использоваться, если более точный ответ требуется.intersects
в интерфейсе Shape
x
- X координат верхнего левого угла указанной прямоугольной областиy
- координата Y верхнего левого угла указанной прямоугольной областиw
- ширина указанной прямоугольной областиh
- высота указанной прямоугольной областиtrue
если внутренняя часть Shape
и внутренняя часть прямоугольной области пересекается, или, и, очень вероятно, пересечется и перекрестные вычисления, было бы слишком дорого, чтобы выполнить; false
иначе.Area
public boolean intersects(Rectangle2D r)
Shape
пересекает внутреннюю часть указанного Rectangle2D
. Shape.intersects()
метод позволяет a Shape
реализация, чтобы консервативно возвратиться true
когда: Rectangle2D
и Shape
пересекитесь, но Shapes
этот метод мог бы возвратиться true
даже при том, что Rectangle2D
не пересекается Shape
. Area
класс выполняет более точные вычисления геометрического пересечения чем больше всего Shape
объекты и поэтому могут использоваться, если более точный ответ требуется.intersects
в интерфейсе Shape
r
- указанное Rectangle2D
true
если внутренняя часть 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
класс выполняет более точные геометрические вычисления чем больше всего Shape
объекты и поэтому могут использоваться, если более точный ответ требуется.contains
в интерфейсе Shape
x
- X координат верхнего левого угла указанной прямоугольной областиy
- координата Y верхнего левого угла указанной прямоугольной областиw
- ширина указанной прямоугольной областиh
- высота указанной прямоугольной области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
класс выполняет более точные геометрические вычисления чем больше всего Shape
объекты и поэтому могут использоваться, если более точный ответ требуется.contains
в интерфейсе Shape
r
- Указанное Rectangle2D
true
если внутренняя часть Shape
полностью содержит Rectangle2D
; false
иначе или, если Shape
содержит Rectangle2D
и intersects
возвраты метода true
и вычисления включения были бы слишком дороги, чтобы выполнить.Shape.contains(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Polygon
и обеспечивает доступ к геометрии схемы этого Polygon
. Дополнительное AffineTransform
может быть определен так, чтобы координаты, возвращенные в итерации, были преобразованы соответственно.getPathIterator
в интерфейсе Shape
at
- дополнительное AffineTransform
быть примененным к координатам, поскольку они возвращаются в итерации, или null
если непреобразованные координаты требуютсяPathIterator
объект, который обеспечивает доступ к геометрии этого Polygon
.public PathIterator getPathIterator(AffineTransform at, double flatness)
Shape
и обеспечивает доступ к геометрии схемы Shape
. Только SEG_MOVETO, SEG_LINETO, и типы точки SEG_CLOSE возвращаются iterator. Так как многоугольники являются уже плоскими, flatness
параметр игнорируется. Дополнительное AffineTransform
может быть определен, когда координаты, возвращенные в итерации, преобразовываются соответственно.getPathIterator
в интерфейсе Shape
at
- дополнительное AffineTransform
быть примененным к координатам, поскольку они возвращаются в итерации, или null
если непреобразованные координаты требуютсяflatness
- максимальное количество, которое контрольные точки для данной кривой могут изменить от colinear перед подразделенной кривой, заменяется прямой линией, соединяющей конечные точки. Так как многоугольники уже плоские flatness
параметр игнорируется.PathIterator
объект, который обеспечивает доступ к Shape
геометрия объекта.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.