Given four points in a 2-dimensional space we need to find out whether they make a parallelogram or not.
A parallelogram has four sides. Two opposite sides are parallel and are of same lengths.
Points = [(0, 0), (4, 0), (1, 3), (5, 3)] Above points make a parallelogram. Points = [(0, 0), (2, 0), (4, 0), (2, 2)] Above points does not make a parallelogram as first three points itself are linear.
Problems for checking square and rectangle can be read from Square checking and Rectangle checking but in this problem, we need to check for the parallelogram. The main properties of the parallelogram are that opposite sides of parallelogram are parallel and of equal length and diagonals of parallelogram bisect each other. We use the second property to solve this problem. As there are four points, we can get total 6 midpoints by considering each pair. Now for four points to make a parallelogram, 2 of the midpoints should be equal and rest of them should be different.
In below code, we have created a map, which stores pairs corresponding to each midpoint. After calculating all midpoints, we have iterated over the map and check the occurrence of each midpoint, If exactly one midpoint occurred twice and other have occurred once, then given four points make a parallelogram otherwise not.
Given points form a parallelogram
This article is contributed by Utkarsh Trivedi. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Check whether a given point lies inside a triangle or not
- Closest Pair of Points using Divide and Conquer algorithm
- How to check if two given line segments intersect?
- How to check if a given point lies inside or outside a polygon?
- Closest Pair of Points | O(nlogn) Implementation
- Find Simple Closed Path for a given set of points
- Orientation of 3 ordered points
- Count Integral points inside a Triangle
- Number of Integral Points between Two Points
- Non-crossing lines to connect points in a circle
- Count maximum points on same line
- Circle and Lattice Points
- Queries on count of points lie inside a circle
- Check whether a point exists in circle sector or not.
- Check if four segments form a rectangle