QPainterPath
두 개를 "병합"해야합니다. 문제는 항상 서로 다른 두 가지 경로로 보인다는 것입니다.QPainterPaths를 병합하는 방법
내가 필요한 것은 병합이 복잡한 내부 다각형이나 복잡 한 묶음에서 생성 된 것처럼 내부 클래스 생성물이나 하위 경로가 두 개였다는 것만 큼 복잡해 졌다는 것입니다. 이전에 별개의 경로. 그것은 꽤 간단하고 정상적인 작업이지만 나는 그것을하는 방법을 생각할 수 없다.
QPainterPath
두 개를 "병합"해야합니다. 문제는 항상 서로 다른 두 가지 경로로 보인다는 것입니다.QPainterPaths를 병합하는 방법
내가 필요한 것은 병합이 복잡한 내부 다각형이나 복잡 한 묶음에서 생성 된 것처럼 내부 클래스 생성물이나 하위 경로가 두 개였다는 것만 큼 복잡해 졌다는 것입니다. 이전에 별개의 경로. 그것은 꽤 간단하고 정상적인 작업이지만 나는 그것을하는 방법을 생각할 수 없다.
아직 시도하지 않았다면 united(QPainterPath)
메서드 (QPainterPath 클래스)가 찾고있는 메서드라고 말할 수 있습니다. 또는 달성하려는 시도에 따라 subtracted(QPainterPath)
또는 intersected(QPainterPath)
일 수 있습니다.
지금까지 시도한 내용에 대해 자세히 알려주십시오.
두 개의 경로 P1과 P2, 다음 하나의 서브 패스를 포함하는 각으로 시작하는 경우 :
joined = p1.toSubpathPolygons()[0] + p2.toSubpathPolygons()[0]
p3 = QPainterPath()
p3.addPolygon(joined)
당신은 또한 방향을 변경할 수 있습니다 각 경로가 path.toReversed를 사용하여 결합된다(). 는 (죄송합니다, 이것은 파이썬 구문입니다하지만 C++에 대한 거의 동일해야합니다)
p3 = p1 + p2 (파이썬 구문)가 동일한 효과를 갖는 것처럼 보입니다 (예 : p1과 p2가 서로 인접한 두 개의 직사각형이 동일 함). – Trilarion
+
연산자를 사용하여 경로를 병합 한 다음에
simplified()
를 호출하는 데 도움이 될
내가 예상 한 사각형 것이다 공통으로하고 여전히 두 개의 사각형이 될 것 simplified()
에 호출하지 않고 있지만, 하나의 가장자리를 가지고 두 개의 사각형 두 가지 경로를했을 때 나를 위해 문제를 해결하는 최소한.
"두 가지 다른 경로로 보이는 것"이 무엇인지는 명확하지 않습니다. 어쩌면 내가 가진 것과 같을 수도 있습니다. 내 대답을 확인해. – Trilarion