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(-3.5, 3.5, width) # По-широк view
y = np.linspace(-2.5, 2.5, 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 (scaling като в C++ примера)
scale = 7.854458 * np.log(power) # ~44 за p=9
mu = np.clip(n_escape / scale, 0, 1) # n / scale за [0,1]
return mu
# Palette: black -> blue outer (low n) -> green spirals -> yellow -> pink/red bulbs (high n)
colors = [
'#000000', '#00008B', '#4B0082', '#00BFFF', '#00CED1',
'#008000', '#7FFF00', '#FFFF00', '#FF69B4', '#FF1493', '#FF0000'
]
cmap = LinearSegmentedColormap.from_list('filled_vibe', colors, N=256)
# Generate & plot
img = multibrot_raw(800, 800)
plt.figure(figsize=(12, 12))
plt.imshow(img, cmap=cmap, origin='lower', extent=(-2.5, 2.5, -1.5, 1.5))
plt.axis('on')
plt.title('Ебанье сас путфръгънье и скубанье поди мишнѝцѝте')
plt.show()