Spec-Zone .ru
спецификации, руководства, описания, API
|
Конструктивная геометрия области (CAG) является процессом создания новых геометрических форм, выполняя логические операции на существующих. В Java 2D™ API Area
class реализует Shape
Объединение | Вычитание | ||
Пересечение | Монопольный - или (XOR ) |
В этом примере Area
объекты создают форму груши из нескольких эллипсов.
Если Вы не видите, что апплет работает, Вы должны установить
содержит полный код для этого апплета.Pear.java
Листы каждый создаются, выполняя пересечение на двух накладывающихся кругах.
leaf = new Ellipse2D.Double(); ... leaf1 = new Area(leaf); leaf2 = new Area(leaf); ... leaf.setFrame(ew-16, eh-29, 15.0, 15.0); leaf1 = new Area(leaf); leaf.setFrame(ew-14, eh-47, 30.0, 30.0); leaf2 = new Area(leaf); leaf1.intersect(leaf2); g2.fill(leaf1); ... leaf.setFrame(ew+1, eh-29, 15.0, 15.0); leaf1 = new Area(leaf); leaf2.intersect(leaf1); g2.fill(leaf2);
Накладывающиеся круги также используются, чтобы создать основу посредством операции вычитания.
stem = new Ellipse2D.Double(); ... stem.setFrame(ew, eh-42, 40.0, 40.0); st1 = new Area(stem); stem.setFrame(ew+3, eh-47, 50.0, 50.0); st2 = new Area(stem); st1.subtract(st2); g2.fill(st1);
Тело груши создается, выполняя операцию объединения на круге и овале.
circle = new Ellipse2D.Double(); oval = new Ellipse2D.Double(); circ = new Area(circle); ov = new Area(oval); ... circle.setFrame(ew-25, eh, 50.0, 50.0); oval.setFrame(ew-19, eh-20, 40.0, 70.0); circ = new Area(circle); ov = new Area(oval); circ.add(ov); g2.fill(circ);