首页 > 编程语言 >Python绘图之樱花树

Python绘图之樱花树

时间:2022-11-18 00:22:49浏览次数:40  
标签:right pu Python random 0.5 绘图 90 樱花树 heading

利用分形绘制樱花树,代码来自网络。

from turtle import *
from random import *
from math import *

def tree(n,l):
    pd()#下笔
    #阴影效果
    t = cos(radians(heading()+45))/8+0.25
    pencolor(t,t,t)
    pensize(n/3)
    forward(l)#画树枝

    if n>0:
        b = random()*15+10 #右分支偏转角度
        c = random()*15+10 #左分支偏转角度
        d = l*(random()*0.25+0.7) #下一个分支的长度
        #右转一定角度,画右分支
        right(b)
        tree(n-1,d)
        #左转一定角度,画左分支
        left(b+c)
        tree(n-1,d)
        #转回来
        right(c)
    else:
        #画叶子
        right(90)
        n=cos(radians(heading()-45))/4+0.5
        pencolor(n,n*0.8,n*0.8)
        circle(3)
        left(90)
        #添加0.3倍的飘落叶子
        if(random()>0.7):
            pu()
            #飘落
            t = heading()
            an = -40 +random()*40
            setheading(an)
            dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
            forward(dis)
            setheading(t)
            #画叶子
            pd()
            right(90)
            n = cos(radians(heading()-45))/4+0.5
            pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
            circle(2)
            left(90)
            pu()
            #返回
            t=heading()
            setheading(an)
            backward(dis)
            setheading(t)
    pu()
    backward(l)#退回

bgcolor(0.5,0.5,0.5)#背景色
ht()#隐藏turtle
speed(10)#速度 1-10渐进,0 最快
tracer(0,0)
pu()#抬笔
backward(100)
left(90)#左转90度
pu()#抬笔
backward(300)#后退300
tree(12,100)#递归7层
done()

效果为
image

标签:right,pu,Python,random,0.5,绘图,90,樱花树,heading
From: https://www.cnblogs.com/coco02/p/16901876.html

相关文章

  • 一些关于Python Class和C++ Class 的不同点
    写在前面本文将对PythonClass的用法进行讲解,且重点将体现PythonClass与C++Class不同的地方。类的定义和C++类似,Python采用了Classxxx的定义方式,不过首字母需要大写......
  • Python绘图之纪念碑谷
    初学python时,在海龟绘图看到一幅纪念碑谷的作品,顿时来了兴趣,于是自己画了画,模仿出了类似的效果。turtle官方文档importturtleastdefdrawlight(x,y):t.penup()......
  • Python爬虫之旅游景点评论
    目录爬取景点评论准备工作获取HTML页面解析处理worldcloudreference:爬取携程景点评论数据本博客记录一个爬取携程景点评论并制作词云的例子,并且可以很轻易地拓展到多个......
  • Python Pickle 与 JSON
    1.PythonPickle和JSON之间的区别很全面很棒的解释。2.一篇使用说明:https://janakiev.com/blog/python-pickle-json/3.mmdetection3d中的说明https://githu......
  • 排序算法Python
    冒泡排序defbubbleSort(nums):iflen(nums)<=1:returnnumsforiinrange(len(nums)-1):forjinrange(len(nums)-i-1):......
  • python基础语法知识
    1、多组输入没有结束标志的两种表示形式#method1:try:whileTrue:#代码exceptEOFError:pass #method2:whileTrue:try:#代码......
  • python-单例-笔记
    目标单例设计模式​​__new__​​ 方法Python中的单例01.单例设计模式设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题......
  • python-异常-笔记
    目标异常的概念捕获异常异常的传递抛出异常01.异常的概念程序在运行时,如果 ​​Python解释器​​ 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常......
  • python-模块和包-笔记
    目标模块包发布模块01.模块1.1模块的概念模块是Python程序架构的一个核心概念每一个以扩展名 ​​py​​ 结尾的 ​​Python​​ 源代码文件都是一个 模块模块名 ......
  • python-文件-笔记
    目标文件的概念文件的基本操作文件/文件夹的常用操作文本文件的编码方式01.文件的概念1.1文件的概念和作用计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据......