c++ - Qt SVG Generator 矢量精度仅限于像素大小?
问题描述
我正在使用 QPainter 和 QSvgGenerator 来生成一组我需要矢量精度的符号。我有一系列控件来设置形状的生成,我正在使用 QPainter 绘制它们。我的最终目标是获得数学上准确的 SVG 矢量图像,但我似乎只能从 QPainter 到 SVG Generator 获得像素级精度。当我计算线条的位置时,我不确定 QPainter 是否四舍五入到最接近的整个像素位置,但我在 512x512 小部件空间中绘制符号系统。这当然给了我一个 512x512 像素的 svg,线条捕捉到最近的像素,而不是我计算的实际双精度浮点 x/y 值......
如果我想要一个准确的矢量图像,我应该将所有点转储到缓冲区中并编写我自己的 SVG 生成器,还是有办法使用 QPainter 获得双精度矢量精度到 SVG 生成器,显示尺寸仅为 512x512?
解决方案
通过使用 QPointF 而不是 X 和 Y 的整数解决了这个问题。
painter.drawLine(QPointF(pX1, pY1), QPointF(pX2, pY2));
推荐阅读
- android - com.android.builder.dexing.DexArchiveMergerException:无法合并 dex
- python - 具有大量参数的 sklearn 自定义估算器
- c++ - C/C++ 可以在 marco 中使用“for loop”而不是“do while”吗?
- html - 粘性位置元素不粘在父元素上
- javascript - Ionic 4 子数组未定义,而索引正确
- php - 类中未定义的数组变量
- c# - C# 一种在 wcf 中限制特定 IP/标识符的方法
- database - Symfony QueryBuilder - 查询中的过滤器集合
- javascript - 为什么我在浏览器中得到不同的 boxShadow 值?
- c++ - FFF假功能与谷歌测试