首页 > 解决方案 > 访问 NSBezierPath 的元素

问题描述

我刚刚开始学习如何使用 NS 类。现在我正试图弄清楚如何索引和访问 NSBezierPath 的某些部分。

在下面的代码片段中,有一个包含 12 个节点和 4 个段的圆形路径。我希望能够知道如何索引和循环遍历每个节点/段并应用厚度/颜色。我可以告诉代码中组成段的部分,但我不知道如何访问它们。

简单地说,作为一个例子,我希望能够: - 选择一条路径 - 选择它的第三段 - 给它一些厚度 - 将它涂成蓝色

我一直在查看 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

我将非常感谢任何帮助和示例,以更好地理解如何使用这些方法并应用它们。

片段:

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

标签: cocoaappkitnsbezierpath

解决方案


推荐阅读