# python # # 分形 # Sierpinski Carpet 谢尔宾斯基地毯
好久没更新,趁着中午休息更新一下,
这次的是分形中的谢尔宾斯基地毯,3阶的地毯是下面这个形状(不是二维码哈☺):
源代码如下 (python 2 使用Turtle绘图):
# coding=utf-8import turtle
PROGNAME = 'Sierpinski Carpet'COLOR_TABLES = [["#000000", "#000000", "#000000", "#000000" ],["#00649F", "#97ECC5", "#00DBE7", "#01AAC1" ],["#085F63", "#EF255F", "#FCCF4D", "#49BEB7" ],["#9B5D73", "#FFF1C5", "#C38B8B", "#B0757C" ],["#F0F0F0", "#FC5185", "#364F6B", "#43DDE6" ],["#F67280", "#355C7D", "#6C5B7B", "#C06C84" ],["#F3ECC8", "#0D1B4C", "#3F6699", "#78C2C3" ] ]def box(pen, boxSize):pen.begin_fill() # 0 deg.pen.forward(boxSize)pen.left(90) # 90 deg.pen.forward(boxSize)pen.left(90) # 180 deg.pen.forward(boxSize)pen.left(90) # 270 deg.pen.forward(boxSize)pen.end_fill()pen.setheading(0)def move_box(pen, xy, length, color):(x, y) = xypen.color(color)pen.penup()pen.goto(x, y)pen.pendown()box(pen, length)def draw_all(pen, xy, length, depth, color_table):if depth <= 0: returnlength3 = length / 3(x, y) = xypos1_9 = [ (x-length3*2, y+length+length3),(x+length3, y+length+length3),(x+length+length3, y+length+length3),(x-length3*2, y+length3),(x+length+length3, y+length3),(x-length3*2, y-length3*2),(x+length3, y-length3*2),(x+length+length3, y-length3*2) ] for pos in pos1_9:move_box(pen, pos, length3, color_table[depth%len(color_table)])draw_all(pen, pos, length3, depth-1, color_table)def main():length = 270 # sizestart_x = -length/2start_y = -length/2depth = 3turtle.setup(width=1.3*turtle.window_width(), height=1.3*turtle.window_height()) # not necessaryfor color_table in COLOR_TABLES:my_pen = turtle.Turtle()my_pen.ht() # hiden turtlemy_pen.speed(20000) # set speed move_box(my_pen, (start_x, start_y), length, color_table[0])draw_all(my_pen, (start_x, start_y), length, depth, color_table)my_pen.getscreen().getcanvas().postscript(file=color_table[0]+".eps") # save to eps filemy_pen.clear() # clear for next drawif __name__ == "__main__":main() pass
运行过程是动态的,保存的图片(+伪彩)如下:
(↓ - 有些内容只在小龙家发,可关注同名“趣Python”号,谢谢 - ↓)
# python # # 分形 # Sierpinski Carpet 谢尔宾斯基地毯相关推荐
- # python # # 分形 # Sierpinski Carpet 谢尔宾斯基地毯 续
运行过程绘图和动图: 原创声明需要超过300字,贴一点生成动图的代码片段. # encoding=utf8from PIL import Imagefiles = ['#000000.png', '# ...
- 关于谢尔宾斯基地毯的讲解
和谢尔宾斯基三角形一样,谢尔宾斯基地毯也是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构造,而谢尔宾斯基三角形采用的等 ...
- Java学习日记:UI篇(6)--谢尔宾斯基地毯图
Java学习日记:UI篇(6)–谢尔宾斯基地毯图 引言:谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构 ...
- 谢尔宾斯基地毯的讲解
谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构造,而谢尔宾斯基三角形采用的等边三角形进行分形构造.谢尔 ...
- python绘制分形图基础_Python 绘制分形图(曼德勃罗集、分形树叶、科赫曲线、分形龙、谢尔宾斯基三角等)附代码...
1. 曼德勃罗集 import numpy as np import pylab as pl import time from matplotlib import cm def iter_point( ...
- python与分形0009 - 谢尔宾斯基地毯
分形介绍 分形是一个悖论. 它惊人的简单,却又无限的复杂. 它很新,却又比尘埃更古老. 分形是什么?它们是从哪里来的?我们为什么要在乎? 20世纪非传统的数学家Benoit Mandelbrot在19 ...
- Python编程:实现谢尔宾斯基三角
Python编程:实现谢尔宾斯基三角 谢尔宾斯基三角,又称谢尔宾斯基地毯,在计算机图形学中是一种经典的分形图形.本文将使用Python编程实现Sierpinski Triangle(谢尔宾斯基三角), ...
- 陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯
陈斌老师<数据结构与算法Python版>第五周作业--ASCII谢尔宾斯基地毯 题目 思路 程序如下 总结 题目 谢尔宾斯基地毯是形如上图的正方形分形图案,每个地毯可分为等大小的9份,其中 ...
- python数据结构与算法40题_Python数据结构与算法40:递归编程练习题3:ASCII谢尔宾斯基地毯...
注:本文如涉及到代码,均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为7分钟. 递归编程练习题3:ASCII谢尔宾斯基地毯 谢尔宾斯基地毯 谢尔宾斯基地毯是形如上图的正方形分形 ...
- Python实验舱谢尔宾斯基地毯绘制教程
谢尔宾斯基地毯,和谢尔宾斯基三角形相似,下图就是谢尔宾斯基地毯 一,起始代码 p.width(3) p.speed(10) import turtle n=int(input()) base=int( ...
最新文章
- 让汽车软件进入 iPhone 时代!
- mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value
- 【转载】dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)
- 遍历DataTable内存数据的三种方法性能对比
- delphi 参数化sql
- java中如何做模糊查询_到底Java里的模糊查询语句该怎么写
- python opencv 利用分水岭算法实现对物体的分割 图文详细注释版 以分割官网提供的硬币为例
- 信息系统安全等级保护基本要求_继电保护对电力系统安全运行至关重要,电网对它的基本要求有哪些...
- linux定时删除文件,Linux下定时删除文件
- 腾讯云服务器安装AMH控制面板
- ContextCaptureMaster/Smart3D 集群简单配置
- L3G4200D + ADXL345 卡尔曼滤波
- 计算机多媒体基础应用,《计算机应用基础》典型多媒体课件简介
- 实用供暖通风空调设计手册 第三版_从设计到施工,设计师必知的工艺材料知识都在这里!...
- 数据抽样方式:概率抽样、非概率抽样
- 视频vv播放量是指什么?怎样提升视频vv播放量?
- RGB565部分常用颜色对照表
- 自学Vue之路——Vue介绍及基本语法
- python Excel xlwt 富文本 同一单元格内设置不同样式
- SQL调优简介及调优方式