【问题标题】:How to get python to generate random size?如何让python生成随机大小?
【发布时间】:2018-07-23 06:34:23
【问题描述】:

我需要让我的 python 代码随机绘制不同大小的星星。我已经尝试了所有我知道但无法弄清楚的方法......仍在尝试完全理解循环。

import turtle
import random

for n in range(60):
    turtle.penup()
    turtle.goto(random.randint(-400, 400), random.randint(-400, 400))
    turtle.pendown()

    red_amount   = random.randint( 0,  100) / 100.0
    blue_amount  = random.randint(0 , 100) / 100.0
    green_amount = random.randint( 0,  100) / 100.0
    turtle.pencolor((red_amount, green_amount, blue_amount))

    turtle.pensize(random.randint(1, 10))

    for i in range(6):
        turtle.begin_fill()
        turtle.forward(50)
        turtle.right(144)
        turtle.end_fill()

它目前所做的只是绘制相同大小的星星。

【问题讨论】:

  • 您需要更正代码中的缩进。现在它不起作用。
  • turtle.forward(50) # 不是随机的..

标签: python random turtle-graphics


【解决方案1】:

您已经添加了随机化颜色、起始位置和笔宽的代码,但没有任何代码可以更改星星的大小。大小由这条语句控制:

turtle.forward(50)

但是你不想简单地用另一个调用 random 模块来替换 50,因为你的星星会不规则地出现。您需要在循环之前计算一个随机大小,然后在循环中的 forward() 调用中使用该大小:

import turtle
import random

for n in range(60):
    turtle.penup()
    turtle.goto(random.randint(-400, 400), random.randint(-400, 400))
    turtle.pendown()

    red_amount = random.random()
    blue_amount = random.random()
    green_amount = random.random()
    turtle.color(red_amount, green_amount, blue_amount)

    turtle.pensize(random.randint(1, 10))

    size = random.randint(25, 100)

    turtle.begin_fill()

    for i in range(5):
        turtle.forward(size)
        turtle.right(144)

    turtle.end_fill()

turtle.done()

我还对您的代码进行了一些样式更改。

【讨论】:

  • 谢谢!!这是有道理的!
  • 是否有可能知道为什么填充颜色不起作用?
  • 在开头添加screen.colormode(1)。
  • @LeeDanielCrocker,colormode() 已经正确,因为 1.0 是默认值,Ayla 和我的代码都依赖于此。 fill color 问题是 fill 已损坏,而不是 color。
  • @AylaBrooks,我已修复代码以使 fill 也能正常工作。但是,根据您拥有的系统类型,您可能会看到不同的东西。 Windows 系统可能会看到完全填充的星星。 Unix 系统可能会看到只有双臂被填满的星星,而不是中心。如果这是一个问题,我可以提供解释和解决方法的链接。
猜你喜欢
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多