Создайте QTransform по 4 точкам, определяющим преобразованный единичный квадрат

Учитывая, что 4 балла являются результатом

QPolygon poly = transform.mapToPolygon(QRectF(0, 0, 1, 1));

как мне найти QTransform transform? (Еще лучше :также при наличии произвольного исходного прямоугольника)

Мотивация:Имея четыре угловые точки изображения, которые должны быть отрисованы в системе координат с искаженной перспективой, как я могу нарисовать изображение с помощью QPainter?

Illustration of the problem

Это снимок экрана, иллюстрирующий проблему в GIMP, где можно преобразовать слой, перемещая его по 4 углам. Это приводит к трансформации перспективы. Я хочу сделать то же самое в приложении Qt. Я знаю, что QTransform не ограничивается аффинными преобразованиями, но также может обрабатывать перспективные преобразования.

7
задан leemes 16 July 2012 в 21:27
поделиться