4

Android キャンバスで、多くの形状 (長方形と 2 つの円) を持つクリッピング領域を定義しました。クリッピング領域で定義された内接長方形を取得したい。

キャンバスにはgetClipBounds()、外接する四角形を取得するメソッドがありますが、代わりに内接する四角形を取得するにはどうすればよいですか?

ここに画像の説明を入力

編集:元の形状の作成方法に関する情報は次のとおりです。

  1. 最初に大きな円のクリップを追加しますRegion.Op.INTERSECT
  2. 次に、垂直の長方形のクリップを追加しますRegion.Op.INTERSECT
  3. 次に、小さな円のクリップを追加しますRegion.Op.DIFFERENCE
4

1 に答える 1

1

両方の円の半径と中心がわかっている場合、これは数学的に決定できます。

getClipBounds() 長方形で円の交点を 2 つ見つけます。-赤い円と getClipBounds() 長方形の間の 2 番目に高い交点は、長方形の上部の y 座標を保持します。-白い円と getClipBounds() の長方形の間の高い交点は、長方形の下側の y 座標を保持します。- x 境界は、getClipBounds() 長方形によって既に指定されています。

そこから 3 つの図形を作成できます。

于 2012-11-04T22:45:23.350 に答える