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);
+    }
+}
+