From dfb1d9cb908b299d20b80562efe04d1f98c2ee62 Mon Sep 17 00:00:00 2001 From: m23000189 <stella.bouchal@etu.univ-amu.fr> Date: Fri, 27 Sep 2024 11:54:56 +0200 Subject: [PATCH] narwi lhala --- src/main/java/shape/Decorator.java | 12 +++++++++ src/main/java/shape/Polygone.java | 42 +++++++++++++++++++++++++++++- src/main/java/shape/Rectangle.java | 20 +++++++++++--- 3 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 src/main/java/shape/Decorator.java diff --git a/src/main/java/shape/Decorator.java b/src/main/java/shape/Decorator.java new file mode 100644 index 0000000..a16b2a3 --- /dev/null +++ b/src/main/java/shape/Decorator.java @@ -0,0 +1,12 @@ +package shape; + +public class Decorator { + protected Shape decoratedShape; + + public Decorator(Shape decoratedShape) { + this.decoratedShape = decoratedShape; + } + public int pointCounts(){ + return + }; +} diff --git a/src/main/java/shape/Polygone.java b/src/main/java/shape/Polygone.java index 3b854f1..c11805b 100644 --- a/src/main/java/shape/Polygone.java +++ b/src/main/java/shape/Polygone.java @@ -1,4 +1,44 @@ package shape; -public class Polygone { +import javafx.geometry.Point2D; +import javafx.scene.paint.Color; + +import javafx.scene.canvas.GraphicsContext; +import java.util.List; + +public class Polygone extends AbstractShape { + private Color color; + private List<Point2D> points; + public Polygone(Color color, List<Point2D> points) { + this.color = color; + this.points = points; + } + @Override + public void draw(GraphicsContext gc) { + if (points.size() > 2) { + gc.setStroke(color); + gc.beginPath(); + Point2D start = points.get(0); + gc.moveTo(start.getX(), start.getY()); + for (int i = 1; i < points.size(); i++) { + Point2D p = points.get(i); + gc.lineTo(p.getX(), p.getY()); + } + gc.closePath(); + gc.stroke(); + } + } + + + + public Point2D point(int index){ + if(index < 0 || index >= points.size()){ + throw new IndexOutOfBoundsException("Index out of bounds"); + }else { + return points.get(index); + } + + } + + } diff --git a/src/main/java/shape/Rectangle.java b/src/main/java/shape/Rectangle.java index b0e9062..0dfc086 100644 --- a/src/main/java/shape/Rectangle.java +++ b/src/main/java/shape/Rectangle.java @@ -5,23 +5,37 @@ import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; public class Rectangle implements Shape{ - Color color; + private Color color; + private Point2D point0, point1; + Rectangle(Color color, Point2D point0, Point2D point1){ this.color = color; + this.point0 = point0; + this.point1 = point1; } @Override public int pointsCount() { - return 0; + return 2; } @Override public Point2D point(int index) { - return null; + if(index == 0) return point0; + if(index == 1) {return point1;} + else { + throw new IndexOutOfBoundsException("Index out of bounds"); + } } @Override public void draw(GraphicsContext context) { + context.setStroke(color); + double x = Math.min(point0.getX(), point1.getX()); + double y = Math.min(point0.getY(), point1.getY()); + double width = Math.abs(point0.getX() - point1.getX()); + double height = Math.abs(point0.getY() - point1.getY()); + context.strokeRect(x, y, width, height); } } -- GitLab