Graphics 拖动控制柄的投影变换

Graphics 拖动控制柄的投影变换,graphics,transformation,projective-geometry,Graphics,Transformation,Projective Geometry,我们希望实现这种转变: 此图像是使用统一变换工具从Gimp获取的。只需拖动角点,即可自由变换矩形。我相信这就是所谓的 在给定角点位置的情况下,是否有人拥有为此类投影变换创建变换矩阵的公式?我们使用以下库从源角点和目标角点获取变换矩阵: hmm他们可能会做不同的事情,让相机和投影矩阵保持原样,只需改变对象矩阵,将其旋转预定义轴(由选定点和运动选择),旋转角度由屏幕平面中移动和原始点位置的投影三角形的atan2计算得出。。。无论如何,如果你想从点计算出完整的矩阵,那么我认为你需要更多的信息,比如相

我们希望实现这种转变:

此图像是使用统一变换工具从Gimp获取的。只需拖动角点,即可自由变换矩形。我相信这就是所谓的


在给定角点位置的情况下,是否有人拥有为此类投影变换创建变换矩阵的公式?

我们使用以下库从源角点和目标角点获取变换矩阵:


hmm他们可能会做不同的事情,让相机和投影矩阵保持原样,只需改变对象矩阵,将其旋转预定义轴(由选定点和运动选择),旋转角度由屏幕平面中移动和原始点位置的投影三角形的
atan2
计算得出。。。无论如何,如果你想从点计算出完整的矩阵,那么我认为你需要更多的信息,比如相机的焦距和视场,然后构造线性方程组
moved_point=matrix*original_point
,并求解所有点的系统,得到矩阵的所有元素。同样,这个问题也可以在非常短的时间内解决不同的方式(如果你有一些关于图像或特征的先验知识)也有可能你的图像不是3D投影,而是纹理2D多边形…我这里的问题是我想有一个矩阵,这样我可以在这个区域内外变换点,它将是更大变换管道的一部分。你确定我们需要四个角以外的更多信息才能得到矩阵吗?不,我不确定。。。我使用的4x4透视矩阵需要:
fovy,aspect,zNear,zFar
其中aspect是从图像分辨率知道的,并且可以硬编码
zNear,zFar
。所以这只是一个未知的问题。坐标系需要3个基向量和1个位置,这些基向量和位置相加为
1+4*3=13
未知数。每个点在系统中创建3个方程,因此ceil(13/3)=5,因此我们需要1个信息和4个点或5个点。是的,您得到了4个以上的点,但如果它们是线性相关的(选择了错误的点),则系统将没有解决方案。。。