首页 > 解决方案 > Qt SVG Generator 矢量精度仅限于像素大小?

问题描述

我正在使用 QPainter 和 QSvgGenerator 来生成一组我需要矢量精度的符号。我有一系列控件来设置形状的生成,我正在使用 QPainter 绘制它们。我的最终目标是获得数学上准确的 SVG 矢量图像,但我似乎只能从 QPainter 到 SVG Generator 获得像素级精度。当我计算线条的位置时,我不确定 QPainter 是否四舍五入到最接近的整个像素位置,但我在 512x512 小部件空间中绘制符号系统。这当然给了我一个 512x512 像素的 svg,线条捕捉到最近的像素,而不是我计算的实际双精度浮点 x/y 值......

如果我想要一个准确的矢量图像,我应该将所有点转储到缓冲区中并编写我自己的 SVG 生成器,还是有办法使用 QPainter 获得双精度矢量精度到 SVG 生成器,显示尺寸仅为 512x512?

标签: c++qtsvgqpainter

解决方案


通过使用 QPointF 而不是 X 和 Y 的整数解决了这个问题。

    painter.drawLine(QPointF(pX1, pY1), QPointF(pX2, pY2));

推荐阅读