处理具有实际测量值的图纸

时间:2014-02-17 22:30:06

标签: processing

我想创建一张图片中给出的草图;

enter image description here

是否可以为特定屏幕尺寸和分辨率创建A4尺寸草图。如果是这样,我怎么能计算出这个值。因为你知道处理使用size()方法,而size的值是像素而不是cm或mm。

因此,我想绘制8厘米的线条,每当用户点击线上处理的某个点时,将以cm为单位显示到中心点(红点)的距离。我可以按像素方式做这些事情。但是我不知道如何将这些值转换为cm或mm。

1 个答案:

答案 0 :(得分:3)

此代码似乎有效(返回dpi):

import java.awt.Toolkit;
int resolution = Toolkit.getDefaultToolkit().getScreenResolution();
System.out.println(resolution);

然而,this answer表明它不可靠。如果您只想在一台显示器上运行它,那么您可以手动计算它:

processing width = horizontal resolution(#pixels) / screen width(cm) * page width(cm)
processing height = vertical resolution(#pixels) / screen height(cm) * page height(cm)

编辑:这是一个将厘米距离转换为像素数的函数:

int cmToPixels(float cm){
  // this is a constant based on your screen's dimensions
  // my monitor is 1366x768
  int horizontalScreenResolution = 1366;
  // this is the actual width of your screen in cm
  int screenWidth = 32;
  // NOTE: because pixels/cm should be the same vertically and horizontally,
  // you could do the vertical equivalents for the above two constants.
  return cm * horizontalScreenResolution / screenWidth;
}

这个想法是你将像素总数除以它们占用的距离,得出每厘米像素数。然后,您乘以您希望线条的厘米数,并为您提供制作线条的像素数。