|
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 иначе.Areaboolean intersects(Rectangle2D r)
Shape пересекает внутреннюю часть указанного Rectangle2D. Shape.intersects() метод позволяет a Shape реализация, чтобы консервативно возвратиться true когда: Rectangle2D и Shape пересекитесь, но Shapes этот метод мог бы возвратиться true даже при том, что Rectangle2D не пересекается Shape. Area class выполняет более точные вычисления геометрического пересечения чем больше всего Shape объекты и поэтому могут использоваться, если более точный ответ требуется.r - указанное Rectangle2Dtrue если внутренняя часть 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 - Указанное Rectangle2Dtrue если внутренняя часть 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