Try the fastest way to create flashcards
Question

# (Geometry: point position) Programming Exercise 3.32 shows how to test whether a point is on the left side of a directed line, on the right, or on the same line. Write the methods with the following headers:/** Return true if point (x2, y2) is on the left side of the * directed line from (x0, y0) to (x1, y1) */ public static boolean leftOfTheLine(double x0, double y0, double x1, double y1, double x2, double y2) /** Return true if point (x2, y2) is on the same * line from (x0, y0) to (x1, y1) */ public static boolean onTheSameLine(double x0, double y0, double x1, double y1, double x2, double y2) /** Return true if point (x2, y2) is on the * line segment from (x0, y0) to (x1, y1) */ public static boolean onTheLineSegment(double x0, double y0, double x1, double y1, double x2, double y2) Write a program that prompts the user to enter the three points for p0 , p1 , and p2 and displays whether p2 is on the left side of the line from p0 to p1 , right side, the same line, or on the line segment. Here are some sample runs:Enter three points for p0, p1, and p2: 1 1 2 2 1.5 1.5 (1.5, 1.5) is on the line segment from (1.0, 1.0) to (2.0, 2.0) Enter three points for p0, p1, and p2: 1 1 2 2 3 3 (3.0, 3.0) is on the same line from (1.0, 1.0) to (2.0, 2.0) Enter three points for p0, p1, and p2: 1 1 2 2 1 1.5 (1.0, 1.5) is on the left side of the line from (1.0, 1.0) to (2.0, 2.0) Enter three points for p0, p1, and p2: 1 1 2 2 1 –1 (1.0, −1.0) is on the right side of the line from (1.0, 1.0) to (2.0, 2.0) 

Solution

Verified
Step 1
1 of 4
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter three points for p0, p1, and p2: ");
double x0 = input.nextDouble();
double y0 = input.nextDouble();
double x1 = input.nextDouble();
double y1 = input.nextDouble();
double x2 = input.nextDouble();
double y2 = input.nextDouble();

System.out.print("(" + x2 + ", " + y2 + ") is on the");

if (onTheLineSegment(x0, y0, x1, y1, x2, y2))
System.out.print(" line segment ");
else if (leftOfTheLine(x0, y0, x1, y1, x2, y2))
System.out.print(" left side of the line ");
else if (onTheSameLine(x0, y0, x1, y1, x2, y2))
System.out.print(" same line ");
else
System.out.print(" right side of the line");

System.out.print(" from " + "(" + x0 + ", " + y0 +
") to (" + x1 + ", " + y1 + ")");
}

public static boolean leftOfTheLine(double x0, double y0,
double x1, double y1, double x2, double y2)
{
return pointPosition(x0, y0, x1, y1, x2, y2) > 0;
}
public static boolean onTheSameLine(double x0, double y0,
double x1, double y1, double x2, double y2)
{
return pointPosition(x0, y0, x1, y1, x2, y2) == 0;

}


## Recommended textbook solutions

#### Intro to Java Programming, Comprehensive Version

10th EditionISBN: 9780133761313Y. Daniel Liang
1,628 solutions

#### Fundamentals of Database Systems

7th EditionISBN: 9780133970777Ramez Elmasri, Shamkant B. Navathe
948 solutions

#### Introduction to Algorithms

3rd EditionISBN: 9780262033848Charles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen
872 solutions

#### Introduction to Algorithms

4th EditionISBN: 9780262046305Charles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen
945 solutions