Java Swing中的Graphics2D填充方法

Java Swing中的Graphics2D填充方法,java,swing,awt,java-2d,Java,Swing,Awt,Java 2d,我刚刚读到Java中的fill方法在右侧和底部少画一个像素 例如,如果绘制一个新矩形2d.Double(0,0,10,20),则该图形包含x=10和y=20的像素。如果填充相同的矩形,则不会绘制这些像素 为什么这些方法在处理同一对象和执行类似任务时返回不同的结果?是否有任何原因,或者只是一个错误?API解释了绘制轮廓和填充内部之间的区别: 坐标无限薄,位于输出设备的像素之间。绘制图形轮廓的操作通过使用悬挂在路径上定位点右侧的像素大小的笔遍历像素之间的无限细路径来进行。填充图形的操作通过填充无限细

我刚刚读到Java中的fill方法在右侧和底部少画一个像素

例如,如果绘制一个
新矩形2d.Double(0,0,10,20)
,则该图形包含
x=10
y=20
的像素。如果填充相同的矩形,则不会绘制这些像素

为什么这些方法在处理同一对象和执行类似任务时返回不同的结果?是否有任何原因,或者只是一个错误?

API解释了绘制轮廓和填充内部之间的区别:

坐标无限薄,位于输出设备的像素之间。绘制图形轮廓的操作通过使用悬挂在路径上定位点右侧的像素大小的笔遍历像素之间的无限细路径来进行。填充图形的操作通过填充无限细路径的内部来操作

特别是,

如果绘制一个覆盖给定矩形的图形,则与填充以该矩形为边界的图形相比,该图形在右边缘和下边缘多占用一行像素

使用相同的模型,但它有不同的API。