Saturday 11 June 2016

Chapter 3 Exercise 32, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

*3.32 (Geometry: point position) Given a directed line from point p0(x0, y0) to p1(x1, y1), you can use the following condition to decide whether a point p2(x2, y2) is on the left of the line, on the right, or on the same line (see Figure 3.11):






 Enter three points for p0, p1, and p2: 4.4 2 6.5 9.5 -5 4
    (-5.0, 4.0) is on the left side of the line from (4.4, 2.0) to (6.5, 9.5) 

    Enter three points for p0, p1, and p2: 1 1 5 5 2 2
    (2.0, 2.0) is on the line from (1.0, 1.0) to (5.0, 5.0) 

    Enter three points for p0, p1, and p2: 3.4 2 6.5 9.5 5 2.5
    (5.0, 2.5) is on the right side of the line from (3.4, 2.0) to (6.5, 9.5)


import java.util.Scanner;
 
public class ProgrammingEx3_32 {
 
 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  System.out.println("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();
 
  String p0 = "(" + x0 + ", " + y0 + ")";
  String p1 = "(" + x1 + ", " + y1 + ")";
  String p2 = "(" + x2 + ", " + y2 + ")";
 
  double c = (x1 - x0) * (y2 - y0) - (x2 - x0) * (y1 - y0);
 
  if (c > 0) {
   System.out.println(p2 + " is on the left side of the line from "
     + p0 + " to " + p1);
  } else if (c == 0) {
   System.out.println(p2 + " is on the line from " + p0 + " to " + p1);
  } else {
   System.out.println(p2 + " is on the right side of the line from "
     + p0 + " to " + p1);
  }
 
 }
 
}

No comments :

Post a Comment