Física en flash: El péndulo tridimensional

Posted on Thursday 6 September 2007

Hace unos días Jacri me contactó. Se ve que alguien le dijo que yo era un genio de flash (no lo duden ni por un momento XD) Me dijo que si sabia como hacer un péndulo en flash. Le pasé ese mismo link, pero él quería un péndulo que oscilara tridimensionalmente.

Enseguida me imagine la forma de hacerlo, es sencillo: Si observamos un péndulo oscilar desde arriba, vemos que describe una circunferencia. Lo único que hay que añadir un alinea desde la bola del péndulo hasta un punto mas elevado (por donde se sujetaría).

La circunferencia, la hice haciendo su parametrización matemática:

r(t)=(cos t, sin t, 0) t€[o,2pi]

La linea, la conseguimos con un lineTo(a,b). Sencillo ^^
Claro que la teoría siempre es fácil, la cosa es poder hacerlo en la práctica. Yo creo yo que lo logré, igual algo justito y sucio, pero con un aprobado ya entramos, ¿no? XD
Bueno, la cosa es que se lo hice a Jacri, y quedó satisfecho ( me pagó 200$* U_u)

Hoy le he cambiado un par de cosillas, como por ejemplo, que se puede variar la inclinación en la que se ve, es decir, mirándolo desde el frente(1), o un poco mas arriba(2):

1:
Necesita tener Flash Player 7 o superior y JavaScript Activado. =)
2:
Necesita tener Flash Player 7 o superior y JavaScript Activado. =)

El código esta basado enteramente en el "entorno" 3D que hice (pero que no publiqué, porque, como ya pueden ver, no es muy limpio...) :

Actionscript:
  1. //---variables---//
  2. var ang_vision:Number = Math.PI/4
  3. var guia:Boolean = true;
  4. var cola:Number = 50;
  5. var anchura:Number = 40
  6. //---no variables---//
  7. var Xo:Number = mc._x;
  8. var Yo:Number = mc._y;
  9. var i:Number = 0;
  10. var altura:Number = 200*Math.sin(ang_vision);
  11. var x3d:Number = 0;
  12. var y3d:Number = 0;
  13. var z3d:Number = 0;
  14. var t:Number = 0;//angulo
  15. var v:Number = 6;//velocidad de variación del angulo
  16. //------alzamos a la máxima "profundidad" el péndulo----//
  17. mc.swapDepths(this.getNextHighestDepth());
  18. //--------empezamos------//
  19. _root.onEnterFrame = function() {
  20.     with (_root) {
  21.         //<-----------Introduce tu parametrización aquí:
  22.         x3d = (anchura)*Math.cos(t);
  23.         y3d = (anchura)*Math.sin(t);
  24.         z3d = 0
  25.         //<-----------Fin de parámetros
  26.         t += v/120;
  27.         }
  28.     //---------efecto 3D----------//
  29.     with (mc) {
  30.         _x = Xo+y3d-x3d*Math.sin(ang_vision);
  31.         _y = Yo-z3d+x3d*Math.cos(ang_vision);
  32.     }
  33.     setProf(mc,x3d/3);
  34.     //------------linea de recorrido----------//
  35.     if (guia) {
  36.         attachMovie("punto","p"+i,i+1);
  37.         ref = _root["p"+i];
  38.         if (i>1) {
  39.             ref._x = mc._x;
  40.             ref._y = mc._y;
  41.             ref._alpha = x3d+80;
  42.         }
  43.     }
  44.     _root["p"+(i-cola)].removeMovieClip();
  45.     i++;
  46.     //------------linea al centro--------//
  47.     _root.createEmptyMovieClip("linea",10);
  48.     linea.lineStyle(2,0x999999,100);
  49.     linea.moveTo(Xo,Yo-altura);
  50.     linea.lineTo(mc._x,mc._y);
  51. };
  52. //gracias maikel:
  53. function setProf(mc:MovieClip, prof:Number) {
  54.     with (mc) {
  55.         _width = prof+36;
  56.         _height = prof+36;
  57.         _alpha = prof+70;
  58.     }
  59. }

Como podrán notar, no hace falta mas que eso para reproducir cualquier parametrización matemática, cambiando el periodo de oscilación de un eje ( (anchura)*Math.sin(3*t);) , podrán reproducir cualquier figura de lissajous.

Edición: Se me olvidó! :P Pueden descargar aquí el archivo original


*(Nota: eso de los 200$ no es verdad, es solamente un engaño para evitar que nadie me pida que le haga su trabajo gratis U_U)

Publicidad:
tarot




10 Comments for 'Física en flash: El péndulo tridimensional'

  1.  
    September 6, 2007 | 2:25 pm
     

    Wow, te quedó muy bien ^^

    Siempre he creído que eres un niño loco U_U

  2.  
    September 6, 2007 | 3:07 pm
     

    Wow, realmente no se que contestarte a eso…

    Errr… Gracias?

  3.  
    September 6, 2007 | 4:14 pm
     

    [...] Blog - 2 Usuarios « Física en flash: El péndulo tridimensional Some personal [...]

  4.  
    September 12, 2007 | 9:59 am
     

    Oye muchas gracias por tu ayuda me sirvio de mucho la presentacion de mi proyecto es la segunda semana de octubre, ya falta poco para que el pendulo fisico ^^

  5.  
    September 12, 2007 | 2:04 pm
     

    De nada hombre

  6.  
    id
    November 8, 2007 | 8:00 am
     

    eeeeeeeeee señor de los pendulos si tan bueno eres…..yo estoi buscando un programador en flash…para cierto proyecto……agregame si lees esto algun dia…..

  7.  
    id
    November 8, 2007 | 8:04 am
     

    y te interesa claro…

  8.  
    id
    November 8, 2007 | 8:06 am
     

    lafabrica13@hotmail.com………………………..nada de tonterias and y sor

  9.  
    November 8, 2007 | 11:04 am
     

    Mmm, a ver Id. Casi mejor mándame un mail para explicarme de que va eso. Ahora estoy de exámenes, pero la semana que viene ya tendré mas tiempo.

    Y por cierto, yo no soy tan bueno ¿de donde sacaste eso? :D Si buscas bien, encontrarás gente que me repartea el ass en flash y AS. (Sobretodo en AS3) U_U

  10.  
    zap
    January 1, 2008 | 3:50 pm
     

Leave a comment

(required)

(required)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

Use the buttons below to customise your comment.


:smile: :grin: :razz: :lol: :wink: :mrgreen: :neutral: :roll: :shock: :???: :cool: :oops: :twisted: :evil: :eek: :mad: :sad: :cry: :!: :idea: :arrow:

RSS feed for comments on this post | TrackBack URI