Canvas オブジェクト (線、頂点、三角形など) を作成していますが、それらに点を中心とした回転を適用したいと考えています。
マップ上の GeoPoint にポイントがアタッチされているため、Canvas の rotate() メソッドを使用できないため、rotate() メソッドを使用するとすべてのマップが回転してしまいます...
問題は、Canvas が Point(int,int) を必要とし、cos 関数と sin 関数のために回転を適用すると double が作成されることです。したがって、double を 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;
}