2016-02-26 83 views
0

有没有一种方法可以在我的圈内龟图形中生成点(点)? 我想在我的圈子里面生成10个点。我的代码由使用模块中的函数组成。我正在尝试使用“def”函数来完成此程序。到目前为止,我知道我需要使用while语句,并且我需要使用“from random import randint”,但就是这样。我写了部分代码,但我不知道这是否正确。这里是代码:我可以在圈内生成点吗?

def randomDotInCircle(): 
    while _in range(10): 
     dots_pos_x = randint(25, 75) 
     dots_pos_y = randint(-37, 37) 
     if (dots_pos_x, dots_pos_y) == 

      turtle.penup() 
      turtle.goto(dots_pos_x, dots_pos_y) 
      turtle.dot(7) 
      turtle.pendown() 

任何帮助如何在圆内创建随机点?我把魔杖圈在(50,0)和半径为50的中心。 任何帮助?

回答

3

我对一无所知,但这是您如何在圆圈内生成随机点的方法。

import random 
import math 

class Point: 
    def __init__(self, x, y): 
     self.x = x 
     self.y = y 

    def __str__(self): 
     return str((self.x, self.y)) 

class Circle: 
    def __init__(self, origin, radius): 
     self.origin = origin 
     self.radius = radius 

origin = Point(0, 0) 
radius = 50 
circle = Circle(origin, radius) 

for i in range(0, 10): 
    p = random.random() * 2 * math.pi 
    r = circle.radius * math.sqrt(random.random()) 
    x = math.cos(p) * r 
    y = math.sin(p) * r 

    print x, y 

这里的一般方案是生成一个随机的角度,p然后预计,角出一个随机量0radius。这只是一种在圆圈内生成随机点的方法。

+0

感谢您的帮助。我会尝试将这些信息应用到乌龟图形中。 – BenjaminT

+2

这不会选择统一的点数分布。如果你愿意的话,用生成的随机数的平方根来计算'r'(例如'r = circle.radius * math.sqrt(random.random()')。 – Blckknght

+0

@Blckknght更新我的答案以包含这个,知道我错过了一些东西! –

相关问题