diff --git a/src/main/java/shape/Rectangle.java b/src/main/java/shape/Rectangle.java index 9dc4a7fe8decc7d0c82481fc00e72b5819e2e4a0..0b18ab3ee56618f0a787e0890239fcb26b35e415 100644 --- a/src/main/java/shape/Rectangle.java +++ b/src/main/java/shape/Rectangle.java @@ -1,12 +1,12 @@ package shape; -import javafx.geometry.Point2D; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; public class Rectangle implements Shape { private Color color; - private Point2D point0, point1; + private Point2D point0; + private Point2D point1; public Rectangle(Color color, Point2D point0, Point2D point1) { this.color = color; @@ -16,24 +16,30 @@ public class Rectangle implements Shape { @Override public int pointsCount() { - return 2; + return 0; + return 2; // Un rectangle est défini par deux points } @Override public Point2D point(int index) { + return null; if (index == 0) { return point0; } else if (index == 1) { return point1; + } else { + throw new IndexOutOfBoundsException("Un rectangle n'a que deux points."); } - throw new IndexOutOfBoundsException("Rectangle has only 2 points."); } @Override public void draw(GraphicsContext context) { - context.setStroke(color); - context.strokeRect(point0.getX(), point0.getY(), - point1.getX() - point0.getX(), - point1.getY() - point0.getY()); + + context.setFill(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.fillRect(x, y, width, height); } }