CGPath mit Gliederung

8

Ich versuche, einen CGPath zu zeichnen, der einen Strich für seinen Strich hat.

Grundsätzlich möchte ich mit CGPath eine Linie zeichnen. Ich möchte dann zurückgehen und Linien auf beiden Seiten des letzten CGPaths zeichnen, was zu dem Ergebnis führt, dass es sich um Konturen handelt.

Diese Linie kann sich biegen und wenden, aber ich brauche immer die zwei Linien auf der Außenseite, um zu folgen.

BEARBEITEN: Ich muss die Mitte der Linie transparent machen können, aber die Umrisse müssen schwarz sein.

    
endy 16.01.2013, 21:21
quelle

2 Antworten

13

Verwenden Sie CGPathCreateCopyByStrokingPath , um einen neuen Pfad zu erstellen, indem Sie den alten Pfad in einer bestimmten Breite streichen. Zeichnen Sie dann Ihren neuen Pfad mit kCGPathFillStroke .

%Vor%     
Rob Napier 16.01.2013, 21:37
quelle
5

Die einfachste Lösung wäre, den Pfad zweimal zu streichen. Zuerst mit Schwarz bei einer größeren Strichbreite und dann den gleichen Pfad erneut mit der blauen Farbe mit einer etwas kleineren Strichbreite streichen.

Bearbeiten:
Wenn ich mich richtig erinnere, können Sie mit CGPathCreateCopyByStrokingPath(...) einen neuen Pfad erstellen, den Sie dann streichen und füllen können. Dann könnten Sie halbtransparente Farben verwenden.

Aus der Dokumentation:

  

CGPathCreateCopyByStrokingPath

     

Erstellt eine kopierte Kopie eines anderen Pfades.

%Vor%      

Parameter
Pfad
Der Pfad zum Kopieren.

     

transformieren
Ein Zeiger auf eine affine Transformationsmatrix oder NULL, wenn keine Transformation benötigt wird. Wenn angegeben, wendet Quartz die Transformation auf Elemente des konvertierten Pfades an, bevor sie zum neuen Pfad hinzugefügt werden.

     

lineWidth
Die zu verwendende Linienbreite in Benutzerraumeinheiten. Der Wert muss größer als 0 sein.

     

lineCap
Eine Linienobergrenze style constant-kCGLineCapButt (die Standardeinstellung), kCGLineCapRound oder kCGLineCapSquare. Siehe "CGLineCap".

     

lineJoin
Eine Linie join value-kCGLineJoinMiter (Standard), kCGLineJoinRound oder kCGLineJoinBevel. Siehe "CGLineJoin".

     

miterLimit
Das zu verwendende Gehrungslimit.

    
David Rönnqvist 16.01.2013 21:24
quelle