뿔의 부피가 기둥 부피의 3분의 1인 이유

수학 이야기 2013. 2. 24. 22:38

삼각뿔, 사각뿔, 오각뿐, 원뿔 관계없이 모든 뿔의 부피는 밑면넓이 x 높이 x 1/3 입니다. 즉, 기둥 부피 (밑면넓이 x 높이)의 삼분의 일입니다.




왜 뿔의 부피는 기둥 부피의 삼분의 일일까?


고등학교 수학의 적분을 이용하면 계산상으로 3분의 1임을 알 수는 있지만, 그냥 직관적으로 이해할 수 있는 방법은 없을까 고민을 해 봤습니다.


제가 최종적으로 발견한 방법은 다음과 같습니다.




위 그림과 같이 옆으로 눕혀져 있는 삼각 기둥이 있습니다. 이 삼각기둥을 빨간색 선을 따라 둘로 나누면 윗 부분은 삼각뿔, 아랫 부분은 사각뿔이 됩니다. 이제 아래 사각뿔을 다시 둘로 나누면 삼각뿔 2개가 됩니다. 그래서 결국 마지막 그림처럼 삼각뿔 3개(A, B, C)가 됩니다.

그런데, 이 삼각뿔 3개의 부피가 모두 같기 때문에 이로부터 삼각뿔의 부피가 삼각기둥 부피의 1/3이 됨을 알 수 있습니다.


이유를 좀더 살펴보면, 삼각뿔 A와 삼각뿔 B는 서로 밑면의 면적이 같고 높이가 같기에 부피가 같습니다. 원래의 삼각기둥에서 보면 삼각뿔 A의 밑면은 삼각기둥의 윗면, 삼각뿔 B의 밑면은 삼각기둥의 밑면으로 A, B가 서로 같습니다. 다음으로, 삼각뿔 B와 삼각뿔 C는 사각뿔을 둘로 나눈 것인데 마찬가지 이유로 부피가 서로 같습니다.


위 설명에서 기본적으로 깔린 전제는 밑면의 면적이 같고 높이가 같은 삼각뿔들은 부피가 서로 같다는 점입니다. 이는 동전을 일렬로 높게 쌓는다고 할 때 동전을 똑바로 쌓거나 아니면 피사의 탑처럼 조금씩 어긋나게 쌓거나 결과적으로 부피는 모두 같다는 점을 생각하면 됩니다.


삼각뿔만 증명되면 사각뿔, 오각뿔, 육각뿔, 원뿔 등 다른 뿔도형들도 모두 부피가 기둥의 1/3임이 증명되는 셈입니다. 왜냐하면 모든 뿔도형들은 가느다란 삼각뿔들로 잘게 나눌 수 있기 때문입니다.


처음부터 위와 같은 방법을 찾아낸 것은 아닙니다. 먼저 한 방법을 생각해 내고, 계속해서 또 좀더 쉽고 직관적인 설명 방법을 찾아내고, 그런 과정을 거치다 보니 위 방법까지 생각해 내게 되었습니다. 아래에 그동안 생각해 냈던 다른 방법들을 적어 봅니다. 맨 처음에 생각해 냈던 것이 방법1, 그 다음이 방법2, 방법 3, 그리고 마지막이 위에 설명한 방법입니다.



[방법1]




즉, 위 그림처럼 원뿔과 원기둥을 나란히 옆으로 눕혀놓고 뿔 꼭지점에서의 거리에 따른 단면적을 생각해 봅니다.


그림을 잘 보면 원기둥은 거리가 멀어져도 단면적이 변화가 없습니다. 그러나, 원뿔은 거리가 0일때는 단면적이 0이지만 거리가 멀어질수록 점점 단면적이 증가하여 거리가 h일때 원래 밑면넓이인 S가 나옵니다.


이 때, 원뿔의 단면적이 증가하는 정도는 뿔 꼭지점에서의 거리의 제곱에 비례하여 증가합니다. 즉, 원뿔의 거리에 따른 단면적의 변화 그래프는 포물선을 그린다는 의미가 됩니다.


이 포물선의 밑부분(그림에서 하늘색 부분)의 면적이 원뿔의 부피에 해당합니다. 원기둥의 경우는, 거리에 따라 단면적의 변화가 없기 때문에 붉은색 사각형 영역의 넓이가 원기둥의 부피에 해당합니다.


그런데, 포물선의 경우 포물선 아랫부분의 넓이는 포물선 윗부분 넓이의 절반이고, 전체 사각형 넓이에서는 삼분의 일입니다. 이건 정적분으로 계산해 보면 나옵니다.


원뿔, 원기둥의 경우 뿐만 아니라, 삼각뿔, 사각뿔, 오각뿔 등 다른 각뿔의 경우도 모두 마찬가지로 해석할 수 있습니다.


