Java 2D を使用して、いくつかのベジエ曲線 ( CubicCurve2D
) をつなぎ合わせて「ブロブ」を作成しました。私が今直面している問題は、次の方法です。
- ブロブを特定の色で効率的に塗りつぶします。
- 特定の点がブロブ内にあるかどうかを効率的に判断します。
「内部性」を決定するための多数の方法を提供し、ビアを埋めることができるCubicCurve2D
実装に気付きました(これはのメソッドを使用してこれを行うと信じています)。 Shape
contains
Graphics2D
Shape
fill(Shape)
Shape
getPathIterator
Shape
これを考えると、私は自分のメソッドが基になるsgetPathIterator(AffineTransform)
を単純にリンクするコンポジットを作成できることを望んでいました。PathIterator
ただし、これは、NoSuchElementException
私の形状に複数の が含まれていると生成されますCubicCurve2D
。これを達成できたとしても、 aCubicCurve2D
は常に凸面で満たされ、「ブロブ」は凹面と凸面の曲線で構成されているため、期待どおりに機能するとは確信していません。「含む」問題は、ポイントがブロブ内に正当に存在する可能性がありますが、個々の曲線内には存在しない可能性があるため、さらに困難です。
- 私はこの問題に正しい方法で取り組んでいますか (実装しようとしています
Shape
か?)、または私が知らない慣用的な方法はありますか? 幾何学的形状を合成する問題はかなり一般的だと思っていたでしょう。 - この問題を解決する方法について何か提案はありますか?
前もって感謝します。