在Python里乱跑?

2024-04-19 17:00:13 发布

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

我发现自己在玩Python中的turtle模块,只是把一些东西修改成其他人编写的代码(dmitrikurilo)。我用它做了一个非常整洁的身材,形成了美丽的曲线。因为我对数学知之甚少,也许你们中的一些人可以帮我了解这里发生了什么!多谢了,这是密码!公司名称:

import turtle, random
from math import *
def fib(n):    
    for n in range(400):
        turtle.color("black")
        turtle.right(pi*19)
        turtle.forward(n)
        if n > 400:
            break    

turtle.title("The Looping ball")
turtle.colormode(255)
turtle.color("white")
turtle.goto(0,0)
turtle.color("black")
turtle.speed(500)
fib(1)
turtle.getscreen()._root.mainloop()

Tags: 模块代码import名称密码公司数学random
2条回答
import turtle, random
from math import *

random的导入是多余的。最后,只使用了turtle和{}。在

^{pr2}$

画一个由400条线段组成的图形,每两条线段之间有59.69度的夹角(默认情况下,turtle模块使用度),每个线段比前一条线段长一个单位。这几乎可以产生6个角度spirangle,但是由于两个部分之间的角度不是一个完整转弯(60度)的六分之一,所以它稍微偏了。在

请注意,参数n是未使用的,因为它被循环中的n覆盖。条件n > 400永远不会达到(因为range(400)的范围从0包含到400排除),所以循环的最后一部分没有什么值得一提的。在

现在是主要部分:

turtle.title("The Looping ball")
turtle.colormode(255)
turtle.color("white")
turtle.goto(0,0)
turtle.color("black")
turtle.speed(500)

为结果窗口选择一些设置:设置标题,colormode设置(如何指定颜色值;此处不使用),在屏幕中心画一条白线,并将海龟留在那里(最好使用turtle.penup()turtle.pendown()),并尽可能快地设置绘图速度(turtle.speed(0)会做同样的事情,任何大于10的都与turtle.speed(0)相同)。在

fib(1)

绘制螺旋线。在

turtle.getscreen()._root.mainloop()

程序的控制权交给turtle屏幕的主事件循环。如果不这样做,窗口将在完成绘图后立即关闭。如果你“运行”主循环,只要窗口是打开的,它就会使程序保持活动状态。在

原始程序的更清晰版本:

import turtle

def fib(num, rot=59.7, scale=1.0):
    for n in range(num):
        turtle.right(rot)
        turtle.forward(n*scale)

turtle.title('The Looping ball')
turtle.speed(2000)
turtle.pencolor('blue')
fib(400, rot=92, scale=0.75)
turtle.getscreen()._root.mainloop()

这将删除一些不必要的内容,并对一些值进行参数化,以便OP可以处理行数、每行之前的旋转以及行的长度。这有助于了解每个参数是如何改变事物的。在

相关问题 更多 >