Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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();
}
}