Check if 4 points form a Square Java
- Get link
- X
- Other Apps
PROGRAM TO CHECK IF FOUR POINTS FORM A SQUARE
class
MAIN{
// Structure of a point in 2D space
static
class
Point
{
int
x, y;
public
Point(
int
x,
int
y)
{
this
.x = x;
this
.y = y;
}
};
// A utility function to find square of distance
// from point 'p' to point 'q'
static
int
distSq(Point p, Point q)
{
return
(p.x - q.x) * (p.x - q.x) + (p.y - q.y) * (p.y - q.y);
}
// This function returns true if (p1, p2, p3, p4) form a
// square, otherwise false
static
boolean
isSquare(Point p1, Point p2, Point p3, Point p4)
{
int
d2 = distSq(p1, p2);
// from p1 to p2
int
d3 = distSq(p1, p3);
// from p1 to p3
int
d4 = distSq(p1, p4);
// from p1 to p4
if
(d2 ==
0
|| d3 ==
0
|| d4 ==
0
)
return
false
;
// If lengths if (p1, p2) and (p1, p3) are same, then
// following conditions must met to form a square.
// 1) Square of length of (p1, p4) is same as twice
// the square of (p1, p2)
// 2) Square of length of (p2, p3) is same
// as twice the square of (p2, p4)
if
(d2 == d3 &&
2
* d2 == d4
&&
2
* distSq(p2, p4) == distSq(p2, p3))
{
return
true
;
}
// The below two cases are similar to above case
if
(d3 == d4 &&
2
* d3 == d2
&&
2
* distSq(p3, p2) == distSq(p3, p4))
{
return
true
;
}
if
(d2 == d4 &&
2
* d2 == d3
&&
2
* distSq(p2, p3) == distSq(p2, p4))
{
return
true
;
}
return
false
;
}
// Driver code
public
static
void
main(String[] args)
{
Point p1 =
new
Point(
20
,
10
), p2 =
new
Point(
10
,
20
),
p3 =
new
Point(
20
,
20
), p4 =
new
Point(
10
,
10
);
System.out.println(isSquare(p1, p2, p3, p4)==
true
?
"Yes"
:
"No"
);
}
}
OUTPUT
Yes
CREDITS: https://www.geeksforgeeks.org/check-given-four-points-form-square/
- Get link
- X
- Other Apps
Comments
Post a Comment