diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java index d83c61289dd31b6c3632250d633ed6a4badd0d0f..21e40a1edebb004e5fe1993931ce4500dfc5e8cb 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 d6fc19243f8135af17befa57096a260e6835fe57..37c778799a659fbd896d567b1749f550482f2c89 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 f6705cb97e7e2a4a411b08f8deab91fe66183e9e..e0bc27f0dd5db47940a50b0503bf9158ab9995f9 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()); } } -