python用turtle画月亮_使用Python turtle画表白分形树

原标题:使用Python turtle画表白分形树

turtle --- 海龟绘图

海龟绘图很适合用来引导孩子学习编程。最初来自于 Wally Feurzig 和 Seymour Papert 于 1966 年所创造的 Logo 编程语言。

请想象绘图区有一只机器海龟,起始位置在 x-y 平面的 (0, 0) 点。先执行 import turtle,再执行 turtle.forward(15),它将(在屏幕上)朝所面对的 x 轴正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度。

通过组合使用此类命令,可以轻松地绘制出精美的形状和图案。

turtle 模块是基于 Python 标准发行版 2.5 以来的同名模块重新编写并进行了功能扩展。

新模块尽量保持了原模块的特点,并且(几乎)100%与其兼容。这就意味着初学编程者能够以交互方式使用模块的所有命令、类和方法——运行 IDLE 时注意加 -n 参数。

turtle 模块提供面向对象和面向过程两种形式的海龟绘图基本组件。由于它使用 tkinter 实现基本图形界面,因此需要安装了 Tk 支持的 Python 版本。

import turtle

import random

def love(x,y):#在(x,y)处画爱心lalala

lv=turtle.Turtle()

lv.hideturtle()

lv.up()

lv.goto(x,y)#定位到(x,y)

def curvemove():#画圆弧

for i in range(20):

lv.right(10)

lv.forward(2)

lv.color('red','pink')

lv.speed(10000000)

lv.pensize(1)

#开始画爱心lalala

lv.down()

lv.begin_fill()

lv.left(140)

lv.forward(22)

curvemove()

lv.left(120)

curvemove()

lv.forward(22)

lv.write("linuxidc",font=("Arial",12,"normal"),align="center")

lv.left(140)#画完复位

lv.end_fill()

def tree(branchLen,t):

if branchLen > 5:#剩余树枝太少要结束递归

if branchLen<20:#如果树枝剩余长度较短则变绿

t.color("green")

t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))

t.down()

t.forward(branchLen)

love(t.xcor(),t.ycor())#传输现在turtle的坐标

t.up()

t.backward(branchLen)

t.color("brown")

return

t.pensize(random.uniform((branchLen+5)/4-2,(branchLen+6)/4+5))

t.down()

t.forward(branchLen)

# 以下递归

ang=random.uniform(15,45)

t.right(ang)

tree(branchLen-random.uniform(12,16),t)#随机决定减小长度

t.left(2*ang)

tree(branchLen-random.uniform(12,16),t)#随机决定减小长度

t.right(ang)

t.up()

t.backward(branchLen)

myWin = turtle.Screen()

t = turtle.Turtle()

t.hideturtle()

t.speed(1000)

t.left(90)

t.up()

t.backward(200)

t.down()

t.color("brown")

t.pensize(32)

t.forward(60)

tree(100,t)

myWin.exitonclick()

效果图如下:

1125733749fb4b4c9ff3173b83ff0a16.jpeg

本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-03/157787.htm返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值