Fourth Point!!
Input: standard input
Output: standard output
Time Limit: 2 seconds
Memory Limit: 32 MB
Given are the (x, y) coordinates of the endpoints of two adjacent sides of a parallelogram. Find the (x, y) coordinates of the fourth point.
Each line of input contains eight floating point numbers: the (x, y) coordinates of one of the endpoints of the first side followed by the(x, y) coordinates of the other endpoint of the first side, followed by the (x, y) coordinates of one of the endpoints of the second side followed by the (x, y) coordinates of the other endpoint of the second side. All coordinates are in meters, to the nearest mm. All coordinates are between -10000 and +10000. Input is terminated by end of file.
For each line of input, print the (x, y) coordinates of the fourth point of the parallelogram in meters, to the nearest mm, separated by a single space.
0.000 0.000 0.000 1.000 0.000 1.000 1.000 1.000
1.000 0.000 3.500 3.500 3.500 3.500 0.000 1.000
1.866 0.000 3.127 3.543 3.127 3.543 1.412 3.145
Sample Output
1.000 0.000
-2.500 -2.500
0.151 -0.398
※第一個邊的2個點中必定有一個點與第二個邊的2個點其中之一相同。
import java.util.Scanner;
public class UVA10242 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
double a_x = sc.nextDouble();
double a_y = sc.nextDouble();
double b_x = sc.nextDouble();
double b_y = sc.nextDouble();
double c_x = sc.nextDouble();
double c_y = sc.nextDouble();
double d_x = sc.nextDouble();
double d_y = sc.nextDouble();
double answer_x = 0, answer_y = 0;
if (a_x == c_x && a_y == c_y) {
answer_x = b_x - a_x + d_x;
answer_y = b_y - a_y + d_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
else if (a_x == d_x && a_y == d_y) {
answer_x = b_x - a_x + c_x;
answer_y = b_y - a_y + c_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
else if (b_x == c_x && b_y == c_y) {
answer_x = a_x - b_x + d_x;
answer_y = a_y - b_y + d_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
else {
answer_x = a_x - b_x + c_x;
answer_y = a_y - b_y + c_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
}
sc.close();
}
}
留言
張貼留言