雪景艺术绘图
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() # 结束绘制
更多学习