Creo un triángulo equilátero y quiero rotarlo sobre sí mismo. Al hacerlo dinámicamente con createEmptyMovieClip me crea como punto de registro y como coordenadas del triángulo el punto 0,0
Si aplico un _rotation incrementando el ángulo en el evento onEnterFrame me lo desplaza.
Intento calcular cual es el punto medio del triángulo y desplazarlo para compensar su desplazamiento pero no lo consigo, alguien puede ayudarme.
El código es el siguiente:
xCentro = 300;
yCentro = 200;
r = 100;
_root.createEmptyMovieClip ("triangulo", 1);
with (_root.triangulo){
lineStyle (1, 0x000000, 100);
moveTo (xCentro, yCentro - r);
lineTo (xCentro + r* Math.cos(Math.PI/180 * 150), yCentro + r * Math.sin(Math.PI/180 * 150));
lineTo (xCentro + r* Math.cos(Math.PI/180 * 30), yCentro + r * Math.sin(Math.PI/180 *30));
lineTo (xCentro, yCentro - r);
}
this.onEnterFrame = function() {
trace(triangulo._rotation)
triangulo._rotation += 1;
rr = triangulo._rotation;
r = (_width+_height)/2
m = (Math.cos(Math.PI/180 * rr)) * -r/(Math.sin(Math.PI/180 * rr)) * r
xx = Math.cos(Math.PI/180 * rr) * (r/2)
yy = Math.sin(Math.PI/180 * rr) * (r/2)
triangulo._x = xx;
triangulo._y = yy
}
Después del Rotation en el EnterFrame intento calcular mediante pendientes y demás elementos trigonométricos cual sería el desplazamiento en cada caso, pero ... ufff
