人机交互到艺术设计及玫瑰花绘制实例

库之图形用户界面
|
to ! |

库之游戏开发
| Openfor 3D& Games
库之虚拟现实
/-: There's a blog about thishere: ()
/pyovr:forRiftSDK ()
【人机交互到艺术设计及玫瑰花绘制实例】 |for()
库之图形艺术

人机交互到艺术设计及玫瑰花绘制实例

文章插图
/Quads:art based on . ()
/:to ASCII art ()
——3.11.3
玫瑰花绘制实例
import turtle as t# 定义一个曲线绘制函数def DegreeCurve(n, r, d=1):for i in range(n):t.left(d)t.circle(r, abs(d))# 初始位置设定s = 0.2 # sizet.setup(450*5*s, 750*5*s)t.pencolor("black")t.fillcolor("red")t.speed(100)t.penup()t.goto(0, 900*s)t.pendown()# 绘制花朵形状t.begin_fill()t.circle(200*s,30)DegreeCurve(60, 50*s)t.circle(200*s,30)DegreeCurve(4, 100*s)t.circle(200*s,50)DegreeCurve(50, 50*s)t.circle(350*s,65)DegreeCurve(40, 70*s)t.circle(150*s,50)DegreeCurve(20, 50*s, -1)t.circle(400*s,60)DegreeCurve(18, 50*s)t.fd(250*s)t.right(150)t.circle(-500*s,12)t.left(140)t.circle(550*s,110)t.left(27)t.circle(650*s,100)t.left(130)t.circle(-300*s,20)t.right(123)t.circle(220*s,57)t.end_fill()# 绘制花枝形状t.left(120)t.fd(280*s)t.left(115)t.circle(300*s,33)t.left(180)t.circle(-300*s,33)DegreeCurve(70, 225*s, -1)t.circle(350*s,104)t.left(90)t.circle(200*s,105)t.circle(-500*s,63)t.penup()t.goto(170*s,-30*s)t.pendown()t.left(160)DegreeCurve(20, 2500*s)DegreeCurve(220, 250*s, -1)# 绘制一个绿色叶子t.fillcolor('green')t.penup()t.goto(670*s,-180*s)t.pendown()t.right(140)t.begin_fill()t.circle(300*s,120)t.left(60)t.circle(300*s,120)t.end_fill()t.penup()t.goto(180*s,-550*s)t.pendown()t.right(85)t.circle(600*s,40)# 绘制另一个绿色叶子t.penup()t.goto(-150*s,-1000*s)t.pendown()t.begin_fill()t.rt(120)t.circle(300*s,115)t.left(75)t.circle(300*s,100)t.end_fill()t.penup()t.goto(430*s,-1070*s)t.pendown()t.right(30)t.circle(-600*s,35)t.done()
这段代码使用模块绘制了一个玫瑰花的图案 。具体实现如下:
定义了一个函数 , 该函数用于绘制一条弧线 , 包含三个参数:n为绘制的弧线的线段数 , r为弧线的半径 , d为绘制方向 , 即正值为逆时针 , 负值为顺时针 。
初始化画布的大小、画笔颜色和填充颜色等参数 , 并设定绘制速度 。
绘制花朵形状:首先绘制一个圆形 , 然后绘制两段半径为200s的弧线和一段100s的弧线 , 接着绘制两段半径为50s的曲线和一段半径为350s的弧线 , 最后绘制一段半径为70s的曲线、一段半径为150s的弧线、一段半径为50s的曲线、一段半径为400s的弧线、一段半径为50s的曲线和一段前进250s的直线 。
绘制花枝形状:向右旋转150度 , 前进280s , 向左旋转115度 , 绘制一段半径为300s的弧线、一段半径为225s的曲线、一段半径为350s的弧线、向左旋转90度、绘制一段半径为200s的弧线和一段半径为500s的弧线 , 最后绘制一段20个线段、半径为2500s的曲线和一段220个线段、半径为250s的曲线 。
绘制两个绿色的叶子:分别绘制两个半径为300s的圆弧和一段前进600s的直线 , 然后绘制第二个叶子 , 包含两段半径为300s和一段半径为600s的弧线 。
绘制完成后 , 关闭画布 。