zoukankan      html  css  js  c++  java
  • 实例:雪景艺术绘图

    雪景艺术绘图

      turtle艺术绘制图形艺术,指利用turtle库画笔创造性绘制绚丽多彩艺术图形的过程

      turtle图形艺术效果中隐含着很多随机元素,如随机颜色、尺寸、位置和数量等。在图形艺术绘制中需要引入随机函数库random。常用randint()函数,生成指定范围内的随机数

       “雪景”图形艺术背景为黑色,分为上下两个区域,上方是漫天彩色雪花,下方是由远及近的灰色横线渐变。该图运用了随机元素如雪花位置、颜色、大小、花瓣数目、地面灰色线条长度、线条位置等,需要使用turtle库和random库

      绘制分为三个步骤:

        1.构建图的背景

        2.绘制雪花效果

        3.绘制雪地效果

    第一步:构建图的背景

      设定窗体大小为800x600像素,窗体颜色为black。然后,定义上方雪花绘制函数drawSnow()和下方雪地绘制函数drawGround()

    第二步:绘制雪花效果

      为体现艺术效果,drawSnow()函数首先隐藏turtle画笔、设置画笔大小、绘制速度,然后使用for循环绘制100朵雪花。雪花大小snowsize、雪花花瓣数dens都分别设定为一定数值范围随机数。最后通过for循环绘制出多彩雪花

    第三步:绘制雪地效果

      drawGround()函数使用for循环绘制地面400个小横线,画笔大小pensize、位置坐标x/y、线段长度均通过randint()函数作为随机数产生

     1 #DrawGround.py
     2 from turtle import*
     3 from random import*
     4 
     5 def drawSnow(): # 绘制雪花效果
     6     hideturtle()
     7     pensize(2)
     8     for i in range(100):
     9         r, g, b = random(), random(), random() # [0.0,1.0)
    10         pencolor(r,g,b)
    11         up()
    12         setx(randint(-350,350)) # 移动x轴
    13         sety(randint(1,270)) # 移动y轴
    14         down()
    15         dens = randint(8,12) # [8,12]
    16         snowsize = randint(10,14)
    17         for j in range(dens):
    18             fd(snowsize)
    19             bk(snowsize)
    20             rt(360/dens)
    21 
    22 def drawGround(): # 绘制雪地效果
    23     hideturtle() # 隐藏turtle图标  相反地 showturtle
    24     for i in range(400):
    25         pensize(randint(5,10))
    26         x = randint(-400,350)
    27         
    28         y = randint(-280,-1)
    29         r, g, b = -y/280, -y/280, -y/280 # 颜色模式colormodule  rgb小数  rgb整数0-255
    30         pencolor(r,g,b)
    31         up()
    32         goto(x,y)
    33         down()
    34         fd(randint(40,100))
    35 # 创建图的背景
    36 setup(800,600,200,200)
    37 tracer(False) 
    38 bgcolor("black") # 背景颜色
    39 drawSnow()
    40 drawGround()
    41 done() # 结束绘制

    更多学习

  • 相关阅读:
    http
    python的列表生成式
    flask的登陆验证
    脚本更新流程
    k8s中job和pod的区别
    k8s中一些常见概念
    supervisord部署和使用
    flask中config
    python类的继承super()的使用
    python中类的继承
  • 原文地址:https://www.cnblogs.com/ShuComputerProgram/p/9972110.html
Copyright © 2011-2022 走看看