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