Я создаю объект Canvas (линии, вершины, треугольник, ...), и я хотел бы применить к ним поворот вокруг точки.Как повернуть многоугольник вокруг точки с помощью Java?
Я не могу использовать метод поворота() на холсте, потому что очки привязаны к GeoPoint на карте, так что если я использую метод поворота() для всех карта вращается ...
Проблема заключается в том что Canvas нуждается в Point (int, int), и применение вращения создает double из-за функций cos и sin. Поэтому, когда я применяю поворот к всем точкам, из-за того, что вы выполняете двойную привязку к int, у меня есть какая-то графическая проблема, которая возникает ...
Так что я ищу лучшее решение.
Вот мой код вращения:
public Point rotatePoint(Point pt, Point center)
{
this.angle = ((this.angle/180)*Math.PI);
double cosAngle = Math.cos(this.angle);
double sinAngle = Math.sin(this.angle);
pt.x = center.x + (int) ((pt.x-center.x)*cosAngle-(pt.y-center.y)*sinAngle);
pt.y = center.y + (int) ((pt.x-center.x)*sinAngle+(pt.y-center.y)*cosAngle);
return pt;
}
Ok поблагодарить вас @izomorphius за ответ, Я отредактировать свой пост, чтобы исправить ошибку :) сделано с копией/paste – Bibu