使位图“轨道”成为一个点

时间:2012-07-27 21:11:39

标签: java android rotation

我想制作一个“按钮轮” - 我有一个自定义的“Button”对象,它使用Rect作为它的位置/大小。

我可以通过这样做来旋转一个:

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;

不幸的是,这仅适用于一个,因为它们都是相互排列的...如何合并“偏移”或增量而不是分配位置

我试过了:

 //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))));

// 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))));

我知道这一定相当容易,我只是错过了......

编辑:

通过制作“

来修正它
int Degree1 = 0;
int Degree2 = 90;
int Degree3 = 180;
etc.

并递增它们:

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

1 个答案:

答案 0 :(得分:1)

存储您正在旋转的原点,并且每次去计算其位置时,都要根据原点而不是当前点进行计算。