Commit e6012c21 authored by Revora, Corina's avatar Revora, Corina

agregué función para que se guarde la posición antes de cerrar imagen. Rehace...

agregué función para que se guarde la posición antes de cerrar imagen. Rehace imagen con última centralización del fork
parent ca142c4e
......@@ -10,6 +10,9 @@ import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# Variables globales para almacenar el último centro
last_xlim = None
last_ylim = None
def Grating(k, l, size, Binary=True, Blaze=False, Inverted=False, powerblaze=1, BinaryFactor=0.25, Nx=10000, Ny = 5000, phase1storder=0, mini=0, maxi=255, x0=0, y0=0):
......@@ -64,15 +67,13 @@ def arbpower_sawtooth(t, power, width=1):
return result
def on_key(event):
global last_xlim, last_ylim # Para acceder a las variables globales
xlim = ax.get_xlim()
ylim = ax.get_ylim()
print(max(xlim))
step_sizex = (max(xlim) - min(xlim))/len(y) # Ajusta este valor para cambiar la velocidad de desplazamiento
step_sizey = (max(ylim) - min(ylim))/len(x)
step_sizex = (xlim[1] - xlim[0]) / len(y) # Ajusta este valor para cambiar la velocidad de desplazamiento
step_sizey = (ylim[1] - ylim[0]) / len(x)
# print(step_sizex)
# print(step_sizey)
if event.key == "right":
ax.set_xlim(xlim[0] - step_sizey, xlim[1] - step_sizey) # Mover derecha
elif event.key == "left":
......@@ -82,9 +83,46 @@ def on_key(event):
elif event.key == "down":
ax.set_ylim(ylim[0] + step_sizex, ylim[1] + step_sizex) # Mover abajo
# Guardar el nuevo centro
last_xlim = ax.get_xlim()
last_ylim = ax.get_ylim()
fig.canvas.draw_idle() # Redibujar la imagen sin regenerarla
def on_close(event):
global last_xlim, last_ylim
# Guardar los límites actuales cuando se cierre la ventana
last_xlim = ax.get_xlim()
last_ylim = ax.get_ylim()
print(f'Última posición guardada: xlim={last_xlim}, ylim={last_ylim}')
def display_image():
global fig, ax
fig, ax = plt.subplots(figsize=(8, 6), dpi=100)
c = plt.pcolor(Pattern, cmap='gray', vmin=0, vmax=255)
plt.xticks([])
plt.yticks([])
plt.gca().set_position([0, 0, 1, 1])
manager = plt.get_current_fig_manager()
manager.full_screen_toggle()
fig.canvas.window().statusBar().setVisible(False)
manager.toolbar.hide()
# Restaurar la última posición si existe
if last_xlim and last_ylim:
ax.set_xlim(last_xlim)
ax.set_ylim(last_ylim)
# Conectar eventos
fig.canvas.mpl_connect("key_press_event", on_key)
fig.canvas.mpl_connect("close_event", on_close)
plt.show()
#%%
"""
Codigo para hacer un tenedor con todo ajustado y andando
......@@ -92,10 +130,10 @@ Codigo para hacer un tenedor con todo ajustado y andando
size=1 #esto en realidad no cambia absolutamente nada
Nx = 8
Ny = 6
Nx = 800
Ny = 600
linewidth = 1200
linewidth = 400
k = 1*np.pi/((linewidth/10000)*size)
......@@ -146,6 +184,9 @@ print(f'done {p}')
# Conectar la función al evento de teclado
fig.canvas.mpl_connect("key_press_event", on_key)
# Para llamar a display_image() cuando quieras mostrar la imagen
display_image()
#%%
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment