0

以下を使用してNSViewを回転しています。

 setFrameRotation:

これにより、ビューが左下隅を中心に回転します。ビューを中心点を中心に回転させる最良の方法は何ですか?

また、そのコーナーのスーパービューでポイントを取得したいと思います。使用:

view.frame.origin

回転させるに角を与えてくれます。回転させた後、どのようにしてそのコーナーの実際のポイントを取得しますか?

よろしくお願いします、ベン

4

1 に答える 1

1

フレームの中心を中心に効果的な回転を得るには、フレームの原点を平行移動する必要があります。

また、もちろんview.frame.origin、回転する前に原点を与えます。回転は原点を中心に行われるため、回転後に原点も得られます。原点は動かない。原点を移動して中心を中心に回転させると、新しい原点がわかります。

他のコーナーを取得するには、 を使用します[view convertPoint:pt toView:view.superview]ptはビューの座標系の各コーナーです。例NSMakePoint(NSMaxX([view bounds]), NSMinY([view bounds]))

実際にこの手法を使用して、必要な翻訳を取得できます。ビューの目的の中心を計算するか、必要な場所にある場合は現在の中心を記録します。次に、ビューを回転します。を使用して中心の新しい位置を取得し-convertPoint:toView:ます。次に、新しい中心と目的の中心の差によって原点を変換します。

于 2012-05-12T12:13:48.657 に答える