가끔은 3차원공간을 논리적으로 표현할 일이 있는데 이럴때 점A와 점D의 최단거리가 필요한 경우가 많습니다.
육면체의 대각선 길이를 구하는 공식은
√(a^2+b^2+c^2)
이저.
문제는 이너므 루트라는 녀석은 '제곱근'이란 녀석으로 √2 라고 하면 제곱해서 2가되는 숫자를 말하는 것입니다.
구하기 힘든값이라는거저-_-;;;
그래서 공학용계산기를 추천합니다. ㅡ.-;;
어찌됬건 AD의 길이를 구하려면
√(AB^2+BC^2+CD^2)
입니다 ㅡ,.ㅡ;
프로그래밍 할때는 변수를 쓸때 최대한 2차원배열이하로 사용하려고하지만 가끔 3차원으로 그것도 하나의 좌표와 다른좌표간의 거리를 재야 하는 경우가 있습니다. 말그대로 미치는거저-_-;;;
그래도 다행인게 우리에게는 함수가있습니다!!!
Sqrt()란녀석인데 제곱근값을 구할때 씁니다.(.NET)
이녀석은 Math라는 클레스에 들가있는 녀석이니 인포트를 하던 점(.)을 쓰던 불러와서 쓰면 되저.
'루트값을 구해주는 함수 sqrtPublic Shared Function Sqrt(ByVal d As Double) As Double
루트값치고 정수로 딱떨어지는 경우는 그리 많지 않습니다 ㅡ,.ㅡ;;
그러니 필요에 따라 반올림을 하던 올림을 하던 버림을 하던 해야 하저;;
그러나 다행인점은 한좌표에서 다른 좌표간의 길이를 젤때는 항상 양수로만 구한다는 것입니다.
좌표가 10,10,10 인점에서 5,5,5 인점의 길이를 구한다고 해서 길이가 마이너스(-)가되진 안저.
다시말해 항상 좌표는 양수로 바까서 계산해도 된다는 것입니다.
'절대값을 구할때 쓰는 함수 ABSPublic Shared Function Abs(ByVal value As System.SByte) As System.SByte
Sqrt(Abs(x - x2) ^ 2 + Abs(y - y2) ^ 2 + Abs(z - z2) ^ 2)
그러나!!! 당신은 낚인겁니다!!
우리는 코드짜는데 너무 신경쓴 나머지 중요한 사실 하나를 관과 하고 있었습니다.....
바로 모든 수는 제곱하면 양수가됩니다. ㅡ,.ㅡ;;;(이건 제기억으로 초딩때 배웠습니다;;)
제곱이란 말자체가 값에 값을 곱한다는 이야기인데....
+ * + = +
- * - = +
...
이런짓하다보면 가끔 까먹으니 조심을 ㅎㅎ;;
Sqrt((x - x2) ^ 2 + (y - y2) ^ 2 + (z - z2) ^ 2)AD = √(AB^2+BC^2+CD^2)