Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/01/2005, 22:32
Avatar de rod524
rod524
 
Fecha de Ingreso: agosto-2004
Mensajes: 517
Antigüedad: 20 años, 3 meses
Puntos: 0
El codigo se ejecuta evaluando X, inicia en x = -150 y recorre todos los puntos con incremente de 0.1 hasta 150. (como se tiene X = i * 0.1) entonces grafica para el rango -15 a 15.

cada incremento de 0.1 nuevo calcula su posición para f(x), o sea "Y".

la forma en que trabaja es calculando un punto nuevo cuyas coordenadas son (Xnew, Ynew) y entonces la instrucción de dibujar una línea le dice que empiece a dibujar la lína en las coordenadas viejas (Xold, Yold) hacia las nuevas (Xnew, Ynew).

Al final del frame (2) las coordenadas nuevas se convierten en las coordenadas viejas para que la siguiente linea empice desde ahí:

Xold = Xnew;
Yold = Ynew;

Y en la siguiente itaración se calculan nuevas coordenadas y así continuamente hasta que " i " que se va incrementando en cada iteración sea igual a "j +1", cuando esto pasa, el "if" lo envia al frame (4) que es un stop y finaliza de graficar.

Como se indicó arriba, cada linea empieza en coordenadas viejas Xold, Yold y finaliza en las nuevas coordenadas Xnew, Ynew.

La situación es que, al tratar de graficar la primera linea no contamos con coordendas viejas, así que hay que obtenerlas de algún lado, en este caso el código que te ocasiona la duda:

Xold = Xorigen + (X * ZoomX); <<= Xold para 1er linea.
Yold = Yorigen - ((a * X * X) + (b * X) + c); <<= Yold para 1er linea

ese código se encuentra en el frame (1), el cual se utiliza para inicializar los valores a utilizar en el programa. El frame (1) se ejecuta 1 vez, y nuca más se vuelve a ocupar.

en cambio, el frame (2) realiza toda la acción de calcular nuevos puntos, definir los viejos puntos para nuevas líneas y graficar la parábola.

el frame (3) siempre va a regresar al frame (2) para un nuevo cálculo y nueva línea.

Creo no poder ser más específico.

Saludos.