2011-04-28 48 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