【问题标题】:How to interpolate an NSBezierPath/UIBezierPath and retrieve normal Vector at location?如何插入 NSBezierPath/UIBezierPath 并在位置检索正常向量?
【发布时间】:2019-07-17 00:11:05
【问题描述】:

我有一个 NSBezierPath。我想以一种

的方式进行插值
interpolate (0) = starting point
interpolate (1) = end point
interpolate (0.5) = middlePoint. 

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

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

  • 如何确保 interpolate(0.5) 确实位于路径的中间?我需要考虑整个路径的长度吗?它会一直是中间路径段的中间点吗?我不信。但是,欢迎使用良好的近似值!
  • 如何检索此类点上的法线向量?

非常感谢!

【问题讨论】:

    标签: cocoa cocoa-touch interpolation uibezierpath nsbezierpath


    【解决方案1】:

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

    它为我提供了一个很好的 x 近似值,以便在进行小幅更改后进行插值。有了那个 x 和这个解释:https://medium.com/@adrian_cooney/bezier-interpolation-13b68563313a 我能够找到法线向量(最后一个插值沿着切线,所以我只需要最后一个插值的正交向量)。

    我的代码还是有点乱。我以后可能会发布。但它有效!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 2013-09-23
      • 2021-07-24
      • 2019-11-07
      • 2015-05-30
      • 2021-01-19
      • 2012-03-22
      相关资源
      最近更新 更多