Wie fülle ich die Farbe in weißen Flächen mit dem Touch-Event?

8

möchte alle weißen Räume mit Touch-Events

füllen

Im Moment kann ich Kreise füllen, indem ich Farben aus dem Picker auswähle, aber wie man den intranierten Teil mit einer anderen Farbe füllt ......

%Vor%     
beryllium 28.12.2011, 09:23
quelle

1 Antwort

1

Hier gibt es zwei Aufgaben, die erste ist zu erkennen, welche Region berührt wurde, die zweite ist, diese Region zu füllen. Beide erfordern, dass Sie die Kreisschnittpunkte des obigen Bildes mithilfe der Trigonometrie berechnen und deren Positionen kennen.

Eine einfache Lösung für die Erkennung des Berührungsbereichs wäre es, zu prüfen, ob die Berührung in einem der Kreise enthalten ist. Dies kann leicht berechnet werden, indem die Entfernung zum Berührungspunkt aus der Kreismitte berechnet wird, wenn sie kleiner als der Radius ist es ist innerhalb des Kreises. Wenn es sich in mehr als einem Kreis befindet, wissen Sie, dass es in diesen Schnittbereich gehört. Wenn es innerhalb keine Kreise ist, aber die x-Komponente zwischen dem Mittelpunkt eines linken Kreises und einem rechten Kreis liegt, muss es in dem Bereich zwischen allen Kreisen sein. Andernfalls muss der Berührungspunkt außerhalb aller Kreise liegen.

Um die verschiedenen Bereiche des obigen Bildes zu füllen, können Sie Pfade erstellen, die die Bereiche enthalten, die Sie ausfüllen müssen, und sie mit CGContextFillPath füllen. Etwas wie das:

%Vor%

Sie können dies für beliebig viele Pfade wiederholen. Sie können die zu verwendenden Pfadbögen aus den Kreisschnittpunkten und Radien berechnen.

    
Tark 22.02.2012 22:49
quelle

Tags und Links