Time Limit: 1s
Memory Limit: 128MB
다음 내용을 포함하는 Triangle2D 클래스를 만들어보자.
여러분이 작성한 코드는 아래 샘플코드의 YOUR_CODE 부분에 들어가 컴파일 됩니다.
* Line 1 : 테스트케이스 T (1~1,000)
* Line 2 ~ T+1 : x1 y1 x2 y2 x3 y3 x4 y4 x5 y5 x6 y6 x7 y7 (공백으로 구분된 14개의 실수)
- 실수의 범위는 -100 ~ 100
- x1 y1 x2 y2 x3 y3는 삼각형 r1의 정점
- x4 y4 x5 y5 x6 y6는 삼각형 r2의 정점
- x7 y7는 정점 p
- r1과 r2는 항상 삼각형
* Line 1 ~ 4T : 각 테스트 케이스마다 샘플 출력과 같이 4줄씩 출력
- Line 3 : r1이 p를 포함하면 true 아니라면 false
- Line 4 : r1이 r2를 포함하면 contain, r1와 r2가 겹치면 overlaps, 만나지 않는다면 no overlap을 출력
import javafx.geometry.*; import java.awt.geom.Line2D; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int t = 0; t < T; t++) { double x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7; x1 = sc.nextDouble(); y1 = sc.nextDouble(); x2 = sc.nextDouble(); y2 = sc.nextDouble(); x3 = sc.nextDouble(); y3 = sc.nextDouble(); x4 = sc.nextDouble(); y4 = sc.nextDouble(); x5 = sc.nextDouble(); y5 = sc.nextDouble(); x6 = sc.nextDouble(); y6 = sc.nextDouble(); x7 = sc.nextDouble(); y7 = sc.nextDouble(); Triangle2D r1 = new Triangle2D(x1, y1, x2, y2, x3, y3); Triangle2D r2 = new Triangle2D(x4, y4, x5, y5, x6, y6); System.out.printf("Area is %.1f\n", r1.getArea()); System.out.printf("Perimeter is %.1f\n", r1.getPerimeter()); System.out.println(r1.contains(x7, y7)); if (r1.contains(r2)) { System.out.println("contain"); } else if (r1.overlaps(r2)) { System.out.println("overlaps"); } else { System.out.println("no overlap"); } } } } YOUR_CODE
3 -2 0 0 2 2 0 -1 0 0 1 1 0 2 0 -1 0 0 1 1 0 -2 0 0 2 2 0 2 0 -2 0 0 2 2 0 -1 -1 0 -2 1 -1 -1 1
Area is 4.0 Perimeter is 9.7 true contain Area is 1.0 Perimeter is 4.8 false overlaps Area is 4.0 Perimeter is 9.7 true no overlap
JAVA2015 PE10.12