如何在画布剪辑中获取内切矩形

时间:2012-11-04 22:22:17

标签: java android android-canvas

在android画布中,我定义了一个具有多种形状的剪裁区域(一个矩形和两个圆圈)。我想得到剪裁区域定义的内切矩形。

Canvas有一个名为getClipBounds()的方法,它给出了外接矩形,我该如何获得内接矩形?

enter image description here

编辑:以下是有关如何制作原始形状的一些信息:

  1. 首先使用Region.Op.INTERSECT
  2. 为大圆圈添加剪辑
  3. 然后使用Region.Op.INTERSECT
  4. 为垂直矩形添加剪辑
  5. 然后使用Region.Op.DIFFERENCE
  6. 为较小的圆圈添加剪辑

1 个答案:

答案 0 :(得分:1)

如果你知道半径和数量,这可以用数学方法确定。两个圆圈的中心。

使用getClipBounds()矩形找到两个圆的交点。 - 红色圆圈和getClipBounds()矩形之间的第二个最高交叉点保持矩形的上y坐标。 - 白色圆圈和getClipBounds()矩形之间的高交叉点保持矩形的下y坐标。 - x边界已由getClipBounds()矩形给出。

你可以从那里构建你的三个形状。