2010-11-13 3 views
0

Я пытаюсь сделать растровую вращать и точку в стороне мыши, но я получаю странные результаты:растрового Android программирования вращение

Видео: http://www.truploader.com/view/993341

мышь не видна она вращается, однако не вращается до кончика точки мыши.

Код:

 /** 
    * Rotates the object based on a point 
    */ 
public void setRotation(float x, float y) 
{ 
    float XDistance = this.xPos - x; 
     float YDistance = this.yPos - y; 

     float Radians = (float) Math.atan2(YDistance, XDistance); 
     this.degrees = Math.round((Radians*180/Math.PI)); 

     this.moveObject(); 
     this.r.setRotate(this.degrees, this.picture.getWidth()/2, this.picture.getHeight()); //origin of the base 
    // this.r.setRotate(this.degrees, this.picture.getWidth()/2, this.picture.getHeight()/2); 
} 

положение мышь х и у. Какие-нибудь идеи?

ответ

0

Где вы видите «положение мыши»? Я думаю, вы берете его из MotionEvent, поэтому обратите внимание, что эти координаты относятся к цели.

0

Какие результаты вы ожидали? Rotates the object based on a point может означать много чего. Что с этим не так?

Правильны ли градусы? Инициализируйте свой объект, подделайте положение мыши и посмотрите, является ли оно this.degrees тем, что вы ожидаете от него, и тем, что вам нужно. Если это не сработает, подумайте о написании модульного теста.

Что делает this.moveObject();? Делает ли это, что он должен делать правильно?

this.r.setRotate( Нужны степени? Почему this.picture.getWidth()/2? В какой момент он вращается?

Итак, что случилось?

Смежные вопросы