以毫米为单位绘图

本文关键字:绘图 为单位 | 更新日期: 2023-09-27 18:10:22

我在一个需要一些绘图的项目中工作,我有一个问题。如何以毫米为单位画东西。我有这个代码,但结果似乎不准确。我用尺子在屏幕上量了一下,大概38毫米。下面是代码:

e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.DrawLine(Pens.Red, 10, 10, 50, 10);

请给我指路。

以毫米为单位绘图

Daniel是对的,"最坏的情况"你必须得到桌面分辨率和屏幕(显示器)DPI,并自己计算单位。
但在第一次去我尝试使用TransformPoints: http://msdn.microsoft.com/en-us/library/k42sdzey.aspx

为了能够用"现实世界"的单位来画东西,你需要知道几件事:

  • 分辨率使用
  • 物理附加显示器的DPI(隐含地包括物理屏幕尺寸的知识)

一个简单的例子:

两台电脑在windows内具有相同的分辨率和相同的DPI设置。
但是,一台电脑有一个13英寸的显示器,另一台电脑有一个27英寸的显示器。这意味着在较小的显示器上的物理像素密度要高得多,即每毫米有更多的像素。

因此,一条10毫米长的线需要包含大约两倍于小显示器上的像素数。