以下を使用してNSViewを回転しています。
setFrameRotation:
これにより、ビューが左下隅を中心に回転します。ビューを中心点を中心に回転させる最良の方法は何ですか?
また、そのコーナーのスーパービューでポイントを取得したいと思います。使用:
view.frame.origin
回転させる前に角を与えてくれます。回転させた後、どのようにしてそのコーナーの実際のポイントを取得しますか?
よろしくお願いします、ベン
フレームの中心を中心に効果的な回転を得るには、フレームの原点を平行移動する必要があります。
また、もちろんview.frame.origin
、回転する前に原点を与えます。回転は原点を中心に行われるため、回転後に原点も得られます。原点は動かない。原点を移動して中心を中心に回転させると、新しい原点がわかります。
他のコーナーを取得するには、 を使用します[view convertPoint:pt toView:view.superview]
。pt
はビューの座標系の各コーナーです。例NSMakePoint(NSMaxX([view bounds]), NSMinY([view bounds]))
。
実際にこの手法を使用して、必要な翻訳を取得できます。ビューの目的の中心を計算するか、必要な場所にある場合は現在の中心を記録します。次に、ビューを回転します。を使用して中心の新しい位置を取得し-convertPoint:toView:
ます。次に、新しい中心と目的の中心の差によって原点を変換します。