unity 控制点 贝塞尔曲线_在Unity中使用贝塞尔曲线_02

本文介绍了如何在Unity中实现多节点贝塞尔曲线的连续生成,通过指定曲线的端点和控制点,利用三阶贝塞尔公式创建平滑过渡的曲线。每个节点的控制点可以调节左右曲线曲率,实现灵活的曲线设计。文中还提供了BezierNodeObject、BezierData和BezierDrawLine等关键类的代码示例,用于存储节点数据、计算曲线坐标以及绘制曲线。
摘要由CSDN通过智能技术生成

前言

上一篇贝塞尔曲线的研究只能满足一段曲线的生成,今天将实现任意曲线生成(多节点连续曲线)。

设计原理

指定一段曲线的两个端点(p0,p3)以及两个控制点(p1,p2)然后使用三阶贝塞尔公式即可生成一段连续的曲线,将这一段曲线理解成第

n个节点到n+1个节点之间的三阶贝塞尔。

接下来就是创建N个节点了,每一个节点和其对应的下一个节点为一组曲线,最后一个节点不计算。

如何处理多节点之间的平滑过渡

每一个节点都有且仅有一个控制点,控制点左边的曲线相当于三阶贝塞尔中的p2点,而右侧则先计算其镜像的坐标作为公式中的p1,这样便可以做到一个控制点同时调节左右曲线的曲率,效果如下。

两条曲线中间节点的控制点

设计原理

BezierNodeObject :节点对象,包含一个控制点属性

public class BezierNodeObject : MonoBehaviour

{

public Transform BezierOffset;

private BezierNode bezierNode;

public BezierNode GetBezierNode()

{

bezierNode.nodeOffset = BezierOffset.position;

bezierNode.nodePos = transform.position;

return bezierNode;

}

private void Update()<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值