Home >Java >javaTutorial >How to check the direction of three ordered points in Java?
In this article, we will find the direction of 3 ordered points. Direction here refers to whether a given point forms a clockwise, counterclockwise, or collinear shape in space.
In the above figure, a, b, c are the three points to check the direction of the shape in space. We find the direction of three given points by calculating the slope.
Calculate the slope and calculate the direction of 3 ordered points.
Slope of line segment
Slope of line segment$(a,b):\theta=\left ( y_{b}-y_{a} \right )/\left ( x_{b} -x_ {a}\right )$
Slope of line segment $(b,c)$: $\phi=\left ( y_{c} -y_{b}\right )/(x_{c}-x_{b})$
Therefore, the direction depends on the following expression:
$$(y_{b}-y_{a})(x_{c}-x_{b})-(y_{c}-y_{b})(x_{b}-x_{a}) \:or\:(y2-y1)*(x3-x2)-(y3-y2)*(x2-x1)$$
That is, whether it is a positive number, a negative number or
If the expression is zero, then θ = φ. Therefore the directions are collinear.
If the expression is negative, then θ
If the expression is positive, then θ > φ. So the direction is clockwise.
let's start!
Suppose the 3 ordered points are (0,3), (4,2), (3,1)
After checking the direction of 3 ordered points, the result will be:
The given 3 points are formed: clockwise
The Chinese translation ofSuppose the 3 ordered points are (0,3), (1,2), (9,5)
After checking the direction of 3 ordered points, the result will be:
The given 3 points are formed: counterclockwise
Suppose the 3 ordered points are (2,2), (3,3), (4,4)
After checking the direction of 3 ordered points, the result will be:
Given 3-point form: Linear
Step 1 - Declare 3 ordered points.
Step 2 - Pass the three given points to the expression, i.e. (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y).
Step 3 - Check linear, clockwise and counterclockwise conditions.
Step 4 - Print the results.
We provide solutions in different ways.
Via static input
By using user-defined methods
Let’s look at the program and its output one by one.
In this method, first pass 3 points to the expression to check linear, clockwise and counterclockwise conditions. Then print the result to output.
public class Main{ //main method public static void main(String[] args){ //Declaring variables int x1=0, y1=1; int x2=4, y2=3; int x3=3, y3=2; //expression to check for 3 ordered point int val = (y2 - y1) * (x3 - x2) - (x2 - x1) * (y3 - y2); // check for collinear if (val == 0){ //printing collinear orientation System.out.print("The given 3 points form : Linear"); } //check for clockwise else if(val > 0){ //printing clockwise orientation System.out.print("The given 3 points form: Clockwise"); } else { //printig counter clockwise orientation System.out.print("The given 3 points form: CounterClockwise"); } } }
The given 3 points form: Clockwise
In this method, 3 points are first passed to the expression through a user-defined method to check linear, clockwise and counterclockwise conditions. Then print the result to output.
public class Main { public static void main(String[] args){ Point a = new Point(2, 2); Point b = new Point(3, 3); Point c = new Point(4, 4); //calling user defined method int o = orientation(a, b, c); //check for Linear orientation if (o==0) //printing Linear orientation System.out.print("The given 3 points form : Linear"); //check for Clockwise orientation else if (o == 1) //printing clockwise orientation System.out.print("The given 3 points form : Clockwise"); else //printing counter clockwise orientation System.out.print("The given 3 points form : CounterClockwise"); } // user defined method public static int orientation(Point a, Point b, Point c){ //expression to check for 3 ordered point int val = (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y); // check for collinear if (val == 0) return 0; // check for clock or counterclock wise return (val > 0)? 1: 2; } } class Point{ int x, y; Point(int x,int y){ this.x=x; this.y=y; } }
The given 3 points form : Linear
In this article, we explore how to determine the direction by checking the direction of 3 ordered points using the Java programming language.
The above is the detailed content of How to check the direction of three ordered points in Java?. For more information, please follow other related articles on the PHP Chinese website!