Comunidad de diseño web y desarrollo en internet online

Problema Newbye con trigonometria en flash

Citar            
MensajeEscrito el 04 Sep 2007 11:13 pm
Buenass...primero, decir que esta página es increíble, soy nuevo en flash, había programado algo en Nodebox, pero nada con respecto a lo que planteo aquí...puede que sea una tonteria, pero no me salgo con la mia.
El problema que tengo es que genero dos pelotas alrededor de unos ejes, la primera (origen) se mueve a mi voluntad tal como quiero, la otra (contrario) consigo que gire los 180º que quiero visto que la necesito en el lado opuesto pero no consigo que me proporcione las distancia equivalente de la primera bola, es decir, me acerque o me aleje con la bola origen, la contraria siempre permanece a la misma distancia de los ejes.

Tal como está el código ahora se que es normal, visto que no existe un contrario_mc._x ni ._y ni nada que haga que su posición pueda variar, lo he dejado limpio por que todo lo que he probado no me ha servido (buscar la hipotenusa, convertir la posicion x e y en contrarias, etc...) o no he sabido escribirlo de manera correcta.

Gracias de antemano...

Código :

_root.onMouseMove = function() {
   updateAfterEvent();
   xdif = _root._xmouse-cruz_mc._x;
   ydif = _root._ymouse-cruz_mc._y;
   angulo = Math.atan2(ydif, xdif);
   
   origen = angulo*180/Math.PI;
   contrario = origen+(180+Math.PI);

   origen_mc._x = Math.round(_root._xmouse);
   origen_mc._y = Math.round(_root._ymouse);
   origen_mc._rotation = origen;

   contrario_mc._rotation = contrario;

}

Por Zuljinor

3 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 05 Sep 2007 11:15 pm
Lo cierto es que no entendí muy bien.
¿Quieres que las coordenadas sean contrarias, respecto a qué?¿a un eje predeterminado? Si por ejemplo, fuesen las coordenadas simétricas a la recta x=200

Código :

var ejeX:Number = 200;
contrario_mc._x = (ejeX * 2) - origen_mc._x;
contrario_mc._y = origen_mc._y;

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 06 Sep 2007 08:38 pm
Dsiculpa, es cierto que no acabe de expresarme bien.

Estableciendo que el centro de giro de las bolas sea por ejemplo 150 en x y 150 en y. Necesito que mientras que la de origen la pueda mover a mi parecer la otra vaya siempre a la misma distancia del centro de giro pero con otros "ángulos".

Pongo "ángulos" entre paréntesis por que el código que me has puesto ya lo había hecho, va perfecto si quieres la pelota a 180º (justo lo contrario), pero necesito luego otra a 120º a 90º que también vayan girando y acercandose o alejandose mientras muevo la bola de origen.

No se si a quedado más clara mi duda.

Gracias!

Por Zuljinor

3 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 10 Sep 2007 12:27 am
Ok, creo que ahora sí...
Puedes usar esta clase, y hacer algo así:

Código :

import flash.geom.Point
import Trig
var centro : Point = new Point (150 , 150);
this.onMouseMove = function ()
{
   var mousePos : Point = new Point(_xmouse, _ymouse)
   var coords : Point = Trig.hallarPunto (Trig.hallarAngulo(mousePos, centro)+180, Point.distance (centro, mousePos), centro)
   segundomc._x = coords.x
   segundomc._y = coords.y
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 11 Sep 2007 12:20 am
Muchas gracias!
La verdad es que tiene muy buena pinta, en cuanto pueda lo pruebo y te digo algo.

Saludos!

Por Zuljinor

3 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 15 Sep 2007 02:10 pm
Funcionó! Muchas gracias, usando la clase Trig del tutorial y la clase Point que viene con el paquete Flash.

Un saludo y arriba cristalab! :lol: :lol:

Por Zuljinor

3 de clabLevel



Genero:Masculino  

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.