python画简便的图-如何用python画M集(1)——M集原始图的画法
很多人问我明明已经有现成的程序,为什么还要教大家自己写代码制作分形呢?
那好,既然已经有那么多人成功了,你们可以不用追求成功,就这样颓废下去,可以吗?
(这个例子是不是很怪?其实我认为是一回事)
import numpy as np
import cv2
from tqdm import tqdm
# 我只是想加个进度条
def f(z, c):
# 原始的M集迭代公式(Python支持复数数据类型,可以直接计算)
return z**2 + c
def dwell(z0, c, bailout, step):
# 一般的迭代数公式
z = z0
i = 0
while abs(z) <= bailout and i <= step:
z = f(z, c)
i += 1
return i
def dwell_to_bgr(s):
# 配色方案
# 这里用的函数是用伯恩斯坦基构造的,效果不错
red = lambda s: (1-s)**4
green = lambda s: (1-s)**2*(1+2*s+3*s**2)
blue = lambda s: 2*s**2*(1-s)*(3-s)
color = np.array([blue(s), green(s), red(s)])
color = np.floor(225 * color)
return color
def main():
# 基本参数:迭代步数,初值,逃离界
step = 1024
z0 = 0
bailout = 2
# 构造网格(在原定大小基础上进行9倍超采样)
x_ir = 640
y_ir = 360
g = np.zeros((3*y_ir+1, 3*x_ir+1))
# 作画区域确定
x_range = 2
y_range = x_range * y_ir / x_ir
# 计算各格子的颜色(配色方案另行说明)
for i in tqdm(range(g.shape[0])):
for j in range(g.shape[1]):
# 坐标这么写是保证生成的图符合传统上的直角坐标系
x = x_range * (2 * j / (g.shape[1]-1) - 1)
y = -y_range * (2 * i / (g.shape[0]-1) - 1)
c = x + y * 1j
g[i][j] = dwell(z0, c, bailout, step)
# 对矩阵进行0-1归一化
g = (g - np.min(g)) / (np.max(g) - np.min(g))
# 填入BGR三通道,适应OPENCV的格式
img = np.zeros((g.shape[0], g.shape[1], 3))
for i in tqdm(range(g.shape[0])):
for j in range(g.shape[1]):
for k in range(3):
img[i][j][k] = int(dwell_to_bgr(g[i][j])[k])
# 放缩恢复原定的图像大小(插值算法是我自己选的,有疑问可以问我)
img2 = cv2.resize(img, (x_ir, y_ir), interpolation=cv2.INTER_AREA)
cv2.imwrite("test.png", img2)
main()
python画简便的图-如何用python画M集(1)——M集原始图的画法相关推荐
- python 画三维函数图-如何用Matplotlib 画三维图的示例代码
最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散 ...
- 用python画机器猫代码_如何用Python画一只机器猫?| 原力计划
原标题:如何用Python画一只机器猫?| 原力计划 作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自 ...
- 用python画简单的动物-如何用python画简单的动物
首先来看一下实现效果,如下图: 具体实现代码请看: (推荐学习:python视频教程)# -*- coding:utf-8 -*-# __author__ :kusy# __content__:文件说 ...
- python如何编写树_如何用Python画一颗小树?
1.代码的结构: 本代码有两个子函数组成,有main函数和画树函数组成. 2.编写画树函数: 画树函数,就是用来画出我们的树的一种子函数,代码如下:def tree(plist,l,a,f): if ...
- 用python画简单的图案-如何用Python画各种著名数学图案 | 附图+代码
原标题:如何用Python画各种著名数学图案 | 附图+代码 用Python绘制著名的数学图片或动画,展示数学中的算法魅力. Mandelbrot 集 代码:46 lines (34 sloc) 1. ...
- 如何用python画爱心型线_如何用python画爱心
用python绘制爱心的基本步骤如下: 首先先下载安装好python程序. 在我们自己的电脑上找到python 的IDLE工具. 2.然后打开IDLE,新建一个文件,命名为test1.py. 3.接着 ...
- python程序写蛇_如何用Python画一条蛇
先上效果图 最近又打算重新学习Python了, 之前也入门过Python, 但是弄完Python的开发环境后, 停留在print("hello world")阶段 非科班出身, 没 ...
- python绘制彩色同心圆_如何用python画同心圆
Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发.Python在设计上坚持了 ...
- python 读取excel图片_如何用Python读取Excel中图片?
公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...
- python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...
最新文章
- 模仿Hibernate的逆向工程_java版_源码下载
- android widget 研究 (转载)
- Linux IPC udp/tcp/UNIX域 socket编程
- 008_Redis的ZSet数据类型
- androidstuido_schooltest_7_storage
- redis集群搭建(基于docker)
- html中验证密码中是包含字母,在JavaScript中确认密码验证
- BZOJ 4706: B君的多边形 找规律
- [【转载】 linux进程间通信方式
- 【Python】 注释
- spring-beans下的BeanUtils.copyProperties
- ps文件太大无法保存?
- 太阳方位角/天顶角名词解释及计算方法
- 海量的超赞 Linux 软件 (转载)
- 从FrameDebugger看Unity渲染
- shell小实验详解1——for循环语句实现求奇数和与偶数和+小技巧使用!!!
- 测试点先发散后收敛思考
- mysql 5.7的my.ini的位置在隐藏文件夹“ProgramData”下面
- C基础学习之C 输入 输出
- 20世纪最好的10个算法(转)