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