为什么java.awt.Dimension使用双倍的高度和宽度?

时间:2012-01-31 09:42:29

标签: java image

来自the javadoc

  

Dimension类封装了组件的宽度和高度   (整数精度)

为什么不将它们表示为intlong

3 个答案:

答案 0 :(得分:3)

我认为这是因为超类Dimension2D声明了返回double的方法。对于大多数解决方案,整数都可以,但是当您希望为矢量图形创建Dimension2D类型时,将维度返回到除整数之外的其他内容。

答案 1 :(得分:2)

我认为对此的原始解释是尺寸通常是相对的,例如图像的最左边是0.0,图像的最右边是1.0且相同对于垂直维度,当然)。像素(或点)只是该范围内相对点的样本,因此如果您的图像宽度为350像素,则行的第210个像素位于点0.6上尺寸范围。

当然,这只是使用数据类型背后的原因。在实践中,这通常不适用,因为而不是从0.01.0的包容范围,而是使用从0.0[width in pixels].0的范围。


Addentum:0.01.0的范围对您来说应该是完全合理的,如果您甚至意识到vector calculus

答案 2 :(得分:0)

必须,因为它的父类java.awt.geom.Dimension2D基于双打。