在书上偶然看到Mandelbrot集的绘制方法,在网上查阅了一些资料,自己动手试了一下,终于“看到了”数学之美。

在百度百科上的简介

曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为“上帝的指纹”。 这个点集均出自公式:Zn+1=(Zn)^2+C,
这是一个迭代公式,式中的变量都是复数.这是一个大千世界,从他出发可以产生无穷无尽美丽图案,他是曼德勃罗特教授在二十世纪七十年代发现的.你看上图中,有的地方象日冕,有的地方象燃烧的火焰,只要你计算的点足够多,不管你把图案放大多少倍,都能显示出更加复杂的局部.这些局部既与整体不同,又有某种相似的地方,好像着梦幻般的图案具有无穷无尽的细节和自相似性.曼德勃罗特教授称此为"魔鬼的聚合物".为此,曼德勃罗特在1988年获得了"科学为艺术大奖"。
图形是由美国数学家曼徳勃罗特教授于1975年夏天一个寂静的夜晚,在冥思苦想之余翻看儿子的拉丁文字典是想到的,起拉丁文的原意是“产生无规则的碎片”

julia朱丽叶集与之相似

也是百度百科上的简介

朱利亚集合可以由下式进行反复迭代得到:
fc(z) = z2 + c
对于固定的复数c,取某一z值(如z = z0),可以得到序列
z0,fc(z0),fc(fc(z0)),fc(fc(fc(z0))),....

这一序列可能反散于无穷大或始终处于某一范围之内并收敛于某一值。我们将使其不扩散的z值的集合称为朱利亚集合

更详细的包括算法可以在wiki百科上看链接在这里

先来看看效果

颜色调得不太好,但是也可以看到精致的美丽。

就是在unity的shader中实现

Mandelbrot集的代码如下,julia集就由各位看官自己练习实现:

