From 71aa2ce4b6b6e6cc1c5dfd12fc6b000cda353744 Mon Sep 17 00:00:00 2001
From: celia <celia.arezki.1@etu.univ-amu.fr>
Date: Thu, 3 Oct 2024 16:02:31 +0200
Subject: [PATCH] change of centerDecorator class

---
 src/main/java/shape/AbstractShape.java   |  1 +
 src/main/java/shape/BorderDecorator.java |  1 +
 src/main/java/shape/CenterDecorator.java | 20 +++++++++++---------
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java
index d83c612..21e40a1 100644
--- a/src/main/java/shape/AbstractShape.java
+++ b/src/main/java/shape/AbstractShape.java
@@ -1,3 +1,4 @@
+package shape;
 import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 import java.util.ArrayList;
diff --git a/src/main/java/shape/BorderDecorator.java b/src/main/java/shape/BorderDecorator.java
index d6fc192..37c7787 100644
--- a/src/main/java/shape/BorderDecorator.java
+++ b/src/main/java/shape/BorderDecorator.java
@@ -1,3 +1,4 @@
+package shape;
 import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
diff --git a/src/main/java/shape/CenterDecorator.java b/src/main/java/shape/CenterDecorator.java
index f6705cb..e0bc27f 100644
--- a/src/main/java/shape/CenterDecorator.java
+++ b/src/main/java/shape/CenterDecorator.java
@@ -1,6 +1,6 @@
 package shape;
-import javafx.scene.canvas.GraphicsContext;
 import javafx.geometry.Point2D;
+import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
 
 public class CenterDecorator extends Decorator {
@@ -14,16 +14,18 @@ public class CenterDecorator extends Decorator {
     @Override
     protected void drawDecoration(GraphicsContext graphicsContext) {
         graphicsContext.setStroke(Color.RED);
-        double centerX = 0, centerY = 0;
+        Point2D center = calculateCenter();
+        graphicsContext.strokeOval(center.getX() - radius, center.getY() - radius, radius * 2, radius * 2);
+    }
+
+    private Point2D calculateCenter() {
+        double sumX = 0;
+        double sumY = 0;
         for (int i = 0; i < decoratedShape.pointsCount(); i++) {
             Point2D point = decoratedShape.point(i);
-            centerX += point.getX();
-            centerY += point.getY();
+            sumX += point.getX();
+            sumY += point.getY();
         }
-        centerX /= decoratedShape.pointsCount();
-        centerY /= decoratedShape.pointsCount();
-
-        graphicsContext.strokeOval(centerX - radius, centerY - radius, radius * 2, radius * 2);
+        return new Point2D(sumX / decoratedShape.pointsCount(), sumY / decoratedShape.pointsCount());
     }
 }
-
-- 
GitLab