cocoa - 访问 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
解决方案
推荐阅读
- java - 无法使用 Play 核心库提供的支持应用内更新来更新应用
- typescript - 我们应该为 echarts5 使用哪些打字稿导入?
- python - 如何删除 Anaconda 中的所有旧版本包而不删除未使用的(但新的)包?
- javascript - 当数据更新时,一切都会重复
- javascript - 如何在 JavaScript 中获取文本类型输入中的值?
- javascript - 在 Javascript/Angular 中按小时对 epoc 时间戳进行分组
- python - Python:如何将十六进制字符串转换为普通字符串?
- html - ::after 和 ::before 元素绝对定位不会粘在身体的最底部
- android - Android 主题覆盖所有颜色
- python - 使用 TF2(对象检测 API)时,多个 GPU 是否允许更大的模型和批量大小?