Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface Shape
Shape
интерфейс обеспечивает определения для объектов, которые представляют некоторую форму геометрической формы. Shape
описывается a PathIterator
объект, который может выразить схему Shape
так же как правило для того, чтобы определить, как схема делит 2-D плоскость на внутренние и внешние точки. Каждый Shape
объект обеспечивает обратные вызовы, чтобы получить ограничивающий прямоугольник геометрии, определить или точки, или прямоугольники лежат частично или полностью в пределах внутренней части Shape
, и получите a PathIterator
объект, который описывает путь траектории Shape
схема.
Определение внутренних: вопрос рассматривается, чтобы лечь внутри a Shape
если и только если:
Shape
граница или
Shape
граница и пространство, сразу смежное с точкой в увеличении X
направление полностью в границе или
Y
направление в границе. contains
и intersects
методы рассматривают внутреннюю часть a Shape
чтобы быть областью, это включает, как будто это было заполнено. Это означает, что эти методы полагают, что открытые формы неявно закрываются с целью определения, если форма содержит или пересекает прямоугольник или если форма содержит точку.
PathIterator
, AffineTransform
, FlatteningPathIterator
, GeneralPath
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
contains(double x, double y)
Тесты, если указанные координаты в границе
Shape , как описано определением внутренних. |
boolean |
contains(double x, double y, double w, double h)
Тесты, если внутренняя часть
Shape полностью содержит указанную прямоугольную область. |
boolean |
contains(Point2D p)
|
boolean |
contains(Rectangle2D r)
Тесты, если внутренняя часть
Shape полностью содержит указанное Rectangle2D . |
Прямоугольник |
getBounds()
Возвращает целое число
Rectangle это полностью включает Shape . |
Rectangle2D |
getBounds2D()
Возвращает высокую точность и более точный ограничивающий прямоугольник
Shape чем getBounds метод. |
PathIterator |
getPathIterator(AffineTransform at)
Возвращает объект iterator, который выполняет итерации вперед
Shape граница и обеспечивает доступ к геометрии Shape схема. |
PathIterator |
getPathIterator(AffineTransform at, double flatness)
Возвращает объект iterator, который выполняет итерации вперед
Shape граница и обеспечивает доступ к сглаженному представлению Shape геометрия схемы. |
boolean |
intersects(double x, double y, double w, double h)
Тесты, если внутренняя часть
Shape пересекает внутреннюю часть указанной прямоугольной области. |
boolean |
intersects(Rectangle2D r)
Тесты, если внутренняя часть
Shape пересекает внутреннюю часть указанного Rectangle2D . |
Rectangle getBounds()
Rectangle
это полностью включает Shape
. Отметьте, что нет никакой гарантии что возвращенный Rectangle
самый маленький ограничивающий прямоугольник, который включает Shape
, только то, что Shape
находится полностью в пределах обозначенного Rectangle
. Возвращенный Rectangle
мог бы также быть не в состоянии полностью включить Shape
если Shape
переполняет ограниченного диапазона целочисленного типа данных. getBounds2D
метод обычно возвращает более трудный ограничивающий прямоугольник из-за его большей гибкости в представлении. Отметьте, что определение внутренних может привести к ситуациям где точки на схеме определения shape
возможно, не считается содержавшимся в возвращенном bounds
объект, но только в случаях, где те вопросы также не рассматриваются содержавшиеся в оригинале shape
.
Если a point
в shape
согласно contains(point)
метод, тогда это должно быть в возвращенном Rectangle
границы возражают согласно contains(point)
метод bounds
. Определенно:
shape.contains(x,y)
требует bounds.contains(x,y)
Если a point
не в shape
, тогда это могло бы все еще содержаться в bounds
объект:
bounds.contains(x,y)
не подразумевает shape.contains(x,y)
Rectangle
это полностью включает Shape
.getBounds2D()
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)
Rectangle2D
это - ограничивающий прямоугольник высокой точности Shape
.getBounds()
boolean contains(double x, double y)
Shape
, как описано определением внутренних.x
- указанное X координат, которые будут протестированыy
- указанные Y координируют, чтобы быть протестированнымиtrue
если указанные координаты в Shape
граница; false
иначе.boolean contains(Point2D p)
p
- указанное Point2D
быть протестированнымtrue
если указанное Point2D
в границе Shape
; false
иначе.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
объекты и поэтому могут использоваться, если более точный ответ требуется.x
- X координат верхнего левого угла указанной прямоугольной областиy
- координата Y верхнего левого угла указанной прямоугольной областиw
- width указанной прямоугольной областиh
- height указанной прямоугольной областиtrue
если внутренняя часть Shape
и внутренняя часть прямоугольной области пересекается, или, и, очень вероятно, пересечется и перекрестные вычисления, было бы слишком дорого, чтобы выполнить; false
иначе.Area
boolean intersects(Rectangle2D r)
Shape
пересекает внутреннюю часть указанного Rectangle2D
. Shape.intersects()
метод позволяет a Shape
реализация, чтобы консервативно возвратиться true
когда: Rectangle2D
и Shape
пересекитесь, но Shapes
этот метод мог бы возвратиться true
даже при том, что Rectangle2D
не пересекается Shape
. Area
class выполняет более точные вычисления геометрического пересечения чем больше всего Shape
объекты и поэтому могут использоваться, если более точный ответ требуется.r
- указанное Rectangle2D
true
если внутренняя часть Shape
и внутренняя часть указанного Rectangle2D
пересекитесь, или, и, очень вероятно, пересекутся и перекрестные вычисления, было бы слишком дорого, чтобы выполнить; false
иначе.intersects(double, double, double, double)
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
объекты и поэтому могут использоваться, если более точный ответ требуется.x
- X координат верхнего левого угла указанной прямоугольной областиy
- координата Y верхнего левого угла указанной прямоугольной областиw
- width указанной прямоугольной областиh
- height указанной прямоугольной областиtrue
если внутренняя часть Shape
полностью содержит указанную прямоугольную область; false
иначе или, если Shape
содержит прямоугольную область и intersects
возвраты метода true
и вычисления включения были бы слишком дороги, чтобы выполнить.Area
, intersects(double, double, double, double)
boolean contains(Rectangle2D r)
Shape
полностью содержит указанное Rectangle2D
. Shape.contains()
метод позволяет a Shape
реализация, чтобы консервативно возвратиться false
когда: intersect
возвраты метода true
и Shape
полностью содержит Rectangle2D
предельно дороги. Shapes
этот метод мог бы возвратиться false
даже при том, что Shape
содержит Rectangle2D
. Area
class выполняет более точные геометрические вычисления чем больше всего Shape
объекты и поэтому могут использоваться, если более точный ответ требуется.r
- Указанное Rectangle2D
true
если внутренняя часть Shape
полностью содержит Rectangle2D
; false
иначе или, если Shape
содержит Rectangle2D
и intersects
возвраты метода true
и вычисления включения были бы слишком дороги, чтобы выполнить.contains(double, double, double, double)
PathIterator getPathIterator(AffineTransform at)
Shape
граница и обеспечивает доступ к геометрии Shape
схема. Если дополнительное AffineTransform
определяется, координаты, возвращенные в итерации, преобразовываются соответственно. Каждый звонок в этот метод возвращает новое PathIterator
возразите, что пересекает геометрию Shape
возразите независимо от любого другого PathIterator
объекты в использовании одновременно.
Это рекомендуется, но не гарантируется, который возражает реализации Shape
интерфейс изолирует итерации, которые в процессе от любых изменений, которые могли бы произойти с геометрией исходного объекта во время таких итераций.
at
- дополнительное AffineTransform
быть примененным к координатам, поскольку они возвращаются в итерации, или null
если непреобразованные координаты требуютсяPathIterator
объект, который независимо пересекает геометрию Shape
.PathIterator getPathIterator(AffineTransform at, double flatness)
Shape
граница и обеспечивает доступ к сглаженному представлению Shape
геометрия схемы. Только SEG_MOVETO, SEG_LINETO, и типы точки SEG_CLOSE возвращаются iterator.
Если дополнительное AffineTransform
определяется, координаты, возвращенные в итерации, преобразовываются соответственно.
Количеством подразделения кривых сегментов управляют flatness
параметр, который определяет максимальное расстояние, которое любая точка на несглаженной преобразованной кривой может отклонить от возвращенных сглаженных сегментов пути. Отметьте, что предел на точности сглаженного пути мог бы быть тихо наложен, заставляя очень маленькие параметры выравнивания быть обработанным как большие значения. Этот предел, если есть один, определяется определенной реализацией, которая используется.
Каждый звонок в этот метод возвращает новое PathIterator
возразите что пересечения Shape
объектная геометрия независимо от любого другого PathIterator
объекты в использовании одновременно.
Это рекомендуется, но не гарантируется, который возражает реализации Shape
интерфейс изолирует итерации, которые в процессе от любых изменений, которые могли бы произойти с геометрией исходного объекта во время таких итераций.
at
- дополнительное AffineTransform
быть примененным к координатам, поскольку они возвращаются в итерации, или null
если непреобразованные координаты требуютсяflatness
- максимальное расстояние, которое линейным сегментам, используемым, чтобы приблизить кривые сегменты, позволяют отклонить от любой точки на исходной кривойPathIterator
это независимо пересекает сглаженное представление геометрии Shape
.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92