绘制网格最有效的方法是啥?

Posted

技术标签:

【中文标题】绘制网格最有效的方法是啥?【英文标题】:What is the most efficient to draw out a grid?绘制网格最有效的方法是什么? 【发布时间】:2016-06-02 08:29:43 【问题描述】:

我需要一个 QGraphicsView 上的网格,我每 35 毫秒更新一次画布。 如何生成性能最佳的网格?

我现在正在使用这个:

//vertical lines
    for(double i = 0; i < global::circuitWidth; i+= global::gridSize)
    
        painter->drawLine(global::mmToPixel(i-global::circuitCornerX), -            global::mmToPixel(global::circuitCornerY),   global::mmToPixel(i-global::circuitCornerX), global::mmToPixel(global::circuitHeight-global::circuitCornerY));
    
    //horizontal lines
    for(double i = 0; i < global::circuitHeight; i+= global::gridSize)
    
        painter->drawLine(-global::mmToPixel(global::circuitCornerX), global::mmToPixel(i-global::circuitCornerY), global::mmToPixel(global::circuitWidth-global::circuitCornerX), global::mmToPixel(i-global::circuitCornerY));
    

现在我意识到我以前可以计算一些参数,但除此之外还有什么?也许创建一个图像来绘制而不是线条?

还有没有办法通过一些设置来提高 QT 的图形性能?

【问题讨论】:

***.com/a/8280539/5653461 【参考方案1】:

假设网格没有改变,使用QPainterPath 构建它并绘制它。

有没有办法通过一些设置来提高 QT 的图形性能?

是的,有几种方法,但这取决于你在做什么。使用openGL 通常更快,但not always。

【讨论】:

谢谢。有没有办法将 openGL 与 QPainter 和 QGraphicsView 一起使用? 是的,请参阅此处this discussion,了解在视口上设置 QGLWidget 的示例

以上是关于绘制网格最有效的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

制作一个巨大的象棋一样的网格最轻的方法是啥?

将 SDF 计算为三角形网格的最有效方法

如何有效地渲染具有多边形边缘的网格表面?

在 2D 矢量中的预定位置更改多个值的最简单方法是啥?

在 OpenGL 中绘制 3d 图形的最有效方法是啥?

使用 Collider Unity 将线渲染转换为 3d 网格