Consider a two dimensional co-ordinate system with two axes; X & Y. This system is identified by positive integer co-ordinates. Meaning, every valid point in this system is represented by two values (x, y) where 0 < x,y <100.
You are given an input set of lines, specified by the co-ordinates of the two end-points.
Write a program to identify all closed shapes created by the specified lines.
Input Format (the program should accept this simple text file called "input.txt" placed in the classpath):
A1, B1; C1, D1
A2, B2; C2, D2
An, Bn; Cn, Dn
Expected Output (based on actual values of the input lines):
There are two triangles and 1 square based on the input.
Triangle 1 with vertices (a1,b1; a2, b2; a3,b3)
Triangle 2 with vertices (a5,b5; a6, b6; a7, b7)
Square 1 with vertices (a8, b8; a9, b9; a10, b10; a11, b11)
The input data may be such that some shapes overlap.
You don't have to find shapes formed by intersection of two shapes. For example, if a square and triangle overlap such that there is another small triangle formed at the intersection, you don't have to report that.
For the sake of scope, report only the following shapes, if any - triangle, any quadrilateral, pentagon.