На OSX, как делают меня заливка градиента штрих пути?

Используя изобилие рисования функций в Какао или Кварце довольно легко потянуть пути и заполнить их использующий градиент. Я, может казаться, не нахожу приемлемый путь однако, 'не перечеркиваю '-draw путь с шириной строки нескольких пикселей и не заполняю этот штрих с помощью градиента. Как это сделано?

Править: По-видимому, вопрос не был достаточно ясен. Спасибо за ответы до сих пор, но я уже понял это. То, что я хочу сделать, является этим:

squares
(источник: emle.nl)

Левый квадрат является NSGradient, оттянутым в пути, сопровождаемом сообщением штриха пути. Право - то, что я хочу сделать; я хочу заполнить штрих с помощью градиента.

15
задан Glorfindel 24 July 2019 в 23:07
поделиться

2 ответа

Если преобразовать NSBezierPath в CGPath, можно использовать метод CGContextReplacePathWithStrokedPath() для получения контура, который является контуром контура со штрихами. В превосходном GCDrawKit Грэма Кокса есть метод категории -strokedPath на NSBezierPath, который сделает это за вас без необходимости спускаться в Core Graphics.

После того как у вас есть очерченный контур, вы можете заполнить его NSGradient.

20
ответ дан 1 December 2019 в 00:49
поделиться

Мне кажется, я не могу найти приемлемый способ «обводки» - нарисовать путь с шириной линии в несколько пикселей и заполнить эту обводку градиентом. Как это делается?

[Исходный ответ заменен следующим]

А, понятно. Вы хотите применить градиент к обводке.

Для этого вы используете режим наложения. Я объяснил, как это сделать, отвечая на другой вопрос . Вот список шагов, адаптированных к вашей цели:

  1. Создайте слой прозрачности .
  2. Обведите контур любым непрозрачным цветом.
  3. Установите режим наложения на источник в .
  4. Нарисуйте градиент.
  5. Завершите слой прозрачности.
14
ответ дан 1 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: