【问题标题】:What's the point in QPainter::drawConvexPolgonQPainter::drawConvexPolgon 有什么意义
【发布时间】:2013-02-22 17:59:59
【问题描述】:

来自文档:

QPainter提供两种绘画QPolygons的方法:drawPolygondrawConvexPolygon

文档中没有明确说明它们之间的区别。此外,drawConvexPolygon 文档状态

如果提供的多边形不是凸多边形,即它包含至少一个大于 180 度的角,则结果未定义。

那么……它是干什么用的?我希望该方法能以某种方式找到我的多边形的凸包并绘制它,但似乎并非如此。

【问题讨论】:

    标签: qt qpainter convex-hull


    【解决方案1】:

    QPainter::drawConvexPolygon() documentation 说:

    在某些平台(例如 X11)上,drawConvexPolygon() 函数可能比 drawPolygon() 函数更快。

    所以,

    • drawPolygon() 更通用,因为它还允许绘制非凸多边形(但绘制速度可能会更慢)
    • drawConvexPolygon() 只能用于绘制凸多边形,但在特定平台上可能更快

    例如,在进行 3D 渲染时,您可以使用由凸多边形组成的 Polygon Mesh 以简化渲染,在这种情况下,更快的 drawConvexPolygon() 将是更好的选择(因为您需要绘制大量的凸多边形)。

    【讨论】:

    • 啊,所以这个多边形是不是凸的,取决于先验知识。
    • 对 - 根据这一点,您应该选择一种或另一种方法
    【解决方案2】:

    确定多边形的哪一部分是外侧和内侧(用于填充目的)会根据多边形是否包含凸区域做出不同的选择。想想如何确定星形的内部与矩形的内部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 2010-11-29
      • 2010-10-15
      • 2011-02-05
      • 2012-02-28
      • 2018-01-13
      • 2015-03-18
      相关资源
      最近更新 更多