J'ai créé une forme personnalisée, essentiellement une collection de quatre objets Arc2D. Lorsque ces arcs sont dessinés, ils forment ce qui pourrait être considéré comme une forme d'étoile arrondie à quatre points, un peu comme un trèfle. Lorsqu'un arc se termine, l'autre commence. Ils forment un carré au centre. Alors imaginez, prenez un carré et dessinez des demi-cercles de chaque côté.Java - Remplissage d'une forme personnalisée
Je peux dessiner cette forme sur un objet Graphics2D, mais lorsque je la remplis, elle ne remplit que les arcs et non le carré central. Remplir ce carré interne est mon problème.
J'ai implémenté la méthode getPathIterator()
ci-dessous. J'ai également implémenté les méthodes . Mais cela ne fera que remplir les arcs.
J'ai essayé d'ajouter un Rectangle
. Lors du remplissage de la forme, le rectangle/carré sera rempli correctement, mais il dessine aussi le rectangle, ce qui devrait évidemment être attendu, mais certainement pas le résultat souhaité.
Alors, est-ce que quelqu'un a des idées sur la façon de "remplir" une telle forme?
public PathIterator getPathIterator(AffineTransform at) {
GeneralPath gp = new GeneralPath
for (Arc2D arcs : this.arcs) {
gp.append(arc, false);
}
return gp.getPathIterator(at);
}
Quel est le type de fermeture de vos instances de 'Arc2D'? – trashgod