【问题标题】:The Graphics2D Fill Method in Java SwingJava Swing中的Graphics2D填充方法
【发布时间】:2018-04-11 07:53:01
【问题描述】:

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

例如,如果您绘制new Rectangle2D.Double(0,0,10,20),则该绘图包括x = 10y = 20 的像素。如果填充同一个矩形,则不会绘制这些像素。

为什么这些方法虽然作用于同一个对象并执行相似的任务,但返回的结果却不同?有什么原因,还是只是一个错误?

【问题讨论】:

    标签: java swing awt java-2d


    【解决方案1】:

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

    坐标无限细,位于输出设备的像素之间。绘制图形轮廓的操作是通过用一根像素大小的笔穿过像素之间的无限细路径来操作的,该笔垂在路径上锚点的右侧。填充图形的操作是通过填充无限细路径的内部来进行的。

    特别是,

    如果您绘制一个覆盖给定矩形的图形,则与填充由同一矩形包围的图形相比,该图形会在右侧和底部边缘多占用一行像素。

    【讨论】:

    • QuickDraw 使用相同的模型,但它有不同的 API。
    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多