☞ 설명 내용중, 원뿔의 단면적이 거리의 제곱에 비례하여 증가한다는 사실은 도형의 닮은비를 이해하고 있어야 합니다. 닮은 도형에서 도형의 길이가 2배 증가하면 면적은 길이의 제곱배(2x2 = 4배), 부피는 길이의 3제곱배(2x2x2 = 8배) 증가합니다. 작은 주사위 여러 개를 쌓아서 큰 주사위 모양을 만들어 보면 쉽게 이해할 수 있을 것입니다. 또한, 설명 내용 중 포물선 아랫부분(색칠 부분) 면적이 원뿔의 부피와 같다는 개념은 적분에 대한 기본원리를 제대로 알고 있다면 쉽게 이해할 수 있을 것입니다. 이 부분에 대한 설명까지 모두 하기에는 너무 글이 길어지기에 알고 있다는 가정하에 설명을 생략했습니다.

=> 생각해 보니 미분, 적분의 개념을 정확히 이해한다는 것은 수학에서 매우 중요한 것 같습니다. 미적분에 대한 내용을 따로 시간을 내서 글을 올려 보도록 하겠습니다.

=>  [수학 이야기] - 미분과 적분 제대로 알자



[방법 2]


원기둥을 이용한 방법입니다. 방법1이 너무 복잡한 것 같아서 다른 해석 방법을 찾다가 생각해 낸 것입니다.




그림처럼 붉은색 선을 따라 원기둥을 둘로 나눕니다. 그러면, 윗 부분은 거꾸로 서 있는 원뿔, 아랫부분은 가운데가 푹 파인 원기둥입니다.


원뿔 부피 = πr2 * h * k

파인 원기둥 = 옆면넓이 * r * k = (2πr*h) * r * k = 2πr2hk

원래 원기둥 부피 = πr2 * h


원뿔 부피 + 파인 원기둥 부피 = 원래 원기둥 부피

πr2hk + 2πr2hk = πr2h

k + 2k = 1

k = 1/3


마찬가지로, 1/3을 곱하면 뿔의 부피가 나오네요.



[방법3]


삼각기둥을 이용한 방법입니다. 방법 2에서 영감을 얻어서 생각해 낸 방법입니다..



그림처럼, 삼각기둥이 옆으로 누워 있는데, 이걸 붉은색 선을 따라서 둘로 나눕니다. 그러면 윗 부분은 옆으로 누워있는 삼각뿔이고, 아랫부분은 사각뿔입니다.


삼각뿔의 부피 = 밑면넓이 * 높이 * k = (b*h*1/2) * a * k = abhk/2

사각뿔의 부피 = a * b * h * k = abhk

삼각기둥 부피 = (b*h*1/2) * a = abh/2


삼각뿔 부피 + 사각뿔 부피 = 삼각기둥 부피

abhk/2 + abhk = abh/2

k/2 + k = 1/2

k = 1/3


즉, 1/3을 곱하면 뿔의 부피가 나오네요.


(만일 삼각뿔과 사각뿔에 같은 k를 곱하는게 걸린다면, 밑의 사각뿔을 다시 둘로 나누면 됩니다.)

by 다크 프로그래머

'수학 이야기' 카테고리의 다른 글

미분 적분 제대로 알자  (367) 2013.02.26
평균, 표준편차, 분산, 그리고 Mahalanobis 거리  (68) 2013.02.18
각에도 부피가 있을까  (14) 2013.02.15

