Skip to content
Snippets Groups Projects
Select Git revision
  • 47aa5335a0b925fdd73cef3c17b76405c3bcfc22
  • main default protected
  • variant
3 results

BoardFireFighterBehavior.java

Blame
  • Forked from COUETOUX Basile / FirefighterStarter
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Rectangle.java 1.69 KiB
    import tp2.lib.Painter;
    
    
    import java.awt.*;
    import java.util.Random;
    import static tp2.lib.Tools.sleep;
    
    /**
     * Created by Arnaud Labourel on 17/10/2018.
     */
    
    public class Rectangle implements Shape{
    
        Point p1, p2;
    
        public Rectangle(Point p1, Point p2){
            // Add code here
        	this.p1 = p1;
            this.p2 = p2;
    
        }
    
        private double height(){
            return Math.abs(p2.y-p1.y);
        }
    
        private double width(){
            return Math.abs(p2.x-p1.x);
        }
    
    
    
    
        public static void test_rectangle(Painter painter){
            Point p1 = new Point(100,100);
            Point p2 = new Point(200,100);
            Point p3 = new Point(200,300);
    	Random random= new Random();
            
    	Shape r = new Rectangle(p1, p3);
            r.draw(painter, Color.black);
    
            for(int i =30; i<400; i+=30) {
                Shape t2 = r.translate(i, i);
                sleep(100);
                t2.draw(painter, new Color(random.nextFloat(),
                        random.nextFloat(), random.nextFloat()));
            }
        }
    
    
        @Override
        public double getPerimeter() {
            return height()*2 + width()*2;
        }
    
        @Override
        public void draw(Painter painter, Color color) {
            Point upRight = p1.translate(width(),0);
            Point downLeft = p1.translate(0,height());
            p1.drawLine(upRight,painter,color);
            p1.drawLine(downLeft,painter,color);
            p2.drawLine(upRight,painter,color);
            p2.drawLine(downLeft,painter,color);
        }
    
        @Override
        public Shape translate(int dx, int dy) {
            return new Rectangle(
                    p1.translate(dx,dy),
                    p2.translate(dx,dy)
            );
        }
    
        @Override
        public double getArea() {
            return height()*width();
        }
    
    
    
    }