链接3D贝塞尔曲线段的路径

时间:2014-08-19 12:10:01

标签: unity3d curve bezier

我在Unity3D中编写一个简单的路径编辑器,存储一系列点,进/出切线,并在每对点之间绘制一个bezier:

enter image description here

路径的数据:

enter image description here

我发现切线不像我期望的那样表现。我非常习惯于图像编辑应用,其中切线实际上与曲线相切:

enter image description here

但是如果你回头看我的第一张图片,你可以看到切线必须移动到更垂直的角度才能获得平滑的形状。

此时我认为有几种可能性:

  1. 我的代码中出现了一个愚蠢的错误。
  2. 我对beziers的理解很差,而且我在假设我时不正确 可以简单地以这种方式链接贝塞尔人。
  3. 也许我的数据在某种程度上与Unity的bezier绘图不相容(我简要介绍了线性,立方,二次等beziers)。
  4. 有没有人对我如何改善贝塞尔人的使用有任何建议?

    谢谢, VES

1 个答案:

答案 0 :(得分:1)

好的,我想出了问题。

统一文件非常不清楚切线应该是什么。在我的代码中,我使用局部向量作为切线,当DrawBezier方法实际上需要切点的绝对位置时。

我已经能够通过执行以下操作来修复曲线图:

Handles.DrawBezier(pointA.position,
                   pointB.position,
                   pointA.position + pointA.outTangent,
                   pointB.position + pointB.inTangent,
                   Handles.color,
                   null,
                   1.0f);

enter image description here

当我理解Heisenbug对立方贝塞尔曲线中的4个点所说的话时,解决方案是有意义的。非常感谢大家!

相关问题