U3D游戏中的贝塞尔曲线以及其在Unity中的实现

定义:一般的,在平面直角坐标系中,如果曲线上任意一点的坐标xy都是某个变数't’的函数{x=f(t),y=g(t)并且对于't‘的每一个允许值,由上述方程组所确定的点Mx,y)都在这条曲线上,那么上述方程则为这条曲线的参数方程,联系xy的变数't‘叫做变参数,简称参数,相对于参数方程而言,直接给出点的坐标间关系的方程叫做普通方程。(注意:参数是联系变数xy的桥梁,可以是一个有物理意义和几何意义的变数,也可以是没有实际意义的变数。例如:的参数方程 x=a+r cosθ y=b+r sinθθ [02π) (a,b) 为圆心坐标,r 为圆半径,θ 为参数,(x,y) 为经过点的坐标。椭圆的参数方程 x=a cosθ  y=b sinθ(θ∈[0,2π)) a为长半轴长 b为短半轴长 θ为参数。

通用的贝塞尔曲线:一条贝塞尔曲线是由一组定义的控制点 P0到 Pn,在 n 调用它的顺序 (n = 1 为线性,2 为二次,等.)。第一个和最后一个控制点总是具有终结点的曲线;然而,中间两个控制点 (如果有的话) 一般不会位于曲线上 。贝塞尔曲线返回点的贝塞尔函数,使用线性插值的概念作为基础。

1.线性贝塞尔贝:塞尔曲线包含两个控制点即 n = 2 称为线性的贝塞尔曲线  。给定点P0、P1,线性贝兹曲线只是一条两点之间的直线。这条线由下式给出:其等同于线性插值。

2.二次贝塞尔公式:贝塞尔曲线包含三个控制点即 n = 3 称为二次贝塞尔曲线。二次方贝兹曲线的路径由给定点P0、P1、P2控制,这条线由下式给出:

3.三次贝塞尔方程:贝塞尔曲线包含四个控制点即 n = 4,所以称为三次贝塞尔曲线。P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝兹曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是用来充当控制点。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。曲线的参数形式为:

4.一般参数形式的贝塞尔方程:

 N阶贝兹曲线可如下推断。给定点P0、P1、…、Pn,其贝兹曲线即:

如上公式可如下递归表达: 用表示由点P0、P1、…、Pn所决定的贝兹曲线。

注意:通过两个低阶的贝塞尔曲线插值的堆叠总能够获得更高阶的贝塞尔曲线,通俗的来说通过对两条低阶的贝塞尔曲线插值,你可以求得一条高一阶的贝塞尔曲线。

比如:二次贝塞尔曲线是点对点的两个线性贝塞尔曲线的线性插值,三次贝塞尔曲线是两条二次贝塞尔曲线的线性插值。

http://www.cnblogs.com/msxh/p/6270468.html?utm_source=itdadao&utm_medium=referra

https://download.csdn.net/download/weixin_39407066/10927258 源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity贝塞尔曲线是通过贝塞尔曲线的数学原理在Unity游戏引擎实现的一种曲线效果。在Unity贝塞尔曲线可以用来创建平滑的曲线路径,并用于生成动画效果、粒子效果等。在Unity,常用的贝塞尔曲线有一阶贝塞尔曲线、二阶贝塞尔曲线和三阶贝塞尔曲线。 一阶贝塞尔曲线是一条线性函数,通过两个控制点来定义一条直线段。二阶贝塞尔曲线是由两个一阶贝塞尔曲线的线性插值得到的,它通过三个控制点来定义一条平滑的曲线。而三阶贝塞尔曲线则是由两个二阶贝塞尔曲线的线性插值得到的,它通过四个控制点来定义一条更加复杂的曲线。 在Unity,我们可以通过编写C#代码来实现贝塞尔曲线的计算和绘制。使用LineRenderer组件可以绘制贝塞尔曲线的路径,可以通过调整控制点的位置来改变曲线的形状。同时,我们还可以使用鼠标交互来控制曲线的控制点,实现动态的曲线效果。 总之,Unity贝塞尔曲线是一种通过数学计算和绘制技术实现的曲线效果,它可以用于游戏开发的动画、粒子效果等场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【游戏开发进阶】玩转贝塞尔曲线,教你在Unity画Bezier贝塞尔曲线(二阶、三阶),手把手教你推导公式](https://blog.csdn.net/linxinfa/article/details/116808549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Unity 工具类 之 贝塞尔 Bezier 曲线](https://blog.csdn.net/u014361280/article/details/103871840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值