1

私はこれを何時間も解決しようとしてきましたが、何も見つかりませんでした。解決策は簡単だと思いますが、やはり見えません。

まったく異なる内部座標系を持つパスを表示しようとしています。を使用しCGAffineTransformationて画面座標系に変換しています。ものすごく単純。しかし、1. は機能し、2. は何も表示しません。パフォーマンス上の理由から、1. の使用は避けたいと思います。

ご参考までに、変換行列はIdentity描画呼び出しの前後にあります (ここには示されていません)。また、CGContextGetPathBoundingBox両方の場合で実行しましたが、2. ではアフィン変換が発生していないようです。

1.パスを手動で変換する

// Get the transform
CGAffineTransform transform = box.transform;

// Add a transformed copy of the path
CGContextAddPath(offscreenContext, CGPathCreateCopyByTransformingPath(way.path, &transform));
CGContextDrawPath(offscreenContext, kCGPathFillStroke);

2. iOSに魔法を働かせようとする

// Set the current transformation
CGAffineTransform transform = box.transform;
CGContextConcatCTM(offscreenContext, transform);

// Draw the path without transforming, iOS *should* do that for us
CGContextAddPath(offscreenContext, way.path);
CGContextDrawPath(offscreenContext, kCGPathFillStroke);

何か案が?

4

0 に答える 0