sierpinski地毯
(分形作业)
取一矩形,九等分而去其中。
每一份九等分去其中;循环往复。

方法一(传统方法)
将每个矩形映射到三个矩形中去即可。
k=3**times
b=np.zeros((k,k),dtype=int)
for i in range(k//3):
for j in range(k//3):
t=ct.renew(a[i][j])
b[3*i:3*i+3,3*j:3*j+3]=t
return b
if i==0:
t=np.zeros((3,3),dtype=int)
t[1][1]=1
elif i==1:
t=np.ones((3,3),dtype=int)
return t
创建一个比之前的矩形大3倍的矩形,将原来的每块按“若黑,中白外黑;若白,全白”的方法来处理。
在数据存储里,以黑为0,以白为1。刚好用分别(zeros+芯=1)与(ones)来处理,是坠吼的。
每个回合,我们都把矩形扩大了3倍(以行数计)。
只要再补上一个模块,使输出的矩形如你所想地大。其实我本来是不想整的 ,但是,最初的矩形是9*9像素的。。。这不影响我交作业但是这做博客就很难看了。

我会告诉你我是这么交上去的?
import ct
import numpy as np
import random
def output(a,times,iii):
k=3**(iii-times)
n=3**iii
p=3**times
b=np.zeros((n,n),dtype=int)
for i in range(p):
for j in range(p):
pass
if a[i][j]==1:
for ii in range(k):
for jj in range(k):
b[i*k+ii][j*k+jj]=1
b[i*k+ii][j*k+jj]=1
b[i*k+ii][j*k+jj]=1
return b
k=3**times
b=np.zeros((k,k),dtype=int)
for i in range(k//3):
for j in range(k//3):
t=ct.renew(a[i][j])
b[3*i:3*i+3,3*j:3*j+3]=t
return b
if i==0:
t=np.zeros((3,3),dtype=int)
t[1][1]=1
elif i==1:
t=np.ones((3,3),dtype=int)
return t
k=3**iii
for i in range(k):
for j in range(k):
if a[i][j]==0:
img[i][j][0]=0
img[i][j][1]=0
img[i][j][2]=0
if a[i][j]==1:
img[i][j][0]=255
img[i][j][1]=255
img[i][j][2]=255
return img
import numpy as np
import ct
a=np.zeros((1,1),dtype=int)
times=1
for i in range(times):
a=ct.big(a,i+1)
print(a.shape)
img=ct.cut(times)
imgg=ct.print(a,times,img)
cv2.imwrite(name,imgg)
if times<5:
b=ct.output(a,times,5)
imgx=ct.cut(5)
imgggg=ct.print(b,5,imgx)
name=str("sierpinskinew"+str(int(times))+".jpg")
cv2.imwrite(name,imgggg)
总之是因为可以心安理得地用python而高兴的一天。
哎,你说C++,是不会用么?算也不算。
讲道理要实现没什么技术问题,除了,你写三小时程序有两小时在骂街以外。
C++使我暴躁。
你说我np(3**7,3**7)多快乐啊。上次int a[1000][1000]直接boom了。。。
替代算法有么,当然有,可是不快乐啊2333333。
sierpinski地毯的更多相关文章
- sierpinski地毯(II)
今天又是因为可以用py而高兴的一天. 继续咱的sierpinski地毯计划. 二,随机算法 在二十年前,磁盘容量以MB还是KB计的时候,分形解决计图的问题确实有很大的优势.存至多十来个数就好了.我要在 ...
- 分形之谢尔宾斯基(Sierpinski)地毯
前面讲了谢尔宾斯基三角形,和这一节的将把三角形变为正方形,即谢尔宾斯基地毯,它是由瓦茨瓦夫·谢尔宾斯基于1916年提出的一种分形,是自相似集的一种. 谢尔宾斯基地毯的构造与谢尔宾斯基三角形相似,区别仅 ...
- 混沌分形之谢尔宾斯基(Sierpinski)
本文以使用混沌方法生成若干种谢尔宾斯基相关的分形图形. (1)谢尔宾斯基三角形 给三角形的3个顶点,和一个当前点,然后以以下的方式进行迭代处理: a.随机选择三角形的某一个顶点,计算出它与当前点的中点 ...
- sierpinski垫片(3D)[误]
今天是因为可以用py而高兴的一天. 昨天老板淡淡地回了一句,sierpinski地毯画得挺好的. 我思考了五秒钟之后,想起来作业其实是sierpinski垫片. 三角垫片比地毯难做多了. 因为 ...
- JavaScript图形实例:SierPinski三角形
1.SierPinski三角形 Sierpinski三角形是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集.其生成过程为: (1)取一个三角形(多数使用等边三角形): (2) ...
- 18个分形图形的GIF动画演示
这里提供18个几何线段分形的GIF动画图像.图形颜色是白色,背景色为黑色,使用最基本的黑与白以表现分形图形. (1)科赫(Koch)雪花 (2)列维(levy)曲线 (3)龙形曲线(Drago ...
- JavaScript动画实例:递归分形图动态展示
在“JavaScript图形实例:SierPinski三角形” 和“JavaScript图形实例:Levy曲线及其变形”等文章中我们介绍了通过递归生成分形图形的方法.我们可以将绘制的分形图形每隔一定的 ...
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- AC日记——铺地毯 洛谷 P1003(水水水水水~)
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
随机推荐
- docker容器的基本使用
### Docker中镜像的基本使用以及Docker的基本使用 #### 1.Docker的安装 ```先进入终端,然后使用以下命令:sudo apt-get updatesudo apt-get i ...
- 08-Django 模板
需要教程的请关注个人微信公众号 模板:产生html,用于控制页面的展示,模板不仅仅是一个html文件,它包含两部分内容: 静态内容:css,js,image 动态内容:用模板语言语言动态的产生一些网页 ...
- git 删除文件/移动文件
1.git rm 删除文件 git restore --file (git老版本:git checkout) git rm --file(本地和管理都已删除) git rm --cached file ...
- alter对话框处理:
from selenium import webdriverd = webdriver.Firefox()d.get('file://C:\\我的代码\\selenium自动化测试\\alter.ht ...
- [译]Vulkan教程(09)窗口表面
[译]Vulkan教程(09)窗口表面 Since Vulkan is a platform agnostic API, it can not interface directly with the ...
- laravel实现多模块
一.这里使用Caffienate Modules 网址:modules maintained by caffeinated 二.根据自己的版本选择包的版本 三.在项目composer.json文件中加 ...
- 由异常:Repeated column in mapping for entity/should be mapped with insert="false" update="false 引发对jpa关联的思考
由异常:Repeated column in mapping for entity/should be mapped with insert="false" update=&quo ...
- IT兄弟连 HTML5教程 HTML5的基本语法 小结及习题
小结 一个完整的HTML文件由标题.段落.列表.表格.文本,即嵌入的各种对象所组成,这些逻辑上统一的对象称为元素.HTML文档主体结构分为两部分,一部分是定义文档类型,另一部分则是定义文档主体的结构框 ...
- SpringBoot入门(简单详细教程)
Spring Boot 简介 简化Spring应用开发的一个框架:整个Spring技术栈的一个大整合:J2EE开发的一站式解决方案: 微服务 martin fowler:微服务:架构风格(服务微化): ...
- 浅谈Httpmodules
HttpModule是ASP.NET过滤器,可以理解为HTTP请求的必经之地我们只要实现IHttpModule接口,就可以取代HttpModule namespace BookShop.Handler ...