diff --git a/src/main/java/shape/CenterDecorator.java b/src/main/java/shape/CenterDecorator.java new file mode 100644 index 0000000000000000000000000000000000000000..f6705cb97e7e2a4a411b08f8deab91fe66183e9e --- /dev/null +++ b/src/main/java/shape/CenterDecorator.java @@ -0,0 +1,29 @@ +package shape; +import javafx.scene.canvas.GraphicsContext; +import javafx.geometry.Point2D; +import javafx.scene.paint.Color; + +public class CenterDecorator extends Decorator { + private double radius; + + public CenterDecorator(Shape decoratedShape, double radius) { + super(decoratedShape); + this.radius = radius; + } + + @Override + protected void drawDecoration(GraphicsContext graphicsContext) { + graphicsContext.setStroke(Color.RED); + double centerX = 0, centerY = 0; + for (int i = 0; i < decoratedShape.pointsCount(); i++) { + Point2D point = decoratedShape.point(i); + centerX += point.getX(); + centerY += point.getY(); + } + centerX /= decoratedShape.pointsCount(); + centerY /= decoratedShape.pointsCount(); + + graphicsContext.strokeOval(centerX - radius, centerY - radius, radius * 2, radius * 2); + } +} +