Select Git revision
BackPackSolver.java
Forked from
NAVES Guyslain / ProgAvExercices
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();
}
}