NSView をその中心を中心に回転させ、結果を確認しました。
[_cocoaView setFrameCenterRotation:-_rotationX];
フレームの原点を変更して NSView を配置し、ビューが (この場合は) Box2D 本体の中心に位置合わせされるようにします。繰り返しますが、結果は期待どおりです。
CGRect frame = _cocoaView.frame;
frame.origin = CGPointMake(_position.x - frame.size.width * 0.5f,
_position.y - frame.size.height * 0.5f);
_cocoaView.frame = frame;
ただし、並進と回転の両方を組み合わせると、回転の中心はビューの中心ではなく、別のポイントになります。回転の結果、フレームのサイズと原点が変化し、それによってフレームの中心点が移動すると思います。その結果、回転角度が 0 でない限り、ビューと Box2D 本体が整列しなくなります。
何故ですか?また、ビューを特定の場所に移動し、ビューをその中心を中心に回転させるにはどうすればよいですか?
PS:既に機能している iOS バージョンのアフィン変換を、レイヤーでサポートされた NSView に適用しようとした以前の試みは失敗しました。だから私は変換を使わずにそれを試しましたが、悲しいかな、また行き詰まっています。レイヤーとトランスフォームでそれを機能させる方法を知っていれば、それも私を助けてくれます。