Я только начинаю учиться работать с NS-классами.
Сейчас я пытаюсь выяснить, как можно индексировать и получать доступ к определенным частям NSBezierPath.
В приведенном ниже фрагменте есть круговой путь, который имеет 12 узлов и 4 сегмента. Я хотел бы знать, как индексировать и циклически проходить через каждый из этих узлов / сегментов и применять толщину / цвет. Я могу сказать части кода, которые составляют сегменты, но я не знаю, как получить к ним доступ.
Проще говоря, я хотел бы иметь возможность:
- выберите путь
- выберите 3-й сегмент
- дать ему толщину
- цвет синий
Я просматривал документацию AppKit, и мне кажется, что мне нужны следующие коды, но я, честно говоря, понятия не имею, как их применять.
func element(at index: Int) -> NSBezierPath.ElementType
func element(at index: Int,
associatedPoints points: NSPointArray?) -> NSBezierPath.ElementType
https://developer.apple.com/documentation/appkit/nsbezierpath/1520751-element?changes=_5
Я был бы очень признателен за любую помощь и примеры, чтобы лучше понять, как работать с этими методами и применять их.
SNIPPET:
for path in layer.paths:
bp = path.bezierPath
bp.setLineWidth_(5)
NSColor.blueColor().set()
bp.stroke()
print bp
ПЕЧАТАЕТ ЭТО:
Path <0x60400553f0e0>
Bounds: {{157, 0}, {286, 286}}
Control point bounds: {{157, 0}, {286, 286}}
300.000000 0.000000 moveto
379.000000 0.000000 443.000000 64.000000 443.000000 143.000000 curveto
443.000000 222.000000 380.000000 286.000000 300.000000 286.000000 curveto
221.000000 286.000000 157.000000 222.000000 157.000000 143.000000 curveto
157.000000 64.000000 221.000000 0.000000 300.000000 0.000000 curveto
closepath
300.000000 0.000000 moveto