我想创建一张图片中给出的草图;
是否可以为特定屏幕尺寸和分辨率创建A4尺寸草图。如果是这样,我怎么能计算出这个值。因为你知道处理使用size()方法,而size的值是像素而不是cm或mm。
因此,我想绘制8厘米的线条,每当用户点击线上处理的某个点时,将以cm为单位显示到中心点(红点)的距离。我可以按像素方式做这些事情。但是我不知道如何将这些值转换为cm或mm。
答案 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;
}
这个想法是你将像素总数除以它们占用的距离,得出每厘米像素数。然后,您乘以您希望线条的厘米数,并为您提供制作线条的像素数。