Shader "Custom/mandelbrot" {Properties {_MainTex ("Noise", 2D) = "white" {}_MaxIters("Max Iters", range(0,185)) = 1//迭代次数_TS("TS", range(0,15)) = 1//x缩放_CS("CS", range(0,15)) = 1//y缩放_S0("S0", range(-3,3)) = 0.5//x偏移_T0("T0", range(-3,3)) = 0.5//y偏移_Limits("iLimits", range(0,19)) = 5_ConColor("ConColor",color)=(1,1,1,1)_DivColor1("Diverge Color1",color)=(1,1,1,1)_DivColor2("Diverge Color2",color)=(1,1,1,1)}SubShader {pass{Tags{"LightMode"="ForwardBase" }Cull offCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"float4 _LightColor0;int _MaxIters;float _TS;float _CS;float _S0;float _T0;float _Limits;float4 _ConColor;float4 _DivColor1;float4 _DivColor2;float4 _MainTex_ST;struct v2f {float4 pos:SV_POSITION;float2 uv_MainTex:TEXCOORD0;};v2f vert (appdata_full v) {v2f o;o.pos=mul(UNITY_MATRIX_MVP,v.vertex);o.uv_MainTex = TRANSFORM_TEX(v.texcoord,_MainTex);return o;}float4 frag(v2f i):COLOR{float real = i.uv_MainTex.x * _TS + _S0;float imag = i.uv_MainTex.y * _CS + _T0;float real0 = real;float imag0 = imag;float newr;int numIters;float4 color = 0;for(numIters = 0;numIters < _MaxIters;numIters++){float newreal = real0 + real * real - imag*imag;float newimag = imag0 + 2* real* imag;newr = newreal * newreal + newimag * newimag;if(newr >= _Limits)break;real = newreal;imag = newimag;}if(newr<_Limits)color = _ConColor;if(newr>_Limits)color = lerp(_DivColor1,_DivColor2, frac(numIters/_CS));//  color = float4(frac(numIters/_CS),0,0,1);//lerp(_DivColor1,_DivColor2, frac(numIters/_CS));return color;}ENDCG}//}
}

    ----------------by wolf96  http://blog.csdn.net/wolf96

unity3d shader之Julia集和Mandelbrot集绘制美丽图案相关推荐

  1. 数学之美之分形——C++及OpenCV实现Julia集和Mandelbrot集绘制

    搞了一天,终于全部搞定了,久久惊叹于分形的美而不能自拔-- 先来简单介绍下Julia集和Mandelbrot集:(来自这里) 曼德勃罗特(Mandelbrot)集是人类有史以来做出的最奇异,最瑰丽的几 ...

  2. 分形之Julia集和Mandelbrot集及浅谈分形理论的应用

    首先要show一把这俩个集合的图片 [img]http://upload.wikimedia.org/wikipedia/commons/a/a4/Mandelbrot_sequence_new.gi ...

  3. 神奇的分形艺术(四):Julia集和Mandelbrot集

    考虑函数f(z)=z^2-0.75.固定z0的值后,我们可以通过不断地迭代算出一系列的z值:z1=f(z0), z2=f(z1), z3=f(z2), ....比如,当z0 = 1时,我们可以依次迭代 ...

  4. python分形几何_使用 Python 绘制分形: Koch 曲线、Julia 集、Mandelbrot 集

    目录 1. Koch曲线 瑞典数学家Helge von Koch,在1904年发表的"从初等几何构造的一条没有切线的连续曲线"的论文中提出Korch曲线.它的描述如下:指定一条线段 ...

  5. 分形几何python代码_Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案

    上世纪60-70年代,美籍数学家曼德博 - Benoit B. Mandelbrot几乎单枪匹马的创立了一个新的数学分支,即分形几何学 - fractal geometry.这个新的数学分支有助于人类 ...

  6. Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案

    上世纪60-70年代,美籍数学家曼德博 - Benoit B. Mandelbrot几乎单枪匹马的创立了一个新的数学分支,即分形几何学 - fractal geometry.这个新的数学分支有助于人类 ...

  7. 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...

  8. 【Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...

  9. 【浅墨Unity3D Shader编程】之中的一个 夏威夷篇:游戏场景的创建 amp; 第一个Shader的书写...

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...

  10. 【Unity3D Shader编程】之一 夏威夷篇 游戏场景的创建 第一个Shader的书写

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

最新文章

  1. 青岛工学院计算机专业分数线,青岛工学院计算机科学与技术专业2016年在河南理科高考录取最低分数线...
  2. leetcode算法题--目标和
  3. 求最小子数组之二维篇
  4. Jupyter notebook Ipython 魔法函数 Magic 计算代码(函数)耗时 Timing(%%time %time %timeit)
  5. android textView设置粗体
  6. 《大话数据结构》读后总结(九)
  7. Wtm Blazor来了!
  8. SON_EXAM考试php,通用全国少儿英语等级考试:三星笔试真题
  9. webpack快速学习2
  10. apache+gzip+ssl网页压缩率50%
  11. winform 显示分隔控件_WinForm使用Label控件模拟分割线(竖向)
  12. oppoa11android版本是什么,oppoa11x处理器是什么?oppoA11x配置介绍
  13. 16、TFT-LCD 1.8寸显示屏使用
  14. Unity3dAndroid Studio实现开机自启App以及激活其他App
  15. python实现千牛客服自动回复语_千牛会用到的回复语有哪些?千牛自动回复短语大全...
  16. Adobe Acrobat XI Pro 2019安装教程
  17. TCP协议的相关特性
  18. 网页模板UI素材推荐 精品 小众
  19. 微信小程序实现图片预览功能
  20. 最不伤耳朵的耳机有哪些,分享五款不伤耳的骨传导耳机

热门文章

  1. 硅芯片拆解:早期 555 定时器芯片内部一览
  2. 2020.12.28用isprime函数判断m是否为素数
  3. kafka-Streaming错误:在IDEA连接kafka时出现错误
  4. 京东Cookie抓取
  5. 20145322何志威《网络对抗》Exp2 后门原理与实践
  6. Python中关于with open file as 的用法
  7. 如何提高有效工作效率
  8. Java越学越迷茫,应该怎么办?
  9. 锐文科技发布基于国产FPGA的智能网卡芯片
  10. Typora 段落如何快速首行缩进两个字符