2007년 01월 23일
삼각형의 넓이 구하기
방법이야 여러가지가 있겠지만, 3차원 좌표공간에서의 벡터 외적을 이용하면 쉽게 계산할 수 있다.
먼저 벡터의 외적이란 두 벡터에 수직인 법선 벡터를 구하는 벡터 곱이다.

위 그림에서 보면 a 벡터와 b 벡터를 외적하면 a X b(파란색) 법선 벡터가 구해진다. 이 외적의 결과값인 법선 벡터의 크기는 a 벡터와 b 벡터로 만들어지는 평행사변형의 넓이와 같다. 결국 법선 벡터의 크기를 2로 나누면 a 벡터와 b 벡터로 만들어지는 삼각형의 넓이를 구할 수 있는 것이다.
먼저 벡터의 외적이란 두 벡터에 수직인 법선 벡터를 구하는 벡터 곱이다.

위 그림에서 보면 a 벡터와 b 벡터를 외적하면 a X b(파란색) 법선 벡터가 구해진다. 이 외적의 결과값인 법선 벡터의 크기는 a 벡터와 b 벡터로 만들어지는 평행사변형의 넓이와 같다. 결국 법선 벡터의 크기를 2로 나누면 a 벡터와 b 벡터로 만들어지는 삼각형의 넓이를 구할 수 있는 것이다.
그럴 수 밖에 없는 게 외적의 크기를 구하는 공식은 |a||b|sinθ 이기 때문에 결국 평행사변형의 넓이를 구하는 공식과 같게 된다. (|a|는 a 벡터의 크기(길이)를 나타내고 sqrt(a.x^2 + a.y.y^2) 계산으로 구한다.)

# by | 2007/01/23 23:26 | CS - 알고리즘 | 트랙백 | 덧글(3)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
1/2 루트 (a크기제곱 x b크기제곱 - (a,b내적의 제곱))
이거 아닌가요;;;
죄송 고딩이라서 첨보는거라
위공식이 어떻게 유도 된건지 제가 이해를 못하겠네요..^^;
아마도 맨 마지막 수식을 풀어 쓴거 같은데.. 계산이 틀린것으로 보입니다.
학교에서 외적을 배우셨나요? 먼저 두 벡터를 외적하는 계산이 필요합니다.
외적을 구하면 새로운 벡터가 산출되는데 그 새로운 벡터의 길이를 구하고 그걸 1/2 해주면 삼각형의 넓이가 구해집니다.
AC AB의 각이 0도 이거나 180도 일때 넓이가 0이 됩니다.
sin 그래프를 보시면 0도와 180도 일때 sin값이 0이 되기 때문이죠.
도움이 됬는지 모르겠네요.^^