2011-04-28 5 views
0

이 내 숙제 질문 : 원 거리 질문

정확히 DIST (라는 메소드를 추가하여 Circle 클래스에 확장) 점의 x와 y 값을 사용하고, 지점의 거리를 반환 원 밖의 좌표 공간 (점이 원 위에 있거나 원 안에 있으면 0).

다음 코드 :

myCircle = Circle(1,1,1) 
print myCircle.dist(3,4) 

약의 출력을 인쇄해야합니다 :

2.6055512754639891 

그러나 나는이 질문을 이해하지 못할. 원의 외부에서 좌표 공간의 점을 반환한다는 것은 무엇을 의미합니까? 설명해 주시겠습니까?

+4

가야 할 TA가 있습니까? –

+0

기본적으로 Circle()이라는 메서드를 만듭니다.이 점에서 (x, y) 점은 점에서 원의 가장자리까지의 최단 거리를 계산합니다. –

+3

"approximate"인 경우 2.6055512754639891 정확한 대답을보고 싶습니다. – Martin

답변

4

원의 중심과 주어진 점 사이의 거리를 찾습니다. 거리에서 반경을 뺍니다. 음수 값은 원 안에 있습니다.

+1

그건 그렇고, 그것은 좌표 공간에서 포인트를 반환하도록 요청하지 않습니다 ... 그것은 '좌표 공간에서 포인트의 ** 거리 **'를 반환하라고합니다. – Jason

0

그것은 아마 원에 가장 가까운 점까지의 거리를 의미하므로 지점이 원 안에있는 경우 자사의 최소 - 최대 문제는 지점의 거리를 최소화하는 wherre

2

가 쉽게 확인할 수 있습니다 circumfurance하기 에 아닙니다. 일단 그 일을 끝내고 바깥에 있다고 결정하면 서클에 normal 줄을 찾아 그 지점을 지나야합니다. 원의 둘레에서 선의 길이가 답을줍니다.

힌트 : 원의 중심을 지나는 모든 선이 정상입니다.

포인트 (x,y), 반경 및 중심 (x0,y0)입니다. 문제를 해결하기에 충분한 정보가 있다고 생각합니다.

0
>>> from math import hypot 
>>> hypot(3-1,4-1) # How far is the point from the centre of the circle? 
3.6055512754639891 
>>> hypot(3-1,4-1)-1 # Now subtract the radius 
2.6055512754639891 
>>> 
+4

여기 정책은 숙제를위한 코드가 아닙니다. – abcd

+0

@yoda, 내가 찾을 수있는 것은 http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions이 공식 정책에 대한 링크가 있습니까? –

+1

아마도 _policy_가 잘못된 단어입니다. 그럼에도 불구하고 HW 태그에 게시 된 정확한 해결책을 거의 보지 못했습니다. 더욱이 OP는 코드에 대한 요구가 아니라 질문의 의미에 대한 설명을 요구했습니다. – abcd