Hacer un mapa de bits "órbita" un punto

Estoy tratando de hacer una "rueda de botones". Tengo un objeto "Botón" personalizado que usa un Rect para su posición/tamaño.

Puedo hacer que uno gire haciendo esto:

Button1.Rectangle.left = (int) (Vertex.x + (radius * Math.sin(Math.toRadians(Degree))));
Button1.Rectangle.top =  (int) (Vertex.y + (radius * Math.cos(Math.toRadians(Degree))));
Button1.Rectangle.right = Button1.Rectangle.left + ButtonSize;
Button1.Rectangle.bottom = Button1.Rectangle.top + ButtonSize;

    Degree += 1;

Desafortunadamente, esto solo funciona para uno porque luego todos se alinean entre sí ... ¿cómo incorporo un "desplazamiento" o incremento en lugar de asignar la ubicación?

He intentado:

 //Using self position as vertex
    Button1.Rectangle.left = (int) (Button1.Rectangle.left + (radius * Math.sin(Math.toRadians(Degree))));
    Button1.Rectangle.top =  (int) (Button1.Rectangle.top + (radius * Math.cos(Math.toRadians(Degree))));

y

// using +=
 Button1.Rectangle.left += (int) (Vertex.x + (radius * Math.sin(Math.toRadians(Degree))));
Button1.Rectangle.top +=  (int) (Vertex.y + (radius * Math.cos(Math.toRadians(Degree))));

Sé que debe ser algo bastante fácil, solo me lo estoy perdiendo...

EDIT:

Se arregló haciendo un"

int Degree1 = 0;
int Degree2 = 90;
int Degree3 = 180;
etc.

e incrementándolos:

Degree1 += 1;
Degree2 += 1;
Degree3 += 1;

preguntado el 27 de julio de 12 a las 22:07

1 Respuestas

Almacene el punto de origen alrededor del cual está rotando y cada vez que vaya a calcular su ubicación, calcule contra el origen, no contra el punto actual.

Respondido 27 Jul 12, 22:07

eso es lo que es el Vector2 llamado "Vértice", es el punto central de la pantalla; el problema es que asigna la posición para que todos los botones aparezcan en una ubicación ... ¿tal vez si cada uno tiene su propia variable "Grado"? - Gedeón Kain

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.