如何插入NSBezierPath / UIBezierPath并在位置检索普通Vector?

问题描述 投票:0回答:1

我有一个NSBezierPath。我想以某种方式插入

interpolate (0) = starting point
interpolate (1) = end point
interpolate (0.5) = middlePoint. 

我想要一个在该点提供法向量的函数。

我在搜索过程中看到了很多拼图,但没有人在swift中提供完整的解决方案。关键问题是:

  • 如何确保插值(0.5)确实位于路径的中间?我是否需要考虑整体路径的长度?它总是中间路径段的中间点吗?我不信。但是,欢迎良好的近似值!
  • 如何在这样的点上检索法线向量?

提前谢谢了!

cocoa cocoa-touch interpolation uibezierpath nsbezierpath
1个回答
0
投票

基本上,我使用这个库:https://github.com/louisdh/bezierpath-length/blob/master/Source/BezierPath%2BLength.swift

它给了我一个很好的近似x,这是在一个小的变化后进行插值所需要的。有了这个x和这个解释:https://medium.com/@adrian_cooney/bezier-interpolation-13b68563313a我能够找到法向量(最后一个插值是沿着切线,所以我只需要来自最后一次插值的正交向量)。

我的代码仍然有点凌乱。我可能稍后发表。但它的确有效!

© www.soinside.com 2019 - 2024. All rights reserved.