2009-06-24 3 views
0

これはどこにあるのでしょうか?easy 2行からCGAffineTransformを生成する方法 - それぞれCGPointsのペアで表されます:CGAffine 2行からの変換 - それぞれCGPointsのペアで表現されます

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

結果として得られるCGAffineTransformは、行Aに適用されたときに行Bを生成することになります。変換、拡大縮小、回転が行われる可能性があります。

確かに私はいくつかのトリグを磨き上げた後、これを書くことができると思っていますが、これを行うために既に何かが利用可能かどうか疑問に思っていましたか?

注:私にはこれを書いてもらう必要はありません - 私はCore Graphicsのテクニックを逃したくありません!

答えて

1

はい、ただし、2つの翻訳と2つの縮尺(操作と方向ごとに1つ)があります。これは、両方ともの縮尺で変換された変換を数えずに表したものです。

“The Math Behind the Matrices”Quartz 2D Programming Guide)は、各操作の仕組みをよく理解しています。それから、それを反転させて、所望の操作と方向のためのマトリックスを考え出すだけで十分です。確かに私はいくつかのTRIGにブラッシュアップした後、これを自分で書くことができるように望んでいるだろう

...

あなたは回転以外のことを必要としません。

+1

参考になりました。しかし、私の質問は十分にはっきりしていないと思うので、私はそれを改訂しました。 2つの点のペアはそれぞれ線を表し、その間の変換には回転が含まれる可能性があります。 – teabot

+0

ああ、私は参照してください。ええ、それは可能と思われます。スケールは簡単です:lengthBをlengthAで割ります。回転:各ラインの角度をとり、もう一方の角度を引く。翻訳:線の中心点をとり、もう一方から中心点を引きます。もっとも難しい部分は、それらをすべて正しい順序でマトリックスにまとめることです。スケールを最初に、私は思う*。 –

+0

ありがとうございます - それは私がやることです。 – teabot

関連する問題