返回列表 回复 发帖
这是名叫 DLD ( Discrete Lagrangian Descriptors ) 的算法,渲染出“放射曲线”,与“边界算法”结合,用以展示复分形结构。
https://arxiv.org/abs/2001.08937 文件太大传不了,这是.PDF文件下载地址。

若 e 为迭代路径上的点集,则可计算 DLD 值:

     DLD = sum{( e[k+1].r - e[k].r )^p + ( e[k+1].i - e[k].i )^p } / n;

     k = 0....n-1, n = 迭代路径长度, p > 0。
0001.jpg
0002.jpg
加入黎曼球映射:
0003.jpg
0004.jpg
映射二:
0005.jpg
0006.jpg
为简单见,这里只用灰度着色,可以调整 p 值、或修正 a 值 ,来达到不同的效果。
138# xuefeiyang

对复平面进行几何变换:
    tile( z, k = 1 ) {
        return Z.new( tan( sin( z.r ) ) / k, tan( sin( z.i ) ) / k );
    }
返回一个实部为 tan( sin( z.r ) ) / k,虚部为 tan( sin( z.i ) ) / k 的新的复数,tile 是铺贴的意思,k 指铺贴频率。
141# xklppp
不加黎曼变换的。 屏幕截图 2021-10-04 071041.png
001.jpg
加放射线也还不错
002.jpg
141# xklppp


我理解有误?怎么画出来是这样的: 11.png
145# xuefeiyang


肖老师,zz参与迭代不?
146# xuefeiyang

rx,ry,rz,xx,yy,zz 复平面迭代点黎曼映射得三维坐标,都不参与迭代。

迭代轨迹:{r0, i0}, { r1, i1}, { r2, i2},...,{ rn, in}

黎曼变换后得:{x0, y0, z0}, {x1, y1, z1}, {x2, y2, z2},...,{xn, yn, zn}

DLD值:={ (x1-x0)^p+(y1-y0)^p+(z1-z0)^p + (x2-x1)^p+(y2-y1)^p+(z2-z1)^p........} / n


黎曼变换:

    rieman( c ) {
        let r = Z.norm( c ), d = 1 / ( r + 1 ),
            x = 2 * c.r * d, y = 2 * c.i * d, z = ( r - 1 ) * d;
        return { x, y, z };
    }
003.jpg
001.jpg
000.jpg
12.png 147# xklppp
13.png
谢谢,我明白了。
69# xklppp
这组图片的着色算法是什么呢?
149# xuefeiyang
这里面凡是带高光放射线的都是用的DLD算法,我这个脚本除非常稳定的一些功能模块外,几乎所有的代码都可以在运行窗口中实时编辑,当初做的时候,调了好一些的参数,69#的效果应该用的是色带,调了半天也没出来。下面是两种DLD效果:
02.jpg
01.jpg
03.jpg
04.jpg
几何画板就好多了,所有的参数设置都保留在画板文件里。
返回列表