生成圆周上的所有点

时间:2011-12-13 10:49:37

标签: python

有人可以帮助我使用可以生成圆周上所有点的代码,给定圆的半径和中心。我需要Python中的代码。也有人可以解释如果将K-Means应用于具有相同中心但半径不同的2个圆的两组点(我的意思是圆周上的点)会发生什么。如何进行聚类。

3 个答案:

答案 0 :(得分:9)

以下将在以(0,0)为中心的圆周上生成所需的点数,默认为100点。

import math
pi = math.pi

def PointsInCircum(r,n=100):
    return [(math.cos(2*pi/n*x)*r,math.sin(2*pi/n*x)*r) for x in range(0,n+1)]

答案 1 :(得分:3)

以下是如何在圆周上生成所有点。

def all_floats():
    for exp in xrange( -1024, 1024 ):
        for man in xrange( -(2**52), 2**52 ):
            yield (man/2**52)*2**exp

def all_circle( r=100, domain=all_floats ):
    for x in domain():
       for y in domain():
          if x**2 + y**2 == r**2:
              yield x, y

那可能不是你想要的。但是,写作很有趣。

我认为这个算法可以推广到不同all_floats样式函数,这些函数通常是不同数值域中的所有值。 all_ints将是微不足道的。 all_decimal写作也可能很有趣。

答案 2 :(得分:1)

我自己从未实现过,但this Wikipedia article可能是一个开始。它甚至有一个示例实现,您只需将其转换为Python。 :)但是,对你的问题的k-means部分没有帮助。