4

在 android canvas 中,我定义了一个具有许多形状(一个矩形和 2 个圆形)的剪切区域。我想得到由剪切区域定义的内接矩形。

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

在此处输入图像描述

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

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

1 回答 1

1

如果您知道两个圆的半径和中心,这可以通过数学方式确定。

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

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

于 2012-11-04T22:45:23.350 回答