擬似アフィン変換の逆計算ができにゃい #2

id:yellow_73:20080904#p2 のつづき。
描いてみました。

ps = [ (0,0), (0,1), (1,1), (1,0) ]

から

pd = [ ( 0.2,0.5), (0.5,1.0), (1.2,1.25), (0.6,0.4) ]


変換するものとします。
まず、10*10のメッシュに対して、ps->pdでフィットするパラメータを使って変換します。結果がこれ。

うんうん。うまくいってる。

次に、先に出した変換結果に対して、pd->psでフィットするパラメータを使って「逆変換」してみます。結果がこれ。

見ての通り曲線です。

逆変換を本当にしたいんだったら、二次方程式を解かなくちゃいけないということですね。じゃあ重解じゃないときの解の選択方法ってどうなんでしょう。

ここであきらめておきます。
というのが、リサンプリングのときに、逆変換でデスティネーション側を基準にスキャンした方がいいかなと一瞬思ったからでした。
なお、レクチリニアでないのは、FillPolygon()でどうにかしてみました。