hoy tengo una duda, espero que simple.
Estube viendo el tutorial de asphyk, sobre Dibujar curvas paramétricas con Bitmapdata en Actionscript 3.
El ahí hace variar a x, y en funcion de t
Mi problema es que yo quiero graficar una funcion, pero solo y en funcion de t, entonces trate de modificarla, pero solo grafica un punto, el del inicio, y no toda la grafica.
Para que tengan una idea, la funcion es:
Y=A(1-e^(-t/tau))
donde:
A=constante (definida como amplitud en el codigo)
tau=constante
t=varía desde 0 hasta (5*tau)
y el código modificado queda:
Código ActionScript :
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.events.Event;
import flash.geom.Point;
/**
* ...
* @author bubudrc
*/
public class prueba extends MovieClip
{
private var bm:BitmapData;
private var bp:Bitmap;
private var t:Number = 0;
private var _y:Number = 0;//(y)
private var tau:Number = 10;
private var amplitud:Number = 50;
// Un valor para limitar el dibujo de la curva
private var _n:Number = 10;
public function prueba()
{
init();
events();
}
private function init():void
{
bm = new BitmapData(450, 350, false, 0x000000);
bp = new Bitmap(bm);
bp.x = 10;
bp.y = 10;
this.addChild(bp);
}
private function events():void
{
this.addEventListener(Event.ENTER_FRAME, mframe)
}
private function mframe(e:Event):void
{
//Esto es para limitar la curva
if (t <= _n)
{
// Te devuelve los valores de X e Y según la paramétrica
_y = Point(formula(t)).y;
bp.bitmapData.setPixel(10, _y, 0x60FF0000);
// En cuanto se incrementa el parametro T
t += 5 * tau;
}
else
{
this.removeEventListener(Event.ENTER_FRAME, mframe);
}
}
//formula: y=amplitud*(1-e^(-t/tau))
private function formula (t:Number):Point
{
_n = 500;
var p:Point = new Point();
p.y = amplitud * (1 - Math.E * ( -t / tau));
return p;
}
}
} 