之前用C语言实现过一些分形,但是代码比较复杂。而对于天生对绘图友好的Processing,及其方便。

在大自然中分形普遍存在,我们用图形模拟,主要是找到一个贴近的函数。

代码

 /**
* Wallpaper
* 微信公众号:维度模态
* 作者:Hewes
*/ size(800, 800); //画布尺寸
background(0); //背景色 //相关参数的设定
//double a = 0.50, b = 2.00, c = 0.00;
//int mag=60;
//double a = 0.4, b = 1, c = 0;
//int mag=100;
double a = 1, b = 4, c = 60;
int mag=1;
//double a = -1, b = -2, c = -3;
//int mag=5;
//double a = -1000, b = 0.1, c = -10;
//int mag=10; double x1=0, y1=0, temp; //涉及变量 for (int i = 0; i < 2550000; i++) {
//壁纸公式:
//xn+1 = yn - sign(xn) | b xn - c |1/2
//yn+1 = a - xn
temp = x1;
x1 = y1 - Math.signum(a * x1) * Math.sqrt(Math.abs(b * x1 - c));
y1 = a - temp; //放大+平移
int m = (int) (x1 * mag + width/2);
int n = (int) (y1 * mag + height/2);
//笔触颜色设置
stroke(255, i/10000, i/10000);
//stroke(255-i/10000,255-i/10000, 0);
point(m, n);
}

调节参数会有看起来完全不同的结果:

double a = 1, b = 4, c = 60;
int mag=1;

double a = –1000, b = 0.1, c = –10;
int mag=10;

double a = 0.4, b = 1, c = 0;
int mag=100;

参考链接:http://iprocessing.cn/2017/08/10/第四期-processing分形之一-wallpaper/

最新文章

  1. mybatis 使用经验小结
  2. MySQL开启general_log跟踪sql执行记录
  3. 用Reveal分析第三方App的UI
  4. [蟒蛇菜谱] Python方便使用的级联进度信息
  5. 戴文的Linux内核专题:03驱动程序
  6. 安卓 SQLite数据库操作实例
  7. Android:EditText 常用属性
  8. 从SAE又回到BAE,感觉好轻松
  9. 关于Spring3报org.aopalliance.intercept.MethodInterceptor错的问题解决方法_JavaLeader_新浪博客
  10. 【iOS 录音转码MP3及转码BASE64上传】
  11. i++;++i的区别
  12. Windows上Python2与Python3共存
  13. dedecms data文件夹外迁
  14. Node.js + gulp 合并静态页模版,文件更新自动热重载。浏览器可预览
  15. openvas scanner 服务未启动修复
  16. 深入理解java虚拟机(二)-----垃圾回收
  17. 商业化博客平台原型制作分享-TypePad
  18. win7 64位debug解决方法
  19. rails 过滤掉所有的html标签 strip_tags
  20. hdu-5023线段树刷题

热门文章

  1. UVaLive 4727 Jump (递推)
  2. NativeScript官方书籍:NativeScript in Action-用你现有技术构建移动应用程序
  3. AutoHotkey常用配置
  4. 在GridView的RowDataBound事件中获取某行某列的值!
  5. Software - (转)Winform 程序捕获全局异常
  6. 我们团队是如何落地DDD的(1)
  7. git 的基本设置以及使用
  8. ESQL 查询数据报 参数类型“Edm.Decimal”和“Edm.Double”不兼容
  9. CC06:像素翻转
  10. js根据等号(=)前名称获取参数值