QT — Как найти пересекающуюся область двух полилиний в C ++?

У меня есть две области (скажем, две полилинии). Я хочу найти пересекающуюся область между ними, используя C ++. Полилинии определяются как список точек (QVector). У вас есть какие-нибудь подсказки для этого?

Если в качестве входных данных у нас есть две полилинии, на выходе должна быть другая полилиния с пересекающейся областью.

2

Решение

Это должно делать то, что вы хотите:

QVector<QPoint> intersection(const QVector<QPoint> &lhs,
const QVector<QPoint> &rhs) {

return QPolygon(lhs).intersected(rhs);
}

QPolygon наследуется от QVector<QPoint>, а также имеет конструктор, который принимает QVector<QPoint>,

3

Другие решения

Других решений пока нет …