From c0b4692dd91f201c47a11198f311767f5841b687 Mon Sep 17 00:00:00 2001
From: a23022716 <celia.arezki.1@etu.univ-amu.fr>
Date: Fri, 27 Sep 2024 12:02:31 +0200
Subject: [PATCH] add of CenterDecorator class , it adds a circle around the
 center of the shape

---
 src/main/java/shape/CenterDecorator.java | 29 ++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 src/main/java/shape/CenterDecorator.java

diff --git a/src/main/java/shape/CenterDecorator.java b/src/main/java/shape/CenterDecorator.java
new file mode 100644
index 0000000..f6705cb
--- /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);
+    }
+}
+
-- 
GitLab