Problema con la función timer
Publicado por Sebastian (1 intervención) el 16/12/2008 20:34:50
Hola amigos:
Escribo porque quiero hacerles una consulta.
Tengo un código que simula la emisión de ondas de una fuente puntual.
Quiero lograr que a la hora de graficarlo, la fuente comience a emitir con dos segundos de demora.
Para eso, se me ocurrió hacer una función timer en la que timerfcn sea la fuente, con un startdelay de 2. Al hacer esto y ejecutarlo, lo que sucede es que el programa comienza a hacer cálculos constantes por varios minutos (unos 10), mostrando frames muy poco a poco de la misma animación de siempre.
Este es el pedazo del código
L=12;
N=1000;
k= 5;
lambda=(2*pi)/k;
SC=2*L/N;
sep = 10*lambda;
%FASE=pi;
%dfi=exp(I*FASE);
%P=[1:20]/2.753;
V=linspace(-L, L, N);
[X, Y] = meshgrid(V, V);
Z=zeros(size(X));
R1= sqrt( (X).^2 + (Y+10).^2);
M=20;
T=linspace(0.0, 2*pi, 3*M); %T=T(1:(3*M-1));
cut = 0.8;
scale = 95/(2*cut);
for p=1:1
for iter=1:length(T)
figure(1); clf; hold on;
W1 = sin(k*R1-T(iter))./R1 ;
W = W1 ;
t = timer('timerfcn','W','StartDelay',2);
start(t) %ESTE ES EL TIMER con el que pretendo que el programa comience a ejecutar W1 dos segundos después de comenzada la animación
image(scale*(W+1*cut));
axis image; axis on;
file=sprintf('Frame%d.png', 1000+iter);
end
Desde ya muchísimas gracias por cualquier ayuda que puedan brindarme, y disculpas por lo elemental de la pregunta.
Escribo porque quiero hacerles una consulta.
Tengo un código que simula la emisión de ondas de una fuente puntual.
Quiero lograr que a la hora de graficarlo, la fuente comience a emitir con dos segundos de demora.
Para eso, se me ocurrió hacer una función timer en la que timerfcn sea la fuente, con un startdelay de 2. Al hacer esto y ejecutarlo, lo que sucede es que el programa comienza a hacer cálculos constantes por varios minutos (unos 10), mostrando frames muy poco a poco de la misma animación de siempre.
Este es el pedazo del código
L=12;
N=1000;
k= 5;
lambda=(2*pi)/k;
SC=2*L/N;
sep = 10*lambda;
%FASE=pi;
%dfi=exp(I*FASE);
%P=[1:20]/2.753;
V=linspace(-L, L, N);
[X, Y] = meshgrid(V, V);
Z=zeros(size(X));
R1= sqrt( (X).^2 + (Y+10).^2);
M=20;
T=linspace(0.0, 2*pi, 3*M); %T=T(1:(3*M-1));
cut = 0.8;
scale = 95/(2*cut);
for p=1:1
for iter=1:length(T)
figure(1); clf; hold on;
W1 = sin(k*R1-T(iter))./R1 ;
W = W1 ;
t = timer('timerfcn','W','StartDelay',2);
start(t) %ESTE ES EL TIMER con el que pretendo que el programa comience a ejecutar W1 dos segundos después de comenzada la animación
image(scale*(W+1*cut));
axis image; axis on;
file=sprintf('Frame%d.png', 1000+iter);
end
Desde ya muchísimas gracias por cualquier ayuda que puedan brindarme, y disculpas por lo elemental de la pregunta.
Valora esta pregunta


0