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 ...@@ -10,6 +10,9 @@ import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from scipy import signal 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): 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): ...@@ -64,15 +67,13 @@ def arbpower_sawtooth(t, power, width=1):
return result return result
def on_key(event): def on_key(event):
global last_xlim, last_ylim # Para acceder a las variables globales
xlim = ax.get_xlim() xlim = ax.get_xlim()
ylim = ax.get_ylim() 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_sizex = (xlim[1] - xlim[0]) / len(y) # Ajusta este valor para cambiar la velocidad de desplazamiento
step_sizey = (max(ylim) - min(ylim))/len(x) step_sizey = (ylim[1] - ylim[0]) / len(x)
# print(step_sizex)
# print(step_sizey)
if event.key == "right": if event.key == "right":
ax.set_xlim(xlim[0] - step_sizey, xlim[1] - step_sizey) # Mover derecha ax.set_xlim(xlim[0] - step_sizey, xlim[1] - step_sizey) # Mover derecha
elif event.key == "left": elif event.key == "left":
...@@ -82,9 +83,46 @@ def on_key(event): ...@@ -82,9 +83,46 @@ def on_key(event):
elif event.key == "down": elif event.key == "down":
ax.set_ylim(ylim[0] + step_sizex, ylim[1] + step_sizex) # Mover abajo 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 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 Codigo para hacer un tenedor con todo ajustado y andando
...@@ -92,10 +130,10 @@ 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 size=1 #esto en realidad no cambia absolutamente nada
Nx = 8 Nx = 800
Ny = 6 Ny = 600
linewidth = 1200 linewidth = 400
k = 1*np.pi/((linewidth/10000)*size) k = 1*np.pi/((linewidth/10000)*size)
...@@ -146,6 +184,9 @@ print(f'done {p}') ...@@ -146,6 +184,9 @@ print(f'done {p}')
# Conectar la función al evento de teclado # Conectar la función al evento de teclado
fig.canvas.mpl_connect("key_press_event", on_key) 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