5

ドキュメントから:

QPainterペイントの2つの方法を提供しますQPolygonsdrawPolygondrawConvexPolygon

ドキュメントのどこにも、それらの違いが何であるかが明確にされていません。さらに、drawConvexPolygonドキュメントの状態

提供されたポリゴンが凸面でない場合、つまり180度より大きい角度が少なくとも1つ含まれている場合、結果は未定義です。

それで...それは何のためですか?この方法でポリゴンの凸包を見つけてペイントすることを望みましたが、そうではないようです。

4

2 に答える 2

4

QPainter::drawConvexPolygon()ドキュメントには次のように記載されています。

一部のプラットフォーム (X11 など) では、drawConvexPolygon() 関数は drawPolygon() 関数よりも高速です。

そう、

  • drawPolygon()非凸ポリゴンもペイントできるため、より一般的です(ただし、描画は遅くなる可能性があります)
  • drawConvexPolygon()凸多角形の描画にのみ使用できますが、特定のプラットフォームではより高速になる場合があります

たとえば、3D レンダリングを行う場合、レンダリングを単純化するためだけに凸ポリゴンで構成されるポリゴン メッシュdrawConvexPolygon()を使用できます。この場合、 (多数の凸ポリゴンをペイントする必要があるため)高速であるほど良い選択になります。

于 2013-03-07T13:57:38.580 に答える
0

多角形のどの部分が外側と内側であるかを (塗りつぶし目的で) 判断すると、多角形に凸領域が含まれているかどうかに応じて異なる選択が行われます。星形の内側と長方形の内側を判断する方法を考えてみてください。

于 2013-03-07T13:55:27.450 に答える