创建QTransform,给定4个点,定义变换后的单位平方

lee*_*mes 7 math geometry qt perspective coordinate-transformation

鉴于4分是结果

QPolygon poly = transform.mapToPolygon(QRectF(0, 0, 1, 1));
Run Code Online (Sandbox Code Playgroud)

我该怎么找QTransform transform?(甚至更好:还有一个任意的源矩形)

动机:给定在透视扭曲坐标系中绘制图像的四个角点,如何使用QPainter绘制图像?

问题的插图

这是一个屏幕截图,说明了GIMP中的问题,可以通过围绕图层的4个角移动来转换图层.这导致透视变换.我想在Qt应用程序中做同样的事情.我知道QTransform不仅限于仿射变换,还可以处理透视变换.

dmd*_*dmd 3

您应该能够使用 来做到这一点QTransform.squareToQuad。只需传递QPolygonF您想要转换成的即可。

有时我在让 squareToQuad 做我想做的事情时遇到一些问题,并且不得不使用它QTransform.quadToQuad来定义我自己的起始四边形,但你可能会更幸运。