0

これで私がどこに向かっているのかがわかると思いますが、2本の線からCGAffineTransformを生成する簡単な方法はありますか?それぞれがCGPointのペアで表されています。

A[(a1x,a1y), (a2x,a2y)],
B[(b1x,b1y), (b2x,b2y)]

結果として得られるCGAffineTransformをラインAに適用すると、もちろんラインBが生成されます。これには、平行移動、縮尺、および回転が含まれる可能性があります。

確かに、いくつかのトリガーをブラッシュアップした後、自分でこれを書くことができることを望んでいますが、これを行うためにすでに何かが利用可能かどうか疑問に思っていましたか?

注:私はあなたにこれを書いてくれるように頼んでいません-私はコアグラフィックスのトリックを見逃したくないだけです!

4

1 に答える 1

1

はい。ただし、少なくとも4つの解決策があります。2つの平行移動と2つのスケール(操作と方向ごとに1つ)です。これは、変換スケーリングの両方を行う変換をカウントしないことです。

Quartz 2Dプログラミングガイドの「行列の背後にある数学」</a>は、各操作がどのように機能するかについての概要です。それから、それを反転して、目的の操作と方向のマトリックスを考え出すのに十分簡単でなければなりません。

確かに、いくつかのトリガーをブラッシュアップした後、これを自分で書くことができることを望んでいます…</ p>

回転以外は必要ありません。

于 2009-06-24T08:27:34.957 に答える