2017-12-01 3 views
-1

파이썬에서는 x, y, z (부동 소수점) 위치가 구 내에 있는지를 결정하는 함수를 작성하려고합니다.구형 내부에 3D 점이 있는지 확인하십시오.

필자의 수학적 이해는 아래의 함수가 정확한 답을 주어야한다는 것이지만 테스트 호출은 바깥 영역으로 돌아 오지만 그것이 없어야한다고 생각합니다. 함수의

def IsWithinSphere(x, y, z, radius): 
    c = (pow(x, 2) + pow(y, 2) + pow(z, 2)) <= pow(radius, 2) 
    print 'c = %d' %c 

IsWithinSphere(30.8, 69, 69, 100) 

응답 : C = 0 (외부)

+3

계산이 정확합니다. 구의 바깥 쪽이 _is_입니다. – khelwood

+1

그 점의 원점으로부터의 거리는 ~ 102.32614524157547 –

+0

입니다. QA로 배웠습니다. 먼저 테스트 자체를 테스트 해보십시오! –

답변

2

난 당신의 코드가 정확한지 생각합니다. (30.8^2 + 69^2 + 69^2)^0.5 = 102 (3s.f.). 반경이 100을 초과하여 구의 바깥 쪽입니다.

관련 문제