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; } } }