手机版
你好,游客 登录 注册
背景:
阅读新闻

Python 3实现随机漫步(Random Walk)

[日期:2019-12-23] 来源:Linux公社  作者:醉落红尘 [字体: ]

Python 3实现丰富多彩的随机漫步(Random Walk)。 基本思路很简单:选择0:360度范围内的随机航向。 朝那个方向走。 选择另一个随机标题并再次执行。 这样做2,000次。 作为奖励,我们从头到尾遍历彩虹的所有颜色(或类似的颜色)。

处理颜色会使该程序(或其他任何程序)复杂化。 计算机图形学中的两种主要颜色模型是RGB和HSV。 Turtle和许多其他图形库接受RGB,但不接受HSV。 但是,HSV最适合在彩虹色之间循环(我说“彩虹”,但HSV中有些色不是真正的彩虹。请注意,例如图片中的褐色。没关系)。 只需将色相从0开始,并在每一步将其递增,直到1(在某些系统中为100),然后使用colorsys库将其转换为RGB。

代码如下:

#   Random Walk, in glorious Technicolour
#   https://docs.python.org/3/library/turtle.html
#   Authour: Alan Richmond, Python3.codes

from turtle import *
from random import randint
from colorsys import hsv_to_rgb

step=30                 # length of each step
nsteps=2000             # number of steps
hinc=1.0/nsteps         # hue increment
width(2)                # width of line

(w,h)=screensize()      # boundaries of walk
speed('fastest')
colormode(1.0)          # colours 0:1 instead of 0:255
bgcolor('black')        # black background
hue=0.0
for i in range(nsteps):
    setheading(randint(0,359))
    #   https://docs.python.org/2/library/colorsys.html
    color(hsv_to_rgb(hue, 1.0, 1.0))  # pen colour in RGB
    hue+=hinc                           # change colour
    forward(step)                       # step along!
    (x,y)=pos()                         # where are we?
    if abs(x) > w or abs(y) > h:            # if at boundary
        backward(step)                      # step back
done()

效果图如下:

Python 3实现随机漫步(Random Walk)

更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-12/161795.htm

linux
相关资讯       随机漫步  Random Walk 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款