욕실, 화장실 냄새 - 환풍기 역류 차단하는 방법 [#2]

잡기장 2013. 2. 24. 13:36

욕실 화장실 환풍기에서 넘어오는 안좋은 냄새를 주방용 랩을 이용하여 간단하게 차단할 수 있는 방법을 소개합니다.


일전에 올렸던 [잡기장] - 욕실 화장실 냄새 없애는 방법 - 환풍기 역류 차단하기 [#1]을 개선한 방법으로 환풍기 냄새 역류를 좀더 완벽하게 차단할 수 있는 방법입니다.



욕실이나 화장실 환풍기를 타고 담배냄새 등 안좋은 냄새가 넘어오면 건강에도 안 좋습니다. 사람을 부르거나 별도로 돈이 드는 것이 아니니 조금 힘을 들여서 환풍기 청소도 할겸 직접 고쳐보면 좋을 것 같습니다. 


먼저, 욕실 화장실 천장에 있는 환풍기를 나사를 풀러서 때어냅니다.



그림과 같이 환풍기가 관으로 연결되어 있습니다. 이 관이 서로 집집마다 연결되어 있기 때문에 냄새가 넘어오는 것입니다.


연결된 관을 환풍기에서 분리해 냅니다.



작업을 할 동안 안 좋은 냄새가 계속 들어오는 것을 막기 위해서 그림과 같이 환풍구 관을 비닐 봉지 등으로 묶어 놓습니다. 환풍구 관에서 제법 센 바람이 나오기에 묶어논 비닐이 팽팽합니다. (저희 집이 유달리 바람이 세서 역류가 심한지도 모르겠네요)


때어낸 환풍기 모습니다. 저희 집꺼는 이번에 새로 산 것이라 깨끗하지만 사용하던 환풍기이면 아마 엄청 먼지가 많이 끼어 있을 것입니다. 먼지 제거제 같은 것으로 청소해 주세요 :)




다음으로 환풍기에서 개폐구 뚜껑과 개폐구 부분을 손으로 분리해 냅니다.




이제 주방용 랩을 이용해서 환풍기의 개폐구와 개폐구 뚜껑을 감싼 다음에 개폐구 가운데 부분만 오려냅니다. 그리고 다시 뚜껑을 끼워 넣습니다. 참고로, 저는 뚜껑 부분을 감싼 랩이 너무 너실거리지 않도록 테이프로 고정을 해 주었습니다.




이제 환풍기 개폐구 뚜껑을 열었다 닫았다 하면서 혹시 공간이 뜨는 곳은 없는지 냄새가 샐 만한 곳은 없는지 잘 점검한 후에 다 되었다 싶으면 다시 환풍기에 끼워 넣습니다. 그냥 손으로 꾹 밀어서 달깍 할때까지 끼워넣으면 됩니다.




이제 다시 환풍기에 관을 연결하고 천장에 박아 놓으면 작업 끝.




결과는?


일단 저희집에서는 환풍기 냄새 역류 100% 차단됩니다. 아내가 무척 좋아합니다. ^^


저희 집 안방 욕실 환풍기, 거실 화장실 환풍기 2개 모두 더이상 냄새가 넘어오지 않습니다.

저번에 환풍기를 처음 설치했을 때에는 가까이 얼굴을 대 보면 차가운 바람이 나오는 것이 느껴지고 나쁜 냄새도 맡아졌는데 이번엔 전혀 냄새도 안나고 바람도 안나옵니다.


그런데 아무래도 랩으로 감싸 놓다 보니 환풍기 소리가 약간 시끄러워졌지만 크게 문제될 정도는 아닙니다.


그래도 이제는 쓸데없이 환풍기 계속 돌리느라고 전기를 낭비할 필요도 없으며 않 좋은 냄새도 안 넘어오니 좋네요 ^^.

아이들 건강에도 좋은 것 같습니다.


☞ 사실 거실 환풍기와 안방 환풍기를 아래 그림과 같이 약간 다르게 설치를 했습니다. 현재 환풍기 개조해서 설치한지 약 한달정도 지났는데 둘다 냄새 역류는 없지만 아무래도 안방 환풍기쪽이 좀더 조용합니다. 안방 환풍기는 그림처럼 개폐구 부분을 뚜껑 근처만 살짝 랩으로 감싼 형태로 설치했습니다. 참고하시기 바랍니다.


by 다크 프로그래머

'잡기장' 카테고리의 다른 글

화살표 청년과 자전거 여행  (2) 2013.03.14
욕실 화장실 냄새 없애는 방법 - 환풍기 역류 차단하기 [#1]  (9) 2013.02.17
마나님  (2) 2013.02.07

다이얼로그(dialog) UI 블로킹(응답없음) 현상 해결법 - C++ MFC

프로그래밍/c++ 2013. 2. 22. 12:14

MFC C++ 다이얼로그(dialog) 기반 프로그램에서 시간이 오래 걸리는 작업을 수행하다 보면 수행 동안에는 사용자 입력(키보드, 마우스)이 먹히지 않고 다이얼로그가 먹통이 되는 UI 블로킹(응답없음,멈춤,정지,다운 등) 현상이 발생한다.




원인은 다이얼로그 사용자 이벤트 메시지 처리하는 부분과 함수 실행 부분이 단일 쓰레드로 실행되어 메시지 파이프라인을 공유하기 때문에 함수처리가 끝나기 전까지는 메시지 처리가 안되기 때문인데, 가장 좋은 해결책은 시간이 오래 걸리는 해당 함수처리 부분을 별도 쓰레드로 분리하여 실행시키는 것이다.


하지만, 다른 한 방법은 메시지 큐에 있는 메시지들을 다음과 같이 직접 처리해 주는 방법도 있다.


void ProcessWindowMessage()

{

   MSG msg;

   while(::PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))

   {

      ::SendMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);

   }

}


이렇게 메시지처리 함수를 하나 만들어 놓고, 시간이 걸리는 함수 중간 중간에 위 함수를 호출해 주면 함수 실행 도중이더라도 사용자가 누른 버튼이나 키보드 메시지가 정상적으로 처리된다.


물론 가장 좋은 방법은 별도 쓰레드로 분리시키는 것이겠지만, while이나 for문 돌리는 반복형태의 프로그램에서는 그냥 간단하게 위 코드를 삽입해서 처리하는 것도 좋은 방법이다.

by 다크 프로그래머