import java.awt.*; public class Circle implements Shape { // coords of center private Point center; // radius private int radius; public Circle(Point center, int radius) { if (center == null || radius < 0) { // crash! throw new IllegalArgumentException(); } this.center = center; this.radius = radius; } public boolean contains(Point p) { // double d = this.center.distance(p); double d = p.distance(this.center); /* if (d <= this.radius) { return true; } else { return false; } */ return (d <= this.radius); } public void draw(Graphics g) { int size = 2 * this.radius; g.drawOval(this.center.getX() - this.radius, this.center.getY() - this.radius, size, size); this.center.draw(g); } public int getMinX() { return this.center.getX() - this.radius; } public int getMaxX() { return this.center.getX() + this.radius; } public int getMinY() { return this.center.getY() - this.radius; } public int getMaxY() { return this.center.getY() + this.radius; } public double getArea() { return Math.PI * this.radius * this.radius; } public double getPerimeter() { return 2 * Math.PI * this.radius; } public void translate(int dx, int dy) { this.center.translate(dx, dy); } public String toString() { String result = "Circle[center=" + this.center + ",radius=" + this.radius + "]"; return result; } }