Bleend’s Blog

Bleend’s Blog

Blog Personal de Bleend, humor, cosas interesantes, diseño y programación.

Física en flash: El péndulo tridimensional

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)



-----Separador-----

Núcleos de procesadores hiperdesarrollados

¿Doble núcleo significa doble capacidad de cálculo?
Esta es la pregunta que se hacen los usuarios de PC ante la tecnología dualcore. En principio, la respuesta es no. Aunque tener un procesador con dos núcleos permite experimentar a escala doméstica las ventajas de la computación en paralelo (en la que las funciones se dividen entre varios chips), según Intel, desarrollador de los procesadores Core 2 Duo, el incremento en velocidad no supera el 40%.


Lo que hacen estas parejas de chips es dividirse algunas tareas, como pasar el antivirus o descargar archivos. Eso sí, a su favor se encuentra el ahorro de energía. De hecho, esta ha sido una de las principales motivaciones de los fabricantes, ya que la anterior tendencia (aumentar la velocidad del reloj del chip) consumía demasiada electricidad y podía provocar sobrecalentamiento.

En realidad, para aprovechar bien el doble núcleo los programas deberían estar compilados para ello, pero se ha preferido seguir otras estrategias que no sacan el mismo partido al procesador a cambio de ser compatible con lo que se tenía antes.

Además, la estrategia de aumentar la velocidad de procesamiento tampoco vale, porque la estrategia para hacerlo básicamente ha consistido desde siempre en hacer más pequeño el procesador. Sin embargo por razones físicas eso no es posible hacerlo mucho más pequeño y hay que buscar alternativas. El tamaño de los procesadores se acercaban ya a lo que es nanotecnología, y la nanotecnología está muy poco desarrollada y en muchos aspectos es incluso cosa de ciencia ficción aún.

Fuente



-----Separador-----

Flash, Inteligencia Artificial + 3 en raya

Hoy les presento a un juego que tiene mucha historia.
Esta vez, el juego lo he construido yo, de arriba a abajo. Lo juro

Tiene 2 tipos de juego: Dos Jugadores, para jugar 2 personas desde el mismo PC; y Un Jugador, contra la Inteligencia Artificial que programé. :o

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

Nota: La inteligencia Artificial buena, es la de nivel 3 U_U

Continuar Leyendo...



-----Separador-----

Action Script de Alto nivel

He encontrado una pagina web impresionante.
Tiene un montón de aplicaciones flash hechas con AS 1,2 y 3. Son verdaderamente alucinantes. :o
André Michelle Recycle

This is a collection of my source files, extracted while developing my projects or experiments. They may solve some of your problems or inspire you in doing nice stuff.

Algunos ejemplos:

  • BitmapParticles
  • ActionScript3D
  • Geoesfera
  • Wow, que pasada, no?

    Hay también un entorno 3d en el que se dibujaban objetos definiendo los puntos en una matriz enorme:

  • localToGlobal3D, web
  • La verdad es que es impresionante. No hay palabras... Es un genio. :alabado:



    -----Separador-----

    Tips rápidos de Action Script 3

    Hace poco Adobe lanzó el Creative Suite 3.

    Nuestro amigo Flash, incorpora una nueva versión de Action Script, la versión 3.
    En su anterior versión 2, todos estábamos muy acostumbrados a hacer las cosas de una forma, que, en Action Script 3 es completamente inoperante.

    Pongo unas cuantas traducciones de algunas de las funciones mas comunes:

    ActionScript 2.0:

    btn._x=10;
    btn._y=20;

    ActionScript 3.0:

    btn.x=10;
    btn.y=20;

    Continuar Leyendo...



    -----Separador-----

    « Older Entries

    Newer Entries »