Prompt:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
def multibrot_raw(width, height, max_iter=512, power=np.pi*1.8778, bailout=np.pi*1.8778):
x = np.linspace(-1.2, 1.2, width) # Tight view за пълни буци
y = np.linspace(-1.2, 1.2, height)
X, Y = np.meshgrid(x, y)
C = X + 1j * Y
Z = np.zeros_like(C, dtype=complex)
n_escape = np.full(C.shape, 0, dtype=float) # Start 0
mask = np.ones(C.shape, dtype=bool)
for n in range(max_iter):
Z[mask] = Z[mask] ** power + C[mask]
escaped = np.abs(Z) > bailout
new_escaped = escaped & mask
n_escape[new_escaped] = n + 1
mask &= ~escaped
# Interior stays 0 (black)
# Normalize: Разтегни ниските n за пълни градиенти
scale = 1.854458*np.pi**np.log(power) # Tune: по-малко = повече цвят навсякъде
mu = np.clip(n_escape / scale, 0, 1)
return mu
# Palette: black (interior) -> blue/purple outer (low n) -> teal/green spirals (mid) -> yellow borders -> pink/red bulbs (high n)
colors = [
'#000000', '#00008B', '#4B0082', '#00BFFF', '#00CED1',
'#008000', '#7FFF00', '#FFFF00', '#FF69B4', '#FF1493', '#FF0000'
]
cmap = LinearSegmentedColormap.from_list('full_vibe', colors, N=256)
# Generate & plot
img = multibrot_raw(800, 800)
plt.figure(figsize=(14, 16))
plt.imshow(img, cmap=cmap, origin='lower', extent=(-1.2, 1.2, -1.2, 1.2))
plt.axis('off')
plt.title('Ебанье сас путфръгънье и скубанье поди мишниците')
plt.show()