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