RT,馬三最近在參與一款足球游戲的開發(fā),其中涉及到足球的各種運(yùn)動軌跡和路徑,比如射門的軌跡,高吊球,香蕉球的軌跡。最早的版本中馬三是使用物理引擎加力的方式實(shí)現(xiàn)的足球各種運(yùn)動,后來的版本中使用了根據(jù)物理學(xué)公式手動計算位置和物體速度的方式實(shí)現(xiàn),現(xiàn)在這個版本中使用的是DoTween+貝塞爾曲線調(diào)節(jié)來實(shí)現(xiàn)。(關(guān)于它們之間的各種優(yōu)缺點(diǎn)我們會在以后單獨(dú)開一篇博客來探討,屆時也會放出源代碼互相學(xué)習(xí)下)好了,言歸正傳,今天馬三就來和大家一起學(xué)習(xí)一下游戲中的貝塞爾曲線以及其在Unity中如何實(shí)現(xiàn)。

回到頂部

一、簡介

貝塞爾曲線是最基本的曲線,一般用在計算機(jī) 圖形學(xué)和 圖像處理。貝塞爾曲線可以用來創(chuàng)建平滑的曲線的道路、 彎曲的路徑就像 祖瑪游戲、 彎曲型的河流等。

        一條貝塞爾曲線是由一組定義的控制點(diǎn) P0到 Pn,在 n 調(diào)用它的順序 (n = 1 為線性,2 為二次,等.)。第一個和最后一個控制點(diǎn)總是具有終結(jié)點(diǎn)的曲線;然而,中間兩個控制點(diǎn) (如果有的話) 一般不會位于曲線上 。

  (1)貝塞爾曲線包含兩個控制點(diǎn)即 n = 2 稱為線性的貝塞爾曲線

 ?。?)貝塞爾曲線包含三個控制點(diǎn)即 n = 3 稱為二次貝塞爾曲線

 ?。?)貝塞爾曲線包含四個控制點(diǎn)即 n = 4,所以稱為三次貝塞爾曲線。

   貝塞爾曲線返回點(diǎn)的貝塞爾函數(shù),使用線性插值的