2

私は現在グラフィカルアプリケーションを作成しています。何かを逆さまに描画したいときはいつでも、コンテキストの変換行列を逆さまにするだけで、作業がずっと楽になります。これは非常に頻繁に発生します。ただし、これをサポートするコマンドはCGContextScaleCTMだけです。これは私が推測する問題ではありませんが、それは付加的な(まあ、乗法的な)プロセスです。50%のサイズにスケーリングする場合は、それを実行したことを認識し、後で200%のサイズに拡大する必要があります。つまり、現在の行列を取得し、リセットするたびに数学のスポットを実行します。 {1,0,0,1,0,0}の元の状態もかなり頻繁にあります。これをプログラムで行う方法はあるようですが、プロセッサの時間を取得するのに非常に無駄なようです。

しかし、私はHOWを見つけるのに非常に苦労していて、それは本当に、本当にばかげています。変換行列はCGContextRef構造のどこかにCGAffineTransformとして格納されていると思いますが、手動で設定できるように、その名前を教えてくれる適切なドキュメントがどこにも見つかりません。これはうまくいくでしょう。誰かがこの面で助けることができますか?

-灰

4

1 に答える 1

2

私はあなたが言っていることをする唯一の方法はあなたがやろうと思っていること、つまりCGContextScaleCTMを使うことだと信じています、しかし私はあなたがそれを2倍/半分にするかどうかをチェックする数学がどのように頻繁に使われるかわかりませんどうしても必要なときにだけ電話してください。

入力中に更新:CGContextSaveGStateとCGContextRestoreGStateを使用してみましたか?それがあなたが探しているものであるかどうかは正確にはわかりませんが、それはあなたがあなたの半分/倍増の間を行ったり来たりすることを可能にするでしょう私はかなり簡単に思いますか?

于 2010-08-13T16:52:26.330 に答える