NSBezierPath et fill
fouf
Membre
Bonjour à tous.
Dans Géodes (ex GeoX) j'implémente les polygones. Pour l'instant, j'arrive à les créer et à les dessiner sans problème. Maintenant je voudrais pouvoir les remplir d'une belle couleur. Comme j'utilise déjà NSBezierPath pour dessiner le polygone lui même, je me suis dis, "Chouette, je vais pouvoir utiliser la méthode fill pour le remplir. Mais non, il ne se remplit pas.
J'ai essayer plusieurs choses parmis lesquelles, enlever le stroke, change le NSWindingRule, mais rien à faire. Par contre, quand je fais un fillRect: ca marche bien.
Voici le code que j'utilise :
Sauriez-vous pourquoi l'intérieur du polygone n'est pas colorié alors qu'il est dessiné.
Merci d'avance :fouf):
Dans Géodes (ex GeoX) j'implémente les polygones. Pour l'instant, j'arrive à les créer et à les dessiner sans problème. Maintenant je voudrais pouvoir les remplir d'une belle couleur. Comme j'utilise déjà NSBezierPath pour dessiner le polygone lui même, je me suis dis, "Chouette, je vais pouvoir utiliser la méthode fill pour le remplir. Mais non, il ne se remplit pas.
J'ai essayer plusieurs choses parmis lesquelles, enlever le stroke, change le NSWindingRule, mais rien à faire. Par contre, quand je fais un fillRect: ca marche bien.
Voici le code que j'utilise :
<br />- (void)updatePath<br />{<br /> [_path release];<br /> _path = [NSBezierPath bezierPath];<br /> <br /> NSEnumerator *e = [_pointsArray objectEnumerator];<br /> GPoint *point;<br /> NSPoint coords;<br /> <br /> [_path moveToPoint:[[e nextObject] point]];<br /> <br /> while(point = [e nextObject]){<br /> coords = [point point];<br /> [_path lineToPoint:coords];<br /> [_path moveToPoint:coords];<br /> }<br /> <br /> [_path lineToPoint:[[_pointsArray objectAtIndex:0] point]];<br /> [_path closePath];<br /> _bounds = [_path bounds];<br /> //[_path setWindingRule:NSEvenOddWindingRule]; ca ne change rien<br /> [_path retain];<br />}<br /><br />- (void)draw<br />{<br /> [_path stroke];<br /> [[NSColor yellowColor] set];<br /> [_path fill];<br /> //[NSBezierPath fillRect:_bounds]; ca dessine bien le rectangle en jaune<br />}<br />
Sauriez-vous pourquoi l'intérieur du polygone n'est pas colorié alors qu'il est dessiné.
Merci d'avance :fouf):
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
[tt][_path moveToPoint:coords];[/tt]
Elle fractionne ton path en plusieurs "subpaths", constitués chacun d'une ligne. Et tu le sais comme moi, une ligne peut se tracer, mais ne peut certainement pas se remplir.
[tt][_path lineToPoint:_pointsArray objectAtIndex:0] point;[/tt]
Ne sert à rien à cause du closePath.