x
• Status: Solved
• Priority: Medium
• Security: Public
• Views: 121

# How Can I DO That

``````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)

Note:

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.
``````
0
Naren Kumar
2 Solutions

Director, Practice Manager and Computing ConsultantCommented:
0

Commented:
For a brute force approach you could have a table for each of the 10201 possible points listing all the points to which it is connected by a line.

You could then take the triple, quadruple, and pentuple closures of that list.
0

Middle School Assistant TeacherCommented:
You could also do it by building a graph where each node contains the two endpoints and they point to other nodes that have a point in common.  Then traverse the graph and count the number of edges you traveled before coming to a point you've already seen (meaning it is closed).  It simply specifies triangle, quadrilateral and pentagon (not regular pentagon or specific quads like parallelogram, rectangle or square) so you don't need to worry about angles or anything.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.