У меня есть функция, которая вычисляет множество Мандельброта в массиве размером numpy (500 500). Я могу нарисовать это в matplotlib. Теперь я хочу увеличить изображение с помощью мыши. Я хочу использовать Pyglet для этого, но бороться с рендерингом. Я знаю, что это (не рабочее) решение не элегантно, поэтому я рад советам, как сделать это лучше!
PS: Уровень масштабирования установлен прямо сейчас, моя проблема, которую я прошу о помощи, заключается в обновлении.
Функции, которые я заменил строкой документации, можно найти здесь
from pyglet.window import mouse
import pyglet
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import cm
from pyglet import image
"""
def calc_pixel_array(x_center: float = 0, y_center: float = 0,
scale: float = 1.0, width: int = 500,
height: int = 500, threshold: int = 200):
Returns numpy array with shape (500,500) with color values
def plot_pixel_array(pixel_array, cmap: str = 'gnuplot', show_plot: bool = False):
Draws pixel_array via matplotlib and saves in curent_mandelbrot.png
"""
pixel_array = calc_pixel_array()
plot_pixel_array(pixel_array)
scale = 1
i = 1
window = pyglet.window.Window(width = 500, height = 500)
image = pyglet.resource.image('curent_mandelbrot.png')
pic = image.load('curent_mandelbrot.png')
@window.event
def on_draw():
window.clear()
pic.blit(0, 0)
@window.event
def on_mouse_press(x, y, button, modifiers):
if button == mouse.LEFT:
i = np.random.randint(5)+1
pixel_array = calc_pixel_array(scale/(10*i))
plot_pixel_array(pixel_array)
window.clear()
image = pyglet.resource.image('curent_mandelbrot.png')
image.blit(0,0)
pyglet.app.run()