Utilisation de Java 2D J'ai corrigé plusieurs courbes de Bézier (CubicCurve2D
) pour créer un "blob". Le problème que je suis maintenant confronté est comment:Création d'une forme composite en Java 2D
- Remplissez efficacement le blob avec une couleur donnée.
- Déterminer efficacement si un point donné se trouve à l'intérieur du blob.
Je thst remarqué CubicCurve2D
outils Shape
qui fournit de nombreuses méthodes pour déterminer contains
« intériorité » et que Graphics2D
est en mesure de remplir un Shape
via le fill(Shape)
(que je crois utilise getPathIterator
méthodes de Shape
de le faire). Compte tenu de cela, j'espérais pouvoir créer un composite Shape
, grâce auquel ma méthode getPathIterator(AffineTransform)
relierait simplement les sous-jacents PathIterator
ensemble. Cependant, cela produit un NoSuchElementException
une fois que ma forme en contient plus d'un CubicCurve2D
. Même si je parviens à y parvenir, je ne suis pas convaincu que cela fonctionnera comme prévu car un CubicCurve2D
est toujours rempli sur le côté convexe, et mon "blob" est composé de courbes concaves et convexes. Le problème "contient" est encore plus difficile car un point peut légitimement se situer dans le blob mais pas dans l'une des courbes individuelles.
- Suis-je aborder ce problème de manière correcte (en train de mettre en œuvre
Shape
?) Ou est-il un moyen idiomatiques de le faire que je ne suis pas au courant de? J'aurais pensé que le problème de la composition de formes géométriques serait assez commun. - Est-ce que quelqu'un a des suggestions sur la façon de résoudre ce problème?
Merci d'avance.
Cool - Merci Pierre! Je vérifierai. – Adamski
Pierre - Merci beaucoup; Cela a fonctionné parfaitement. – Adamski