Всякий раз, когда у вас есть какие-то длины (высоты и основание) и преобразовать в угол (тета), а затем обратно в длину, вы делаете ненужную работу.
Притворись, что основание и высота положительные, чтобы нарисовать картинку. Математика работает для любой базы и высоты.
Представьте себе треугольник с одной вершиной в начале координат и другой вершиной в (основание, высота). Стороны треугольника: (0,0) - (основание, высота) и (0,0) - (основание, 0) и (основание, 0) - (основание, высота). Пусть hypot = sqrt (base * base + height * height). Заметим, что theta - угол треугольника в начале координат. Это означает, что cos (theta) = base/hypot и sin (theta) = height/hypot.
Так, например, ваша формула для x становится x = x0 + 53 * base/hypot;
Эти формулы для cos и sin будут работать для любой базы и высоты, положительной или отрицательной.
Вы почти наверняка видите прыжки из-за ошибок с плавающей запятой, когда база или высота близки к нулю. Они исчезнут, если вы пропустите вычисление theta.
Каковы типы 'height' и' base'? – Attila
При оценке сложных математических выражений большие числа обычно требуют больше времени для обработки. * x и y не меняются в течение некоторого времени ... * Сколько времени вы смотрите? – fireshadow52
Высота и основание - это типы данных int, время означает, что они изменяются небольшими приращениями, когда theta невелика, но по мере увеличения тэта приращения становятся больше. –