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