2011-04-28 99 views
0

這是我的家庭作業的問題:圓周距離問題

通過添加一個名爲正是DIST(方法展開您的Circle類),接受一個點的x和y的值,並返回點的距離在圓的外側的座標空間中(或者如果點在圓上或內部則爲零)。

下面的代碼:

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

應打印大約輸出:

2.6055512754639891 

但是我無法理解的問題。從圓的外側返回座標空間中的點是什麼意思?你能解釋一下嗎?

+4

你有TA可以去嗎? – 2011-04-28 00:14:43

+0

基本上,創建一個名爲Circle()的方法,給定一個(x,y)點計算從該點到圓的邊緣的最短距離。 – 2011-04-28 00:16:04

+3

如果這是「近似」2.6055512754639891我想看到確切的答案。 – Martin 2011-04-28 00:16:27

回答

4

找到圓心和給定點之間的距離。從距離中減去半徑。負值在圓圈內。

+1

順便說一句,它並沒有要求你「在座標空間中返回點......」這是要求你返回座標空間中點的**距離** ...... – Jason 2011-04-28 01:03:33

0

這可能意味着對圓的最近點的距離,所以它的最小 - 最大問題wherre你減少點的距離circumfurance

2

您可以輕鬆地檢查點在圓內不是。一旦你這樣做了,並確定它在外面,你需要找到一條線圈normal並通過這個點。圓圈周長的長度爲您提供答案。

提示:任何通過圓心的線都是正常的。

所以你有點(x,y),半徑r和中心(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 2011-04-28 00:32:38

+0

@yoda,我可以找到的是這個http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions你有這個官方政策的鏈接? – 2011-04-28 01:24:12

+1

也許_policy_是錯誤的詞。儘管如此,我很少看到HW標籤中發佈的確切解決方案。此外,OP沒有要求編碼,而是解釋了這個問題的含義。 – abcd 2011-04-28 02:55:15