CGContextDrawAngleGradient?

8

Ich tauche meine Füße in ein paar weitere Grafiken von Core Graphics und versuche einen boshaft aussehenden metallischen Knopf nachzubilden, und ich bin auf ein Thema gestoßen, das wahrscheinlich ein Hindernis darstellt.

Es scheint keine Möglichkeit zu geben, angle Farbverläufe in Core Graphics zu zeichnen. Ich sehe, es gibt CGContextDrawRadialGradient() und CGContextDrawLinearGradient() , aber es gibt nichts, was ich sehen würde, die mir erlauben würde, einen Winkelgradienten zu zeichnen. Kennt jemand eine Problemumgehung oder ein etwas verstecktes Framework, um dies zu erreichen, ohne den Regler in eine Image-Datei vorzurendern?

AngleGradientKnob http://dl.dropbox.com/u/3009808/AngleGradient.png .

    
Greg Combs 01.08.2011, 22:59
quelle

2 Antworten

11

Das ist irgendwie zusammengewürfelt, aber es ist der Ansatz, den ich wahrscheinlich machen würde. Dies erzeugt einen Winkelgradienten, indem Sie ihn direkt in eine Bitmap zeichnen, indem Sie eine einfache Triggerung verwenden und ihn dann auf einen Kreis zuschneiden. Ich erstelle ein Raster aus Speicher mit einem Graustufen-Farbraum, berechne den Winkel von einem bestimmten Punkt zum Mittelpunkt und färbe ihn dann basierend auf einer periodischen Funktion zwischen 0 und 255. Du könntest das natürlich auch auf RGBA-Farbe erweitern .

Natürlich würden Sie dies zwischenspeichern und mit der Mathematik spielen, um die gewünschten Farben zu erhalten. Dies läuft derzeit von Schwarz bis Weiß, was nicht so gut aussieht, wie Sie möchten.

%Vor%     
Rob Napier 02.08.2011, 05:21
quelle
3

Um zu erweitern, was in den Kommentaren zu der akzeptierten Antwort steht, hier ist der Code zum Generieren eines Winkelgradienten mit Core Image. Dies sollte in iOS 8 oder höher funktionieren.

%Vor%

Dies erzeugt das folgende Bild:

    
deltacrux 30.11.2015 05:15
quelle