python分形算法_python 分形 | 学步园
代码如下:
#!/usr/bin/env python
# -*-coding:UTF-8-*-#
from common import *
import Image, ImageFilter, math, sys, os, random
def modifyImageObj(img, matrix) :
width, height = img.size
for h in range(0, height) :
for w in range(0, width) :
pixel = matrix[h][w]
img.putpixel((w, h), pixel)
return img
def initMatrix(h, w, v = (0, 0, 0)) :
result = []
for _h in range(0, h) :
row = []
for _w in range(0, w) :
row.append(v)
result.append(row)
return result
size = (600, 600)
img = Image.new('RGB', size)
h, w = size
matrix = initMatrix(h, w, (0, 0, 0))
m = []
m.append([-0.04, 0, -0.19, -0.47, -0.12, 0.3, 0.25])
m.append([0.65, 0, 0, 0.56, 0.06, 1.56, 0.25])
m.append([0.41, 0.46, -0.39, 0.61, 0.46, 0.4, 0.25])
m.append([0.52, -0.35, 0.25, 0.74, -0.48, 0.38, 0.25])
n = 0
x, y, a, b, c, d, e, f, newx, newy = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
while n < 300000 :
r = random.uniform(0, 1)
if r <= m[0][6] :
a=m[0][0]
b=m[0][1]
c=m[0][2]
d=m[0][3]
e=m[0][4]
f=m[0][5]
elif r <= m[0][6] + m[1][6] :
a=m[1][0]
b=m[1][1]
c=m[1][2]
d=m[1][3]
e=m[1][4]
f=m[1][5]
elif r <= m[0][6] + m[1][6] + m[2][6] :
a=m[2][0]
b=m[2][1]
c=m[2][2]
d=m[2][3]
e=m[2][4]
f=m[2][5]
else :
a=m[3][0]
b=m[3][1]
c=m[3][2]
d=m[3][3]
e=m[3][4]
f=m[3][5]
newx = (a * x) + (b * y) + e
newy = (c * x) + (d * y) + f
x = newx
y = newy
matrix[(int)(400 - 100 * y)][(int)(300 + 100 * x)] = ((int)(x * 50 * r), (int)(r * 100), (int)(y * 200 * r))
n += 1
modifyImageObj(img, matrix)
img.show()
img.save('frac.jpg')
python分形算法_python 分形 | 学步园相关推荐
- python构建矩阵_python矩阵运算 | 学步园
第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装Matlab那么大的软件,而你又只是想计算些矩阵,python绝对够用!尤其在Linux下太 ...
- python 归并排序算法_python基本算法之实现归并排序(Merge sort)
0.前言 评判一个算法的好坏的标准: 时间复杂度 空间复杂度 1.归并排序算法是什么? 冒泡排序(Bubble Sort)是一种建立在归并操作上面的一种有效的排序算法,由John von neuman ...
- python归并算法_python归并算法
python数据结构与算法总结 python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: <数据结构和算法对python意味着什么?> <顺序表数据结构 ...
- python开发服务程序_Python 编写Windows服务程序:将Python作为Windows服务启动 | 学步园...
Python程序作为Windows服务启动,需要安装pywin32包.下载路径: #-*- coding:utf-8 -*- import win32serviceutil import win32s ...
- python所有算法_Python实现的各种常见分布算法示例
本文实例讲述了Python实现的各种常见分布算法.分享给大家供大家参考,具体如下: #-*- encoding:utf-8 -*- import numpy as np from scipy impo ...
- python分类算法_python数据挖掘中的分类算法有哪些?
一直以来,对于机器学习领域,Python都是人们津津乐道的话题,大家知道我们在用python学习机器技术时候,用到的方法内容和一般情况下的是一样的吗?想必,了解过的小伙伴一定是知道有哪些的,不知道的小 ...
- 用python排序算法_Python - 八大排序算法
1.序言 本文使用Python实现了一些常用的排序方法.文章结构如下: 1.直接插入排序 2.希尔排序 3.冒泡排序 4.快速排序 5.简单选择排序 6.堆排序 7.归并排序 8.基数排序 上述所有的 ...
- python 查找算法_python快速查找算法应用实例
文实例讲述了Python快速查找算法的应用,分享给大家供大家参考. 具体实现方法如下: import random def partition(list_object,start,end): rand ...
- python迭代算法_Python实现简单的梯度下降法
Python 实现简单的梯度下降法 机器学习算法常常可以归结为求解一个最优化问题,而梯度下降法就是求解最优化问题的一个方法. 梯度下降法(gradient descent)或最速下降法(steepes ...
最新文章
- phpMyAdmin FTP iptables Selinux
- MySQL数据库(八) 一一 数据库信息和使用序列
- Struts——例子
- jvm性能调优实战 - 38System.gcy引发的惨案
- 浏览器解析编码优先级
- HDU - 1079 Calendar Game(博弈打表sg函数)
- Robotium双client測试框架
- ASP.NET导出word实例
- (STTN)Learning Joint Spatial-TemporalTransformations for Video Inpainting
- Google 的 “行星级” cron 系统
- 安卓手机能用吗_手机才用两年卡的不行,是手机问题吗,想问手机最长能用几年?...
- python调包侠_sklearn调包侠之K-Means
- (过桥问题)小明一家过一座桥,过桥时是黑夜,所以必须有灯
- openCV学习资料整理
- 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第六章 纹理 Texturing
- PhoneApp的启动过程
- 人世间最纯净的友情只存在于孩童时代
- 计算机专业大专考试题,计算机大专考试试题1.doc
- 新买的笔记本电脑怎么分盘_笔记本电脑验机指南
- 为什么要分库分表?一个业务场景来理顺它!
热门文章
- 移花接木大法:新型“白利用”华晨远控木马分析
- 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支
- 矿产资源储量报告及评审中的若干问题
- 学计算机电脑厚度23mm,人机工程大作业——————人机工程学电脑桌椅.doc
- 我听歌用 foobar2000 V.1.18 + autolyric 歌词同步
- 10kv电缆为什么要做耐压试验? 有什么意义吗?
- 出色的领导者 多普达智能最新旗舰830评测
- asp.net Forms身份验证
- amd cpu 安卓模拟器_一款完美解决AMD兼容问题的安卓模拟器
- WiFi基本概念(十)(网络标识 SSID和BSSID)