需要python中的“导入随机”帮助吗

2024-05-23 23:33:13 发布

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

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

  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)


Tags: def绘制lengthpoints分形speedtrianglep2
1条回答
网友
1楼 · 发布于 2024-05-23 23:33:13

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

至于选择要绘制的随机分形,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()

相关问题 更多 >