Я думаю, что вы хотите Math.cos(angle)
и Math.sin(angle)
, а не Math.acos(angle)
или Math.asin(angle)
.Кроме того, убедитесь, что angle
указано в радианах, а не в градусах.
РЕДАКТИРОВАТЬ: Что касается "экспоненциальных значений", я предполагаю, что вы не должны использовать текущее системное время в своих расчетах.(Это количество миллисекунд с начала 1 января 1970 года; вряд ли это время, относящееся к вашей проблеме.) Вы должны использовать время, прошедшее с момента запуска вашей программы (long start = System.currentTimeMillis();
до цикла, затем вычтите start
от now
внутри цикла) или (возможно, лучше) смоделированного времени между точками.Примерно так:
float now = 0f;
for(int i = 1; i <= 10; i++) {
Log.w(this.getClass().getName(),"In plotting points loop");
mX1 = mUx*now;
mY1 = mUy*now + (mGravity/2)*now*now;
Log.d(this.getClass().getName(), "Value of mX1: " + mX1);
Log.d(this.getClass().getName(), "Value of mY1: " + mY1);
mCanvas.drawPoint(mX1, mY1, mPaint);
now += 1f; // or whatever time increment you want
}
Если вам нужно использовать фактическое прошедшее время, то этот цикл не будет этого делать, потому что время выполнения 10 итераций не будет равносильно заметному изменению системного времени..