2017-12-18 21 views
0

ソースとデスティネーションを指定して、矩形のようなポリゴンの座標を取得するために必要な変換を生成する方法を解明しようとしています。JSで4つの初期点と4つの最終点を指定して数学的変換を生成する方法

私はノードでこれをやっていますが、画像操作ライブラリを使用するのは楽しいです。私が持っている情報を使って変換を生成することができません。

diagram

+0

は、このリンクのヘルプをしていますか? https://stackoverflow.com/questions/14867878/affine-transformation-matrix-offset – ControlAltDel

+0

完全にtbhではありませんが、私は回転の角度が必然的に分からないので、私は一般的な答えを探しています。私はちょうど始まりの組と終わりの組を持っています。遠近法にはシフトだけでなく、回転や平行移動だけでなく、スキューも含まれている可能性があります。 –

答えて

2

ソース・座標と目的地を持っては、透視変換行列の適用後の座標。その行列は8つの独立した係数を含む。ソースとデスティネーションポイントは、対応する座標の8つの対を形成する(x1(src)=>x1 '(dst)など)。

This article Paul Heckbertの理論 - 視点変換行列の係数を計算するための8つの線形方程式のシステムを構築する方法。

Antigrain libraryには、この問題解決策(ファイルagg_trans_perspective.h)のC++実装が含まれています。私は、適切なJS実装が世界に存在すると確信しています。

式あなたは、係数A..Hを持っており、任意の必要なポイント(x,y)=>(x',y')の変換を見つけることができるシステム:

x' = (A * x + B * y + C)/(G * x + H * y + 1.0) 
y' = (D * x + E * y + F)/(G * x + H * y + 1.0) 
関連する問題