我可以在我的圈内生成积分吗?

时间:2016-02-26 22:44:40

标签: python function while-loop module turtle-graphics

有没有办法在乌龟图形中生成圆圈内的点(点)? 我想在我的圈内产生10个点。我的代码包括使用模块中的函数。我正在尝试使用“def”函数完成此程序。到目前为止,我知道我需要使用while和if语句,我需要使用“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为中心。 有什么帮助吗?

1 个答案:

答案 0 :(得分: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,然后将该角度从0投射到radius。这只是在圆圈内生成随机点的一种方法。