形状を 90 度回転させようとしています。
私の形状は、(x、y)の点と(point1、point2)の線がほとんどないクラスによって保持され、すべての線が一緒になって形状を構成します。
実際に形状を 90 度 (またはその他の角度) 回転させるには、次の式に従って形状のポイントを変換する必要があります。
(x,y) -> ( x*cos(90)+y*sin(90) , -x*sin(90)+y*cos(90) )
上記を達成するために、次のことを試しました(形状のコンポーネントである各ポイントで操作しました)-
float x, y;
// get the current point location ...
x = currentPoint.x;
y = currentPoint.y;
// create the cos , sin
float cosA = (float) Math.cos(Math.toRadians(90));
float sinA = (float) Math.sin(Math.toRadians(90));
currentPoint.x = (int) (x * cosA + y * sinA);
currentPoint.y = (int) (-x * sinA + y * cosA);
しかし、この回転の後に形状を描くと、非常に奇妙な結果になります。
この実装で何か問題を検出できますか?