标签:10 Wallpaper int double Processing 分形 mag y1 x1
之前用C语言实现过一些分形,但是代码比较复杂。而对于天生对绘图友好的Processing,及其方便。
在大自然中分形普遍存在,我们用图形模拟,主要是找到一个贴近的函数。
代码
1 /** 2 * Wallpaper 3 * 微信公众号:维度模态 4 * 作者:Hewes 5 */ 6 7 size(800, 800); //画布尺寸 8 background(0); //背景色 9 10 //相关参数的设定 11 //double a = 0.50, b = 2.00, c = 0.00; 12 //int mag=60; 13 //double a = 0.4, b = 1, c = 0; 14 //int mag=100; 15 double a = 1, b = 4, c = 60; 16 int mag=1; 17 //double a = -1, b = -2, c = -3; 18 //int mag=5; 19 //double a = -1000, b = 0.1, c = -10; 20 //int mag=10; 21 22 double x1=0, y1=0, temp; //涉及变量 23 24 for (int i = 0; i < 2550000; i++) { 25 //壁纸公式: 26 //xn+1 = yn - sign(xn) | b xn - c |1/2 27 //yn+1 = a - xn 28 temp = x1; 29 x1 = y1 - Math.signum(a * x1) * Math.sqrt(Math.abs(b * x1 - c)); 30 y1 = a - temp; 31 32 //放大+平移 33 int m = (int) (x1 * mag + width/2); 34 int n = (int) (y1 * mag + height/2); 35 //笔触颜色设置 36 stroke(255, i/10000, i/10000); 37 //stroke(255-i/10000,255-i/10000, 0); 38 point(m, n); 39 }
调节参数会有看起来完全不同的结果:
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/
标签:10,Wallpaper,int,double,Processing,分形,mag,y1,x1 来源: https://www.cnblogs.com/lfri/p/10861314.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。