Как заполнить треугольник на холсте карты цветом? Qgis 3.3 - PullRequest
0 голосов
/ 30 октября 2018

У меня есть 3 точки (QPointF) и QgsRubberBand (PolygonGeometry), в который я добавил эти 3 точки. Результат как на картинке

enter image description here

Треугольник имеет очень тонкие белые линии. Я хочу заполнить треугольник цветом. Я ожидал, что метод setFillColor () сделает это, но это не так. Что я могу сделать, чтобы залить многоугольник заданным цветом?

Резиновая полоса была объявлена ​​в конструкторе класса как:

cameraFOV = новый QgsRubberBand (mapCanvas, QgsWkbTypes :: PolygonGeometry);

Вот код, который я использовал для отображения треугольника:

void MapObject::setFovAngle(double angle){
    cameraFOV->reset();
    QPointF FOVLeftCorner = QPointF(mapOwnPosition.x() + 5000 * qSin(targetingDirection-angle/2), mapOwnPosition.y() + 5000 * qCos(targetingDirection-angle/2));
    QPointF FOVRightCorner = QPointF(mapOwnPosition.x() + 5000 * qSin(targetingDirection+angle/2), mapOwnPosition.y() + 5000 * qCos(targetingDirection+angle/2));
    cameraFOV->addPoint(mapOwnPosition);
    cameraFOV->addPoint(FOVLeftCorner);
    cameraFOV->addPoint(FOVRightCorner);
    cameraFOV->closePoints();
    cameraFOV->setColor(QColor(255,255,255, 128));
    cameraFOV->setFillColor(QColor(0,0,0, 128));
    cameraFOV->show();
}

Что я могу сделать, чтобы залить треугольник цветом?

...