实例:雪景艺术绘图

Posted shucomputerprogram

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实例:雪景艺术绘图相关的知识,希望对你有一定的参考价值。

雪景艺术绘图

  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() # 结束绘制

更多学习

以上是关于实例:雪景艺术绘图的主要内容,如果未能解决你的问题,请参考以下文章

移动椭圆的板绘图代码

数学的艺术——迭代函数下的图案(Java绘图)

数据可视化应用xarray 绘图可视化-基础绘图(附代码)

Android:在片段内膨胀自定义视图

CSS3制作圣诞雪景球

创建片段而不从 java 代码实例化它