Collisions / Intersections

Collisions are important in games. Java has a simple built in collision method that detects if two rectangles collide (ie. intersect). There is nothing for any other shape.

We want to write a program to determine if a line and a circle intersect.
You can download and run my program to see how it looks: CircleLineIntersect.jar. Windows: click on the jar file to run it. Linux (and Mac?) in a terminal type "java -jar CircleLineIntersect"

What to do:

 

Please colour code the background so that it shows which situation the line and circle are in.

NOTE: to start with you can just hardcode the coordinates of the circle and line. Later on you can make them draggable.

DrawingPanel panel;
Circle circle;
Point l1, l2;
[...]

circle = new Circle(270,250,100);
l1 = new Point(150,150);
l2 = new Point(600,200);
[...]

class Circle {
	int x,y,r;
	
	Circle(int x, int y, int r) {			
		this.x = x;
		this.y = y;
		this.r = Math.abs(r); //negative radii not allowed
	}
	
	void paint(Graphics2D g2) {
		g2.setColor(Color.BLACK);
		g2.drawOval(x-r, y-r, r+r, r+r);
	}
}