【发布时间】:2011-12-28 14:52:46
【问题描述】:
我收到一个坐标数组(double 坐标与-infinity < x < +infinity 和0 <= y <= 10)并想使用这些点绘制一条折线。我希望图表始终从图像的左边框开始,并在右侧结束。我图像的底部边框始终代表 0 y-value,顶部边框始终代表 10 y-value。创建的图像的宽度和高度由用户在运行时决定。
我想使用 Qt 来实现这一点,QImage 与 QPainter 组合似乎是我选择的主要武器。我目前正在尝试解决的问题是:
如何将我的坐标转换为图像中的像素?
y-values 似乎相当简单,因为我事先知道图表的最小值和最大值,但我正在努力处理 x-values。到目前为止,我的方法是找到 min- 和 max-x-value 并分别缩放每个点。
有更原生的方法吗?
由于一组坐标适用于具有不同宽度和高度的多个图像,我想知道矢量图(svg)是否可能是更合适的方法,但我找不到在 Qt 中创建 svg 文件的材料,只使用现有文件。我会寻找与 Windows 元文件相当的东西。
Qt 中是否有与元文件相近的匹配?
【问题讨论】:
标签: c++ qt graph vector-graphics