生成ci周长上的所有点

2024-10-01 19:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我一个代码,可以生成一个圆的圆周上的所有点,给定半径和圆心。我需要Python中的代码。也有人能解释一下,如果K-均值应用于两组点(我是指圆周上的点),对于两个中心相同但半径不同的圆,会发生什么。集群是如何发生的。


Tags: 代码半径集群中心均值圆心
3条回答

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

下面将在以(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)]

下面是如何生成圆周长上的所有点。

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写起来可能也很有趣。

相关问题 更多 >

    热门问题