我正在尝试从 Unity 中的点列表生成 Catmull-Rom 曲线。因为我不想在曲线的点之间存储点,所以我选择使用一种可以根据时间计算 Catmull-Rom 曲线中位置的解决方案。这里和这里有一些这样的例子,但是,它们都没有展示如何实现 alpha。我想要实现 alpha 的原因是我可以有能力在向心、弦和均匀的 Catmull-Rom 曲线之间切换。private Vector3 GetCatmullRomPosition(float t, Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float alpha){ Vector3 a = 2f * p1; Vector3 b = p2 - p0; Vector3 c = 2f * p0 - 5f * p1 + 4f * p2 - p3; Vector3 d = -p0 + 3f * p1 - 3f * p2 + p3; return 0.5f * (a + (b * t) + (c * t * t) + (d * t * t * t));}
1 回答
- 1 回答
- 0 关注
- 210 浏览
添加回答
举报
0/150
提交
取消