【问题标题】:real-world dimensions in qgraphicssceneqgraphicsscene 中的真实世界尺寸
【发布时间】:2013-11-19 23:22:40
【问题描述】:

我正在 Qt 5.1 中编写一个小型 CAD 应用程序,并试图弄清楚如何让 QGraphicsScene 的坐标与实际尺寸相对应。例如,我打算保持坐标的原始形式(值,单位),以在从毫米切换到英寸时保留数据。

我在他们的文档 (http://qt-project.org/doc/qt-4.8/coordsys.html) 中发现默认单位对应于基于像素的绘图设备上的 1 个像素和基于打印的设备的 1/72 英寸。

这是我应该使用的转换(每英寸 72 个单位)吗?这不是特别方便......有没有更好的方法将真实世界的维度与 QGraphicsScene 中的坐标相关联?这个转换可以调整吗?

谢谢:)

【问题讨论】:

  • 显示器的实际尺寸是计算机甚至可以可靠地知道的吗?例如如果图像在 LCD 投影仪上显示,那么实际尺寸将取决于显示表面的距离......
  • 而 LCD 投影仪是基于像素的设备,所以它并不关心。但是,打印机确实具有固定的物理尺寸,并且计算机必须将 qgraphicsscene 的其他无单位坐标转换为真实世界的值
  • 如何在场景中使用任何方便的东西(例如 10 ~ 1mm),然后根据需要进行缩放以进行打印?

标签: c++ qt qgraphicsscene cad


【解决方案1】:

相对性在这里很重要,您在 QGraphicsScene 中看到的内容与现实世界之间没有直接关联,除非您决定创建一个有代表性的比例。

您可以愉快地为物体内部的原子创建一个按比例缩放的分子模型,或者您可以为一个允许您在恒星和星系之间旅行的太阳系建模。重要的是你作为开发者决定你的规模。

在太阳系中,从 (0,0) 到 (10,0) 的 GraphicsScene 坐标位置可能意味着 10 米或 10 英里的距离。只要将场景中的对象建模为相同的比例并使用该比例定位在场景中,这才是最重要的。

在打印方面,我同意@FrankOsterfeld 的观点,即在场景中缩放视图。如果您想在屏幕上看到的内容和在纸上打印的内容之间建立直接关联,最好不要在这里使用 QGraphicsScene。

【讨论】:

  • "如果你想在屏幕上看到的内容和在纸上打印的内容之间建立直接关联,最好不要在这里使用 QGraphicsScene。"在这种情况下我会使用什么?
猜你喜欢
  • 1970-01-01
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
相关资源
最近更新 更多