我用python编程了Mandelbrot集,但是看起来很奇怪,所以我搜索了平滑的颜色.
我已经使用对数和线性插值对平滑的着色功能进行了编程,但是无论如何尝试,我都无法获得想要的结果:
self.palette = [(3,25,61),(5,43,107),(7,61,153),(20,96,226),164,(74,181,(138,211,242),(205,234,247),(225,237,(255,255,255)]
这是我的调色板
if n == self.max_iterations:
self.screen.set_at((x,y),(110,13,13))
else:
gradient = 1 + n - math.log(math.log(abs(m))) / math.log(2.0)
iteration = n + 1 - gradient
color1 = list(self.palette[n % 10])
if n % 10 <= 8:
color2 = list(self.palette[n % 10+1])
else:
color2 = list(self.palette[-1])
color = [[],[],[]]
for number,elt in enumerate(color):
color[number] = color1[number] + (iteration % 1)*(color2[number]-color1[number])
self.screen.set_at((x,tuple(color))
这是我的着色功能
而我得到的
如您所见,颜色是平滑的,但是以错误的方式,颜色没有连续性
我想要这样的东西:
理想的结果
我们看不到色差
最佳答案