JavaのPoint実装に入ることなく、一般的な概念は非常に簡単です。
まず、シェイプの中心が(0,0)になるようにすべてのシェイプポイントを変換する必要があります。 たとえば、中心(Cx、Cy)とあなたのポイントの1つが(Px、Py)である場合、新しいポイントはNewP =(Px-Cx、Py-Cy)でなければなりません。 すべてのポイントが変換された後、ポイントごとに以下を実行する必要があります。 RotatedP =(-NewPy、NewPx)
が一回転、あなたは自分に戻って指して変換する必要があります(他の回転のためにそれを行う方法を確認するには、以下のリンクを確認してください)あなたは賢明な90 degress時計を回転させるようにしたいと仮定すると、 元の場所: FinalP =(RotatedPx - NewPx、RotatedPy - NewPy)。
いくつかの擬似コード:
Point p;
Center center;
Point relativePoint = p - center;
// For 90deg CW: -y, x
// For 90deg CC: y, -x
Point rotatedPoint = new Point(-1 * relativePoint.Y, relativePoint.X); // 90deg CW
Point finalPoint = rotatedPoint + center;
ただ、変換および回転について少し読んで、それはあなたのために非常に明確でなければなりません: Rotations - のみ最初の部分(二次元の回転)
を読みますありがとう:)これは働いた! – Susie