2017-12-18 205 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) 
相关问题