cocoa - 如何插入 NSBezierPath/UIBezierPath 并在位置检索正常向量?
问题描述
我有一个 NSBezierPath。我想以一种方式插入
interpolate (0) = starting point
interpolate (1) = end point
interpolate (0.5) = middlePoint.
我还想要一个在该点提供法线向量的函数。
我在搜索过程中看到了很多拼图,但没有人能迅速提供完整的解决方案。关键问题是:
- 如何确保 interpolate(0.5) 真的在路径的中间?我需要考虑整个路径的长度吗?它会一直是中间路径段的中间点吗?我不信。但是,欢迎使用良好的近似值!
- 如何在这样的点上检索法线向量?
提前谢谢了!
解决方案
基本上,我使用了这个库:https ://github.com/louisdh/bezierpath-length/blob/master/Source/BezierPath%2BLength.swift
它给了我一个很好的 x 近似值,以便在一个小的变化后进行插值。有了那个 x 和这个解释:https ://medium.com/@adrian_cooney/bezier-interpolation-13b68563313a我能够找到法线向量(最后一个插值沿切线,所以我只需要最后一个正交向量插值)。
我的代码还是有点乱。我以后可能会发布。但它有效!
推荐阅读
- excel - excel vba中具有多个条件的数据从一张表提取到另一张表
- jelastic - Jelastic:有支持 ed25519 ssh 密钥的计划吗?
- laravel - 同一个ip地址如何设置80端口的域名和子域名?
- python-3.x - Python 字典带有退出代码 0
- entity-framework - 实体框架核心多对多实现
- javascript - 如何将 numeric.js 导入我的 javascript 文件
- ruby - 如何将事件作为综合浏览量发送到谷歌分析
- mysql - 如何在 mySQL 中添加截止日期列并从 angular-node.js 获取日期
- java - 如何更改 ListView 中特定字符串的字体颜色和样式?
- python - URL 没有跳到 Django 中的正确数字