2017-12-18 141 views
0

我想知道如何生成必要的變換以獲取給定源和目標的矩形狀多邊形的座標集。如何在給定4個初始點和4個最終點的情況下生成JS的數學變換

我正在做節點使用和我很舒服使用圖像操作庫,我只是無法找到與我有的信息生成轉換背後的數學。

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展示了理論 - 如何構建八個線性方程組來計算透視變換矩陣的係數。

Antigrain library包含此問題解決方案的C++實現(在文件agg_trans_perspective.h中)。我相信世界上確實存在適當的JS實現。

解決了eq。系統必須係數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) 
相關問題