Colors 给所有有创造力的人:给曼德布罗特的布景上色。。。需要想法

Colors 给所有有创造力的人:给曼德布罗特的布景上色。。。需要想法,colors,mandelbrot,Colors,Mandelbrot,给定最大迭代次数=1000,请给我一些关于如何给它上色(红、绿、蓝)的想法。我现在能想到的就是lame 2颜色渐变:( 真的有可能想出这么漂亮的东西吗 50次迭代非常粗糙,你不会得到太多细节 获取光谱的最简单方法是使用多个双色渐变。因此,50-41次迭代可能是蓝色,41-30次迭代可能是蓝红色,29-10次迭代可能是红绿,9-0次迭代可能是绿白 RGB显示器的色域是三角形的,因此这种方案几乎遵循“色轮”的外部 A可能会出现一些工具来帮助使用更简单的HSV颜色系统。我在执行生成mandelbrot

给定最大迭代次数=1000,请给我一些关于如何给它上色(红、绿、蓝)的想法。我现在能想到的就是lame 2颜色渐变:(

真的有可能想出这么漂亮的东西吗


50次迭代非常粗糙,你不会得到太多细节

获取光谱的最简单方法是使用多个双色渐变。因此,50-41次迭代可能是蓝色,41-30次迭代可能是蓝红色,29-10次迭代可能是红绿,9-0次迭代可能是绿白

RGB显示器的色域是三角形的,因此这种方案几乎遵循“色轮”的外部


A可能会出现一些工具来帮助使用更简单的HSV颜色系统。

我在执行生成mandelbrot集图片的任务时使用了。您可以根据标准化迭代选择颜色(意思是
当前迭代/max迭代=颜色
).

对于一个离散的调色板,只需50次迭代,就可以说:选择(比如)10个像素,然后简单地将每个像素绘制为调色板[itercount%palettesize]。摆弄调色板以减少眼睛出血。但是,如果以后过渡到需要连续调色板的平滑迭代计数,这将不起作用。如果以后进行更深入的迭代计数,也可能需要对其进行调整

您可以使用HSV着色来提供连续的彩虹效果-设置S=1.0、V=1.0(或任何您认为合适的设置)并围绕色调角度绘制迭代(或迭代的某些函数)。转换为RGB非常简单,可以通过谷歌搜索


关于多阶段渐变呢?基于离散调色板的思想,而不是仅仅从一个渐变到下一个,你可以在一些合适的迭代范围内从一个渐变到下一个;这更适合于更大的潜在迭代计数。

该死,他们不会让我一个新手发布图像,而是为了看到我的色彩效果请尝试此链接

我的技术是将颜色立方体的所有可用颜色用于分形极限的228个调色板索引。使用电子表格(OpenOffice),我对24位值进行线性采样。我从每个RGB组件(即顶部位)切片1位形成一个3位RGB值。使用vlookup将8个3位颜色转换为一个序列,如白色、品红、红色、黄色、黑色、蓝色、青色和绿色。然后我复制并粘贴为值,这样我就可以按第7位对顶部的位序列进行排序

想知道详情吗

合成24位RGB值很简单。
列A的数字范围为0到227,=行()-2
这在B列=圆形(A2*16777215/227)中转换为24位。
C列转换为十六进制=DEC2HEX(B2;6)
列D提取红色分量并转换为十进制=HEX2DEC(左(C2;2))
类似于列E绿色=HEX2DEC(中间(C2;3;2))和F蓝色=HEX2DEC(右侧(C2;2))
G将顶部位切片并转换为3位RGB
=BIN2DEC(左(DEC2BIN($D2;8);1)&左(DEC2BIN($E2;8);1)&左(DEC2BIN($F2;8);1))
H第7位片
=BIN2DEC(中期(12个基点($D2;8);2;1)和中期(12个基点($E2;8);2;1)和中期(12个基点($F2;8);2;1))
I第6位切片
=BIN2DEC(中期(12个基点($D2;8);3;1)和中期(12个基点($E2;8);3;1)和中期(12个基点($F2;8);3;1))
依此类推,直到最低位列N
=BIN2DEC(右(DEC2BIN($D2;8);1)和右(DEC2BIN($E2;8);1)和右(DEC2BIN($F2;8);1))

现在要将这个3位RGB转换成一个颜色序列,我在电子表格中有另一个选项卡,名为“3位排序”。
在H列中,公式是=VLOOKUP(G2;'3位排序'。$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位白色排序,则将实现更平滑的过渡t到顶部白色第7位绿色。因此我进行第二级翻译。这需要根据较高位的颜色转换为不同的序列。
对于每种颜色,在“3位排序”的列中,我根据下一个较高位的颜色创建额外的翻译序列。
列W=VLOOKUP(H2;偏移量('3位排序'$E$62;0;3*O2;8;2;0)
偏移量位于b62:c59中序列的右侧,之前使用的是我设置所需序列的位置。
O2是顶部位的翻译颜色,对于绿色,b62右侧的3个so 9列:b69是包含序列3、1、2、6、4、0、5、7的n62:n69列
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位表排序,这样可以提供一个平滑的过渡

但我不会就此止步

当颜色分布在多个迭代中时,分形极限可以插值颜色。上图的最小迭代次数为12939次,最大迭代次数为27609次,因此228索引调色板表中的每种颜色都会在几十次迭代中涂抹。分形极限还有一个功能,即每种奇数颜色索引都可以来自第二个调色板选项卡这提供了条纹效果。我将条纹调色板偏移了16个位置,这使得插值在颜色之间有一点差异

这就是遗留数据库的工作原理
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);
    }
}