2

1 つのグラフに 2 つのレイヤーのグラフを描画していますCustomPaint。1 つ目は、2 つ目のレイヤーの半分以上を塞ぎます。

問題

現在、最初のデータをペイントし、次に 2 つPaintの を使用して 2 番目のデータをそのblendModeセットでペイントします。

これにより、2 つのデータのオーバーレイが作成され、ブレンドされます。しかし、ブレンドは必要ありません。違いの領域を 2 番目Paintの 、つまり補完的な合成ビューを使用してペイントするだけです。

パフォーマンスの面では、遮られた部分の描画を避けるために、ブレンドに内部最適化があるかどうかはわかりません。

参考画像

ここに画像の説明を入力

これらのデータ グラフはすべてブレンドされていることに注意してください。ただし、オーバーラップした部分はパフォーマンスのためにまったく描画されません。

試み

新しいパスを使用して違いを描画することもできますが、これが最も簡単な方法かどうかはわかりません。

確認RepaintBoundaryしましたが、これはまれなデータ変更を処理するウィジェットであり、ここで必要なものではありません。

同様Overlayにスタンドアロンのウィジェットのように見えるので、 に合わせる方法がわかりませんCustomPaint

質問

必要なオクルージョンを実現する標準的な方法はありますか?

4

0 に答える 0