Это примерно в третий раз, когда я задал такой вопрос. Я уже прочитал все подобные вопросы, и предыдущая помощь была полезной, но на этот раз я хочу добавить новую функцию в это приложение. У меня есть приложение, которое заставляет мяч перемещаться по кругу.Перемещение объекта по кругу из случайного местоположения
Теперь я хочу поместить мяч в случайное положение на экране, а затем перемещаться по кругу. Я думаю, что у меня логика в основном правильная, но мяч прыгает беспорядочно - независимо от того, насколько я играю с математикой. Код ниже.
Кто-нибудь знает, что я делаю неправильно?
public class DrawingTheBall extends View {
Bitmap bball;
int randX, randY;
double theta;
public DrawingTheBall(Context context) {
super(context);
// TODO Auto-generated constructor stub
bball = BitmapFactory.decodeResource(getResources(), R.drawable.blueball);
randX = 1 + (int)(Math.random()*500);
randY = 1 + (int)(Math.random()*500);
theta = 45;
}
public void onDraw(Canvas canvas){
super.onDraw(canvas);
Rect ourRect = new Rect();
ourRect.set(0, 0, canvas.getWidth(), canvas.getHeight()/2);
float a = 50;
float b = 50;
float r = 50;
int x = 0;
int y = 0;
theta = theta + Math.toRadians(2);
Paint blue = new Paint();
blue.setColor(Color.BLUE);
blue.setStyle(Paint.Style.FILL);
canvas.drawRect(ourRect, blue);
if(x < canvas.getWidth()){
x = randX + (int) (a +r*Math.cos(theta));
}else{
x = 0;
}
if(y < canvas.getHeight()){
y = randY + (int) (b +r*Math.sin(theta));
}else{
y = 0;
}
Paint p = new Paint();
canvas.drawBitmap(bball, x, y, p);
invalidate();
}
}