unity 控制点 贝塞尔曲线_Unity中的曲线绘制(二)——贝塞尔曲线

本文介绍了如何在Unity中实现二次和三次贝塞尔曲线,通过BezierCurve类和OnSceneGUI方法绘制曲线,并提供了GetPoint、GetVelocity和GetDirection等方法,用于计算曲线上的点、速度和方向。此外,还讨论了从二次到三次贝塞尔曲线的升级过程。
摘要由CSDN通过智能技术生成

新建一个BezierCurve类,它包含三个点,同样定义Reset方法来初始化点的值,当绑定了BezierCurve脚本的对象创建或重置时,Unity editor会自动调用Reset方法。这个类代表了一个二次贝塞尔曲线。

1234567891011121314

using UnityEngine;public class BezierCurve : MonoBehaviour {public Vector3[] points;public void Reset () {points = new Vector3[] {new Vector3(1f, 0f, 0f),new Vector3(2f, 0f, 0f),new Vector3(3f, 0f, 0f)};}}

同样地,我们为curve写一个inspector,它和LineInspector颇为类似。为了减少重复代码,我们把显示点的代码放在单独的ShowPoint方法里,通过传入参数index来调用。将curve,handleTransform和handleRotation作为全局变量,这样在调用ShowPoint时不用再传一次参数。

贝塞尔曲线可以定义为一个参数方程。给定一个[0,1]区间内的参数t,就能得到曲线上的一个点,当t从0增至1,我们就能得到一条完整的贝塞尔曲线。

为了在场景中显示一条贝塞尔曲线,我们可以通过连续地画直线来模拟。做一个简单的循环,在点和点之间连续地绘制直线,并且将颜色设置为灰色。假设已经有GetPoint方法。

123456

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值