【问题标题】:Need a help 'import random' in python [closed]在python中需要帮助'导入随机'[关闭]
【发布时间】:2021-09-23 18:52:38
【问题描述】:

这是一个翻译器),我需要确保在打开项目时随机绘制 2 个分形(用海龟绘制)(第一个分形或第二个),你能告诉我应该添加哪些命令代码的开头让随机选择一个分形,谢谢。

  import turtle as tu, random

def Koch(length):

if length <= 2 :
tu.fd(length)
return
Koch(length/3)
tu.lt(60)
Koch(length/3)
tu.rt(120)
Koch(length/3)
tu.lt(60)
Koch(length/3)


tu.speed(166)
length = 300.0
tu.penup()
tu.backward(length/2.0)
tu.pendown()
Koch(length)
tu.done()

triangle = turtle.Turtle()
triangle.ht()
triangle.speed(10)
triangle.pencolor('blue')

triangle.speed(0)
points = [[-175,-125],[0,175],[175,-125]] 

 def getMid(p1,p2):
  return ( (p1[0]+p2[0]) / 2, (p1[1] + p2[1]) / 2) 

def triangle(points,depth):

triangle.up()
triangle.goto(points[0][0],points[0][1])
triangle.down()
triangle.goto(points[1][0],points[1][1])
triangle.goto(points[2][0],points[2][1])
triangle.goto(points[0][0],points[0][1])

 if depth>0:
    triangle([points[0],
                    getMid(points[0], points[1]),
                    getMid(points[0], points[2])],
               depth-1)
    triangle([points[1],
                    getMid(points[0], points[1]),
                    getMid(points[1], points[2])],
               depth-1)
    triangle([points[2],
                     getMid(points[2], points[1]),
                     getMid(points[0], points[2])],
               depth-1)

三角形(点,6)

【问题讨论】:

  • 欢迎来到 Stack Overflow,请提出具体问题,不要要求用户为您“完成代码”。你有什么具体问题?
  • 对不起,你能告诉我如何在项目开始时随机选择一个分形进行绘制
  • @Jisurane 是的,你使用 random 模块。

标签: python python-3.x turtle-graphics python-turtle fractals


【解决方案1】:

我们需要做的第一件事是将您的代码从函数、数据和测试调用的随机集合重新组织到一个函数库中,我们可以从中选择一个。并分享一只普通的乌龟。

就选择要绘制的随机分形而言,random 库有许多函数可供我们在两个选项之间进行选择。在此示例中,我将使用 choice() 函数来执行此操作:

from turtle import Screen, Turtle

def koch(length):
    if length <= 2:
        turtle.forward(length)
        return

    koch(length/3)
    turtle.left(60)
    koch(length/3)
    turtle.right(120)
    koch(length/3)
    turtle.left(60)
    koch(length/3)

def getMid(p1, p2):
    return ((p1[0] + p2[0])/2, (p1[1] + p2[1]) / 2)

def triangle(points, depth):

    turtle.up()
    turtle.goto(points[0][0], points[0][1])
    turtle.down()
    turtle.goto(points[1][0], points[1][1])
    turtle.goto(points[2][0], points[2][1])
    turtle.goto(points[0][0], points[0][1])

    if depth > 0:
        triangle([points[0],
            getMid(points[0], points[1]),
            getMid(points[0], points[2])],
            depth - 1)
        triangle([points[1],
            getMid(points[0], points[1]),
            getMid(points[1], points[2])],
            depth - 1)
        triangle([points[2],
            getMid(points[2], points[1]),
            getMid(points[0], points[2])],
            depth - 1)

if __name__ == '__main__':
    from random import choice

    LENGTH = 300

    POINTS = [[-175, -125], [0, 175], [175, -125]]

    screen = Screen()

    turtle = Turtle()
    turtle.hideturtle()
    turtle.speed('fastest')
    turtle.pencolor('blue')

    if choice(['koch', 'triangle']) == 'koch':
        turtle.penup()
        turtle.backward(LENGTH / 2)
        turtle.pendown()

        koch(LENGTH)
    else:
        triangle(POINTS, 6)

    screen.exitonclick()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多