mirror of
https://github.com/jneug/zeichenmaschine.git
synced 2026-10-12 01:45:18 +02:00
Dokumentation
This commit is contained in:
@@ -2,13 +2,33 @@ package schule.ngb.zm.shapes;
|
||||
|
||||
import schule.ngb.zm.Options;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Path2D;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Eine {@code ShapwGroup} ist eine Sammlung von {@link Shape}s, die gemeinsam
|
||||
* eine Gruppe bilden. Transformationen der Gruppe werden nach den
|
||||
* Transformationen der einzelnen Formen auf die gesammte Gruppe angewandt. So
|
||||
* kann ein Rechteck in der Gruppe zunächst um 45 Grad gedreht werden und dann
|
||||
* die Gruppe um -45 Grad. Das Rechteck wird dann wieder waagerecht dargestellt,
|
||||
* während alle anderen Formen der Gruppe nun gedreht erscheinen. Da die Gruppe
|
||||
* selbst ein eigenes Drehzentrum hat, können so komplexe Strukturen als eine
|
||||
* eigene, zusammenhängende Form verwendet werden. (Im Gegensatz zu einer
|
||||
* {@link CustomShape} haben Formgruppen den Vorteil, dass die einzelnen Formen
|
||||
* individuelle Farben und Konturen bekommen können.)
|
||||
* <p>
|
||||
* Da die Größe der Gruppe durch seine zugewiesenen Formen fefstgelegt wird,
|
||||
* sollten Modifikation wie {@link #setAnchor(Options.Direction)},
|
||||
* {@link #nextTo(Shape, Options.Direction)} oder
|
||||
* {@link #alignTo(Shape, Options.Direction, double)}, die die Größe der Gruppe
|
||||
* benötigen, erst nach Hinzufügen der Gruppenelemente ausgeführt werden.
|
||||
* Nachdem sich die Zusammensetzung der Gruppe geändert hat, muss die Gruppe
|
||||
* ggf. neu ausgerichtet werden.
|
||||
*/
|
||||
public class ShapeGroup extends Shape {
|
||||
|
||||
private List<Shape> shapes;
|
||||
@@ -33,7 +53,6 @@ public class ShapeGroup extends Shape {
|
||||
for( Shape pShape : shapes ) {
|
||||
this.shapes.add(pShape);
|
||||
}
|
||||
this.anchor = Options.Direction.CENTER;
|
||||
}
|
||||
|
||||
public Shape copy() {
|
||||
|
||||
Reference in New Issue
Block a user