元素x,y,宽度,高度平移到不同的尺寸

时间:2012-05-10 15:24:45

标签: image algorithm math

我的数学必须非常生疏。我必须想出一个已知的算法:

  • X
  • ý
  • 宽度
  • 高度

文档中的元素并将它们转换为不同硬件设备上的相同区域。例如,正在创建文档用于打印(假设8.5“x11”字母大小),然后本文档中的元素将被传输到专有的电子阅读器。

另外,关于电子阅读器的已知事实,屏幕是825x1200像素的肖像。每英寸有150个像素。

我从打印文档中获得了点元素(每英寸72个Postscript点数)。

到目前为止,我有一个接近的算法,但它需要精确,我有一种感觉,我需要将纵横比纳入图片。我现在在做的是:

x (in pixels) = ( x(in points)/width(of document in points) ) * width(of ereader in pixels)

任何线索?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可能希望恢复操作的顺序以减少整数截断的影响,如下所示:

x (in pixels) =  x(in points) * width(of ereader in pixels) / width(of document in points)

我认为您没有宽高比问题,除非您忘记提及您的电子阅读器设备具有非方形像素。在这种情况下,您将在设备的屏幕上水平和垂直地显示每英寸不同的像素数量,因此您将使用x的水平ppi和y的垂直ppi。

答案 1 :(得分:0)

假设您的坐标是整数,则公式x/width是截断的(整数除法)。你需要的是在浮点数中执行除法/乘法,然后截断。像

这样的东西
(int)(((double)x)/width1*width2)

应该做的伎俩(使用类似C的转换为doubleint