Skip to content
Snippets Groups Projects
Circle.java 993 B
Newer Older
  • Learn to ignore specific revisions
  • BasileCouetoux's avatar
    BasileCouetoux committed
    package shape;
    
    import javafx.geometry.Point2D;
    import javafx.scene.canvas.GraphicsContext;
    
    import javafx.scene.paint.Color;
    
    BasileCouetoux's avatar
    BasileCouetoux committed
    
    public class Circle implements Shape {
    
    
        private double radius, x, y;
    
        public Circle(double x, double y, double radius) {
            this.x = x;
            this.y = y;
            this.radius = radius;
    
    BasileCouetoux's avatar
    BasileCouetoux committed
        }
    
    
    BasileCouetoux's avatar
    BasileCouetoux committed
        @Override
    
        public void paint(GraphicsContext graphicsContext) {
    
            graphicsContext.setStroke(Color.RED);
    
            graphicsContext.strokeOval(x-radius, y-radius, 2 * radius, 2 * radius);
    
    BasileCouetoux's avatar
    BasileCouetoux committed
        }
    
        @Override
    
        public boolean contains(double x, double y) {
    
            double dx = x - this.x;
            double dy = y - this.y;
            return Math.sqrt(dx*dx + dy*dy) <= radius;
    
    BasileCouetoux's avatar
    BasileCouetoux committed
        }
    
        @Override
    
        public void translate(double dx, double dy) {
            this.x += dx;
            this.y += dy;
    
    BasileCouetoux's avatar
    BasileCouetoux committed
        }
    
        public void updateRadius(double newX, double newY) {
            this.radius = Math.sqrt(Math.pow(newX - this.x, 2) + Math.pow(newY - this.y, 2));
        }
    
    BasileCouetoux's avatar
    BasileCouetoux committed
    }