미적분학 입문하기 2

난이도

Gold 4

인증

문제

연세대학교 1학년 이공계생들은 “미분적분학과벡터해석”, 또는 “공학수학”을 배우게 된다. 해당 과목에서 회전체의 부피에 대한 내용을 배운다. 닫힌 구간 $[a,b]$에서의 함수 $r(x)$를 $x$축을 기준으로 회전시켰을 때 나오는 회전체의 부피는 $\displaystyle \pi \int_{a}^{b} {r(x)}^2 dx$로 구할 수 있다.

주어진 제 1사분면에 있는 삼각형을 $x$축과 $y$축을 기준으로 각각 회전시켰을 때 나오는 두 회전체의 부피를 위의 공식을 참고해서 구해보자.

입력

첫 번째 줄에 음이 아닌 정수 $x_1$, $y_1$, $x_2$, $y_2$, $x_3$, $y_3$가 주어진다. $(x_1, y_1)$, $(x_2, y_2)$, $(x_3, y_3)$은 삼각형의 각 꼭짓점 좌표를 의미한다. 세 점이 한 직선 위에 있지 않다. ( $0 \le x_1, y_1, x_2, y_2, x_3, y_3 \le 10 \, 000$)

출력

주어진 삼각형을 $x$축으로 회전시켰을 때 나오는 회전체의 부피와 $y$축으로 회전시켰을 때 나오는 회전체의 부피를 공백을 사이에 두고 출력한다. 절대/상대 오차는 $10^{-6}$까지 허용한다.

예제 입력

0 0 0 1 1 0

예제 출력

1.047197551 1.047197551

해설 및 후기

예전에 수학을 배울 때 얼핏 들었던 무게 중심을 기반으로 회전체의 부피를 구하는 방법이 생각나서 그대로 옮겼더니 AC였다. 삼각형의 각 좌표가 주어졌을때 무게 중심점을 구하는 것은 어렵지 않다. 신발끈 공식을 이용해 삼각형의 넓이를 구하고, 그 넓이와 무게 중심정으로부터 떨어진 거리(만약 y축으로 회전시킨다면 무게 중심점의 x좌표)와 넓이, 그리고 2pi를 곱하여 쉽게 구할 수 있다.

제출 코드

from math import pi

x1, y1, x2, y2, x3, y3 = map(int,input().split())
s = 0.5*(abs((x1*y2+x2*y3+x3*y1) - (x2*y1+x3*y2+x1*y3)))
avgX = (x1+x2+x3)/3
avgY = (y1+y2+y3)/3

print(s*avgY*2*pi, s*avgX*2*pi)