对于所有在那里的创意人士:为mandelbrot套上色…需要想法

|| 给定最大迭代次数= 1000,可以给我一些颜色(红色,绿色,蓝色)的想法。我现在能想到的就是la脚2颜色渐变:( 实际上有可能想出这么漂亮的东西吗?     
已邀请:
50次迭代非常非常粗糙,您不会得到太多细节。 获得光谱的最简单方法是使用多个两种颜色的渐变。因此,50-41迭代可能是蓝色阴影,41-30可能是蓝红色,29-10可能是红绿色,9-0可能是绿白色。 RGB监视器的色域是三角形的,因此这种方案几乎遵循“色轮”的外部。 搜索HSV RGB库可能会出现一些工具,以帮助使用更简单的HSV色彩系统。     
该死,他们不会让我新手发布图片,但要查看我的着色效果,请尝试此链接 单击以查看我的mandelbrot,当单击鼠标右键以查看较大的尺寸 我的技术是使用Fractal Extreme的228个调色板索引使用色块的所有可用颜色。使用电子表格(OpenOffice),我对24位值进行了线性采样。我从每个RGB分量中切出1位(即最高位)以形成3bit RGB值。使用vlookup将8种3bit颜色转换为白色,品红色,红色,黄色,黑色,蓝色,青色和绿色等序列。然后我将其复制并粘贴为值,以便可以按第7位对高位序列进行排序... 想知道细节吗? 合成24位RGB值很简单。 列A的数字从0到227,= ROW()-2 在列B = ROUND(A2 * 16777215/227)中将其转换为24bit。 列C转换为十六进制= DEC2HEX(B2; 6) D列提取红色分量并将其转换为十进制= HEX2DEC(LEFT(C2; 2)) 与E列相似绿色= HEX2DEC(MID(C2; 3; 2))和F蓝色= HEX2DEC(RIGHT(C2; 2)) G对最高位进行切片并转换为3bit RGB = BIN2DEC(LEFT(DEC2BIN($ D2; 8); 1)&LEFT(DEC2BIN($ E2; 8); 1)&LEFT(DEC2BIN($ F2; 8); 1) ) H第7位片 = BIN2DEC(MID(DEC2BIN($ D2; 8); 2; 1)&MID(DEC2BIN($ E2; 8); 2; 1)&MID(DEC2BIN($ F2; 8); 2; 1)) 我第6位片 = BIN2DEC(MID(DEC2BIN($ D2; 8); 3; 1)&MID(DEC2BIN($ E2; 8); 3; 1)&MID(DEC2BIN($ F2; 8); 3; 1)) 依此类推,直到最低位列N = BIN2DEC(RIGHT(DEC2BIN($ D2; 8); 1)&RIGHT(DEC2BIN($ E2; 8); 1)&RIGHT(DEC2BIN($ F2; 8); 1)) 现在要将3bit RGB转换为颜色序列,我在电子表格中还有一个名为“ 3bit sort”的标签。在H列中,公式为= VLOOKUP(G2; \'3bitsort \'。$ B $ 62:$ C $ 69; 2; 0)。 b62至b69行的值为0、1、3、2、7、5、4、6 c62至c69行的值为0、1、2、3、4、5、6、7 因此,该公式将3位RGB值转换为黑色,蓝色,青色,绿色,白色,品红色,红色和黄色的顺序。 对于列P至V中的第7至第1位,我也进行了类似操作。 现在可以复制并粘贴为值以对这些排序的颜色进行排序,但是在颜色之间往往会有一个鲜明的界限。由H由I由J进行的简单排序将导致高位绿色第7位黄色与高位白色第7位黑色相邻。如果高位绿色第7位白色紧挨着高位白色第7位绿色排序,将使过渡更平滑。所以我做第二级翻译。这需要根据更高的位颜色转换成不同的序列。  对于每种颜色,在“ 3bit sort”中的各列上,我根据下一个更高的位是什么颜色来创建其他转换序列。 列W = VLOOKUP(H2; OFFSET(\'3bit sort \'。$ E $ 62; 0; 3 * O2; 8; 2); 2; 0) 偏移量在我之前设置所需序列的b62:c59中序列的右边。 O2是最高位的转换颜色,对于绿色多数民众赞成在3表示,因此b62:b69右侧的9列是n62:n69列,其中包含序列3、1、2、6、4、0、5、7 o62:o69包含翻译后的序列0、1、2、3、4、5、6、7 因此,如果第7位为白色,则最白的绿色最后排序。 对于q62:q69包含2、1、3、7、0、6、4、5,因此可以将最绿的白色排在最白的绿色旁边。 复制并粘贴为值,然后按8位转换,再按由第8位指示的第7位表和由第7位表示的第6位表,因此提供了一个很好的平滑过渡。 但是我不止于此。 当颜色分散多次迭代时,Fractal Extreme可以插入颜色。上图的最小迭代次数为12939,最大迭代次数为27609,因此228个索引调色板表中的每种颜色都会在数十次迭代中涂抹。 Fractal Extreme还具有一个功能,其中每个奇数颜色索引都可以来自第二个调色板表。这会产生条纹效果。我将条纹调色板偏移了16个位置,这使插值可以处理一些颜色之间的差异。 他使用电子表格,这就是传统数据库黑客为mandelbrot着色的方式。     
当我负责生成mandelbrot设置图片时,我使用了HSL / HSV色谱。您可以根据归一化的迭代(表示meaning0ѭ)来选择颜色。     
只需进行50次迭代,就可以说出离散的调色板了-选择(说)10个,并简单地将每个像素绘制为调色板[itercount%palettesize]。摆弄调色板以减少流血。但是,如果您以后过渡到需要连续调色板的平滑迭代计数,则此方法将无效。如果以后要进行更深入的迭代计数,则可能还需要进行调整。 您可以使用HSV着色来产生连续的彩虹效果-设置S = 1.0,V = 1.0(或您认为看起来不错的任何值)并围绕色相角绘制迭代(或某些迭代函数)。转换为RGB非常简单,可以谷歌搜索。 那么多级梯度呢?在离散调色板思想的基础上,您不仅可以从一个步骤过渡到另一个步骤,还可以在适当的迭代范围内从一个步骤过渡到另一个步骤。这更适合于较大的潜在迭代次数。     
我知道它有些旧,但是我所谓的循环方案仅在256-512-1024次迭代中就可以对缩放的Mandelbrot零件产生有趣的结果。 https://github.com/nmmmnu/MandelDroid/blob/master/src/nu/nmmm/android/fractal/color/FColorCyclic.java
public class FColorCyclic  implements FColor{
    final private static int SIZE2 = 64;
    final private static int SIZE = SIZE2 >> 1;

    @Override
    public RGB convertColor(int color, int maxcolor, RGB rgb) {
        // bounded color
        if (color == maxcolor)
            return rgb.setColorZero();

        int a = color % SIZE2;

        if (a > SIZE)
            a = SIZE2 - a;

        return rgb.setColor(a, SIZE2);
    }
}
    

要回复问题请先登录注册