Tranki Jesus, que hay mas ;)
Eso de que en ingeniería una de las cosas que enseñan es a
simplificar, es, con todos mis respetos, una solemente tontería.
Gracias por lo de solemne, Hari, pero no lo merezco que yo soy muy
normalito.
Que para el caso concreto en el que nos encontramos implique
que sea
despreciable la fuerza de rozamiento del aire, o bien las desviaciones
de la
idealidad del muelle, frente al rozamiento contra una superficie del
objeto
que se está moviendo, no implica que todas esas ecuaciones no existan y
esten presentes en el movimiento.
El NO tenerlas en cuenta es una fuente constante de
quebraderos de
cabeza en cuestiones de cálculo de cualquier sistema para un ingeniero;
¿porqué? Porque lo que igual funciona en condiciones de laboratorio/planta
piloto, en la realidad, NO funciona.. Y muchas veces por despreciar
términos
de este tipo, se cometen errores de cálculo muy importantes.
Por tanto, se deben de tener en cuenta siempre, y en función del
problema, simplificar si lo consideramos adecuado, o no.
En efecto, eso es lo que entre otras cosas se enseña en
ingeniería, a simplificar "correctamente".Gracias de nuevo por darme la
razon. Si quieres otro dia quedamos y hablamos con alguno de los
profesores del departamento de ingeniería de mi exfacultad, que te
podran dar una opinion seguramente mas formada que la mía al respecto.
Ahora voy a solucionar el problema del "efecto muelle".
Cometí un error al intentar corregir a Hari(lo siento, porque al final
estamos aqui escribiendonos de algo que nos importa poco). En realidad
este problema lo resolví hace tiempo de una manera totalmente distinta,
pero al ver que Hari tiraba por ahí sin cosiderar las perdidas creí
oportuno advertirlo.
Cuando me enfrenté a el problema me di cuenta de que no
quería realizar una simulación exacta de un proceso físico, sino
solamente crear un efecto que se asemejara. Con esto claro podemos hacer
las cosas mucho mas simples.
Mi solución fue esta:
Al ser el flash un sistema iterativo es mucho mas facil realizar
simulaciones fisicas sencillas que aplicando ecuaciones de física
clásicas. De hecho la aceleracion al ser un elemento de orden 2 respecto
al tiempo no debe aparecer si construimos bien el algortimo. La
velocidad sí, porque es de orden 1, y es la que modificamos.
Basta con esto:
<code>
Class net.somms.ElasticButton extends MovieClip
{
var Xinicial:Number ; // Coordenada X del centro de oscilacion
var Yinicial:Number ; // Coordenada Y del centro de oscilacion
var Vx:Number = 0; // Velocidad X inicial
var Vy:Number = 0; // Velocidad Y inicial
var coeficiente:Number=.2; //Factor de "perdidas" ajustable al gusto.
var efecto:Boolean = false: // Indica si debe aplicarse el efecto
}
function ElasticButton()
{
var Xinicial:Number = _x; // Coordenada X del centro de oscilacion
var Yinicial:Number = _y; // Coordenada Y del centro de oscilacion
}
fuction onEnterFrame ()
{
if (efecto)
{
Vx += (Xinicial-_x);
Vy += (Yinicial-_y);
Vx*=coeficiente;
Vy*=coeficiente;
_x += Vx;
_y += Vy;
}
public function onMouseDown()
{
this.startDrag(true);
efecto=false;
}
public function onMouseUp()
{
this.stopDrag();
efecto=true;
}
}
</code>
Aqui como clase para un movieclip
o
si lo preferis para incluirlo en el codigo de una instancia de clip:
<code>
onClipEvent (load)
{
Xinicial= _x; // Coordenada X del centro de oscilacion
Yinicial= _y; // Coordenada Y del centro de oscilacion
Vx= 0; // Velocidad X inicial
Vy= 0; // Velocidad Y inicial
coeficiente=.5; //Factor de "perdidas" ajustable al gusto.
efecto= false; // Indica si debe aplicarse el efecto
}
onClipEvent (enterFrame)
{
if (efecto)
{
Vx += (Xinicial-_x);
Vy += (Yinicial-_y);
Vx*=coeficiente;
Vy*=coeficiente;
_x += Vx;
_y += Vy;
}
}
onClipEvent(mouseDown)
{
startDrag("",true);
efecto=false;
}
onClipEvent(mouseUp)
{
stopDrag();
efecto=true;
}
</code>
Chimpum.
Un saludo.
PS: si en el libro de Super Samurai vienen todas esas ecuaciones
simplificadas, pero la explicación es un tanto.. Excasa? Prefiero el
capítulo dedicado al 3D personalmente.
> -----Mensaje original-----
> De: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] En nombre de EvolvE
> Enviado el: jueves, 29 de septiembre de 2005 10:44
> Para: asnativos@5dms.com
> Asunto: Re: [ASNativos] EFECTO MUELLE
>
> Una de las cosas que se enseñan en ingenieria es a simplificar...
> Ni ecuacion de Stokes ni nah, si el comportamiento no ideal
> del muelle hace perder mas energía que la que se pierde por
> el rozamiento del aire, fuera. La energía perdida
> supongamosla constante en el tiempo. Esto implicaria tener
> una fuerza continua en el sentido contrario del
> desplazamiento. Basicamente basta con restar a la aceleración
> resultante del muelle una cantidad fija en cada iteración.
> Arsa.
> Si teneis el libro de Macromedia Flash: Super Samurai, vienen
> todas las ecuaciones simplifiadas y masticadas para Flash en
> el capitulo 3. Yo no lo tengo a mano ahora mismo, pero no es
> muy dificil deducirlo.
> Basicamente olvidate del tiempo si utilizas onEnterFrame. t
> en todas las funciones valdría 1 mas que el anterior, asi que
> partiendo de la posicion anterior solo tienes que aplicar las
> formulas con t=1.
> Ale, a quemar neuronas.
> Ta lue!
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
Julio Rabadan Gonzalez
Powerboss SL
IT Department
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------