2013-06-25 4 views
1

J'ai un chemin de bézier qui vient dans mon programme ayant été créé à partir d'un fichier SVG et le problème est que c'est juste un contour. J'ai besoin d'effectuer une détection de coup, n'importe où à l'intérieur de la forme. Y a-t-il un équivalent de CGPathCreateCopyByStrokingPath pour le remplir? CGContextFillPath remplira un chemin dans un contexte quand il est dessiné.Chemin de Bézier en remplissant le chemin?

Répondre

2

+0

J'essaye de faire ceci mais j'obtiens toujours une erreur de contexte invalide. Voyez-vous quelque chose de mal avec cela? CGContextRef context = UIGraphicsGetCurrentContext(); CGContextAddPath (context, _path.CGPath); CGContextFillPath (contexte); CGPathRef myPath = CGContextCopyPath (contexte); –

+0

Je suppose que vous faites cela dans un '- (void) drawRect: (CGRect) rect' Si oui, l'affichage de l'ensemble drawRect serait utile. –

0

CGPathCreateCopyByStrokingPath prend un chemin et renvoie un nouveau chemin décrivant le contour de la forme qui serait formée lors du tracé de ce chemin. Il renvoie un CGPathRef. Donc, si vous pouvez effectuer une détection d'impact sur les résultats de cela, vous pouvez les effectuer directement sur votre chemin d'origine. Vous n'avez pas besoin d'une conversion.

En supposant que j'ai mal compris la question, vous pouvez utiliser CGPathContainsPoint pour tester si un point est à l'intérieur d'un chemin. Utilisez cela directement sur ce que vous obtenez de votre SVG.

Questions connexes