그래픽 장면에 타원을 그립니다. 타원이 기울어지면 경계의 일부가 즉시 나타나지 않습니다. 내 그래픽 장면에서 창 크기를 조정하거나 확대 또는 축소 작업을 수행 한 후에 타원 경계가 업데이트되고 필요한 완벽한 모양을 얻습니다.QGraphicsScene이 즉시 업데이트되지 않습니다.
나는 나의 타원 내 페인트 기능을 정의했습니다 :
QPainterPath ellipse;
ellipse.moveTo(p1.x()+majRadius, p1.y());
ellipse.arcTo(boundingRect(), 0 , 360);
QPen paintpen(Qt::black);
paintpen.setWidth(1);
painter->setRenderHint(QPainter::Antialiasing);
painter->setPen(paintpen);
painter->save();
painter->translate(p1.x(), p1.y());
painter->rotate(theta);
painter->translate(-p1.x(), -p1.y());
painter->drawPath(ellipse);
painter->restore();
내 경계의 구형의 정의는 다음과 같습니다
return QRectF(p1.x()-majRadius, p1.y()-minRadius,
2*majRadius, 2*minRadius).normalized();
나는 타원 2 례의 스크린 샷을 첨부 : 를
이 문제를 해결하는 방법은 무엇입니까?
많은 실수를 지적 해 주셔서 감사합니다. 제공된 화가 경로 예제를 따랐습니다. 번역문과 회전을위한 문서에서'preparegeometrychange'에 와서, 힌트를 제공 할 수 있다면 그것을 사용하는 방법을 알아낼 수 없었습니다. –
'preparegeometrychange' 함수는 어디에서 호출해야합니까? –
영향을주는 각 메소드 'p1','majRadius','minRadius','theta'는'boundingRect()'에 영향을 미치므로'preparegeometrychange'를 호출해야합니다. –