




摘要:文章建立了貝塞爾曲線路徑優化模型,利用Python編程計算“板凳龍”龍頭的最大前進速度,使得舞龍隊各把手的速度均不超過2 m/s。首先,從速度與路徑曲率的關系和節點速度的約束條件建立數學模型;其次對已經建立好的數學模型進行優化,利用曲率自適應速度模型和多質點系統與彈簧—阻尼模型,可求得龍頭的最大前進速度是1 m/s;最后,利用貝塞爾曲線進一步優化了掉頭路徑的平滑性,使得龍頭能夠以1.5 m/s順利完成掉頭,確保所有節點的速度不超過2 m/s。通過貝塞爾曲線路徑優化模型提高了“盤龍”的可觀賞性。
關鍵詞:貝塞爾曲線;路徑曲率;掉頭路徑;路徑優化模型
中圖分類號:TP311" " " 文獻標識碼:A
文章編號:1009-3044(2025)17-0048-03
開放科學(資源服務) 標識碼(OSID) :
0 引言
在我國浙江和福建等地區,有這樣的傳統民俗活動——將幾十條甚至幾百條板凳連接在一起形成一條蜿蜒曲折、氣勢磅礴的板凳龍,隨后人們按照螺旋狀從龍頭到龍身再到龍尾進行盤龍,從而呈現出良好的視覺效果,此外,盤龍過程中人們的行進速度越快并且呈現聚集程度越緊湊,則帶給觀眾的體驗感越好。
lt;E:\飛翔打包文件目錄003\電腦2025年06月中第十七期打包文件\9.02xs202517\Image\image39.pnggt;
圖1 龍頭的俯視圖
lt;E:\飛翔打包文件目錄003\電腦2025年06月中第十七期打包文件\9.02xs202517\Image\image40.pnggt;
圖2" 龍身和龍尾的俯視圖
某板凳龍共由223節板凳首尾相連而成,其中龍頭(如圖1所示) 是第1節,后面221節形成龍身,龍尾為最后1節。所有板凳均為30 m寬,龍頭長341 m,而龍身和龍尾(如圖2所示) 的長度均為220 [m]。每節板凳上都有兩個孔,孔徑為5.5 m,孔中心距離最近的板頭27.5 m。相鄰的兩節板凳通過把手相連(如圖3所示) 。
“板凳龍”,又稱“盤龍”,舞龍隊要在有限空間內進行表演,沿著設定的路徑行進,要求龍頭保持恒定速度,且在掉頭過程中舞龍隊的各個節點(包括龍頭、龍尾及龍身各節板凳) 的速度不能超過2 m/s。本文的目標就是確定這個過程中龍頭的最大行進速度,使得所有節點的速度均不超過2 m/s,求解這個問題。
1 貝賽爾曲線(Bézier) 簡介
1.1 貝賽爾曲線概述
貝塞爾曲線(如圖4所示) 是一類別具一格的曲線。任意給出四個點的坐標,它都能夠精準勾勒出一條極為順滑的曲線?;仡櫰浒l展軌跡,早期鉆研貝塞爾曲線的學者,采取的是從已知曲線的參數方程入手,逆向推導出四個特定點位置的方式,進而構思出了這種獨特的矢量曲線繪制手段。貝塞爾曲線格外引人注目的原因,在于其獨有的“皮筋效應”。簡單來說,當這些點依照特定規則移動時,曲線就像被皮筋拉扯一般,會發生相應的形變,進而產生強烈的視覺震撼效果。1962年,法國杰出數學家Pierre Bézier首次對這種矢量曲線繪制方法展開全面且深入的研究,并且給出了詳細的計算表達式。也正因如此,按照該公式繪制而成的曲線,便以他的姓氏來命名,也就是貝塞爾曲線。
1.2 貝賽爾曲線公式
1) 線性公式。
若給定兩個點[P0]與[P1],連接[P0]與[P1]構成一條直線,這條直線即為線性貝賽爾曲線。這條直線可通過以下公式得出[1-6]:
[B(t)=P0+(P1-P0)t=(1-t)P0+tP1,t∈[0,1]] (1)
且其等同于線性插值。
2) 二次方公式。
二次方貝賽爾曲線的軌跡,是依據給定的點[P0]、[P1]、[P2],通過特定的函數[B(t)]的運算而確定并描繪出來的[7-9]:
[Bt=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1]] (2)
TrueType字形采用了由貝茲樣條構建的二次貝塞爾曲線,以此來實現字體輪廓的精確塑造。
3) 三次方公式。
在平面或三維平面里,[P0]、[P1]、[P2]、[P3]這四個點界定出了三次方貝茲曲線。該曲線從[P0]起始,朝著[P1]的方向延伸,隨后又受[P2]的影響,最終抵達[P3]。需要注意的是,這條曲線通常不會直接穿過[P1]與[P2],這兩點存在的意義主要是為曲線的走向提供方向指引。而[P0]和[P1]之間的距離遠近,會對曲線在轉向趨近最終目標前,沿起始方向延展的“距離長短”起到決定性作用。
曲線的參數形式為:
[B(t)=P0(1-t)3+3P1t(1-t)2+3P2t2(1-t)+P3t3,t∈[0,1]] (3)
PostScript、Asymptote和Metafont等現代成像系統,借助由貝賽爾樣條構建的三次貝賽爾曲線,實現對曲線輪廓的精準描繪。
4) 一般參數公式。
[n]階貝賽爾曲線可按如下方式推導得出。設有給定的點[P0]、[P1]、...、[Pn],那么由這些點所確定的貝賽爾曲線即為:
[B(t)=i=0nniPi(1-t)n-iti]
[=n0P0(1-t)n-1t1+...+nn-1Pn-1(1-t)1tn-1+nnPn(1-t)0tn,t∈[0,1]] (4)
上述公式能夠以遞歸形式表述為:可由點[P0]、[P1]、...、[Pn]所確定出的貝賽爾曲線。
2 問題分析
本文基于高階貝塞爾曲線通過數學建模和幾何優化,解決舞龍隊在盤入、掉頭及盤出過程中的路徑設計與速度控制問題(如圖5所示) 。
首先需要建立舞龍隊各節點的運動模型,并計算在不同路徑和位置下的速度變化。由于舞龍隊的運動受路徑曲率的影響,尤其是在掉頭區域,速度的變化會隨曲率的變化而發生變化。因此,建立模型的核心在于確定路徑上各節點速度與龍頭速度之間的關系,并找到滿足速度限制的龍頭最大速度。
在實際生活中,龍頭的速度要始終保持在1 [m/s]的速度會極大程度的降低舞龍的觀賞性,于是本文對龍頭掉頭盤出的路徑進行優化,建立新的模型以提高龍頭前進的速度,提高舞龍的觀賞性。為了進一步優化舞龍隊的掉頭路徑,并在保持速度限制的前提下提高龍頭的最大速度,本文采用更高階的貝塞爾曲線。通過增加控制點,使路徑的曲率變化更加平滑,從而減少節點在路徑上急轉彎時的速度波動。
本文通過貝塞爾曲線設計并優化了掉頭路徑,確定了在保證舞龍隊所有節點速度不超過2[ m/s]的前提下,龍頭的最大行進速度。結果表明,使用更高階的貝塞爾曲線可以顯著改善路徑的平滑性,并且提高了整體運動的效率。
3 模型的建立
3.1 利用速度與路徑曲率數學模型求解龍頭最大前進速度
本文在進行模型建立的過程中需要明確以下兩點:
1) 速度與路徑曲率的關系。
在舞龍隊行進過程中,各節點的速度與路徑曲率[k]相關。路徑的曲率[k]是路徑形狀變化的度量,它決定了不同路徑段上節點的加速或減速情況。曲率的定義為[10-11]:
[k=1r] (5)
式中:[r]是路徑半徑。在掉頭區域,舞龍隊沿著兩段圓弧路徑行進,路徑曲率由圓弧的半徑決定。半徑越小,曲率越大,節點的速度變化越明顯。因此,在路徑半徑較小的區域,如掉頭區域,速度會受到較大限制。
假設龍頭以速度[vhead]行進,則根據路徑的曲率變化,龍尾和各個節點的速度[vi]可以表示為[12]:
[vi=vhead×rheadri] (6)
式中:[vhead]是龍頭所在路徑段的半徑,[ri]是其他節點所在路徑段的半徑。為了滿足節點速度不超過2[ m/s]的條件,本文根據各節點所在路徑的半徑,確定龍頭的最大速度[vmax]。
2) 節點速度的約束條件。
最大速度限制:根據題目要求,舞龍隊各節點的速度不能超過2 m/s,因此可以建立以下約束條件:
[vnode≤2 m/s] (7)
圓弧半徑的影響:圓弧路徑中,龍尾和龍身的節點速度受路徑半徑的影響較大,特別是在小半徑圓弧處,速度增長較快。因此,在模型中,本文特別關注這些節點的速度變化情況。
3.1.1 分段計算節點速度
根據圓弧半徑設定,掉頭路徑由兩段圓弧組成(如圖6所示) 。
第一段圓弧的半徑[r1=0.2 m];
第二段圓弧的半徑[r2=0.1 m]。
本文首先計算龍頭在不同路徑段的行進速度,然后根據各節點的相對位置,計算其速度變化。通過這些計算,找到滿足所有節點速度不超過2[ m/s]的最大龍頭速度。
3.1.2 最大龍頭速度的確定
為了保證所有節點的速度不超過2[ m/s],本文對龍頭速度進行限制。對于每個節點[i],有以下關系式:
[vi=vhead×rheadri] (8)
式中:[vhead]和[ri]分別為龍頭和節點所在路徑段的半徑。為了確保[vi≤2 m/s],本文通過遍歷各節點的速度計算,確定[vhead]的最大值。
假設龍頭的路徑半徑為[rhead=0.2 m],而在掉頭過程中各節點的路徑半徑分布為:
[r1=0.2 m];
[r51=0.2 m];
[r101=0.2 m];
[r151=0.2 m];
[r201=0.2 m];
[rtail=0.1 m]。
為了確保所有節點的速度不超過2[ m/s],最關鍵的是確定半徑最小的節點——也就是在半徑為0.1 [m]的節點(如[r101]、[rtail]) 的速度不超過2[ m/s]。本文根據速度與半徑的關系,龍頭的速度與節點速度通過如下公式:
[vnode=vhead×rheadrnode] (9)
所以,節點的速度限制為:
[vhead×0.20.1≤2 m/s] (10)
解得龍頭的最大速度:
[vhead≤1 m/s] (11)
因此,龍頭的最大行進速度為1[ m/s],才能確保所有節點的速度不超過2[ m/s]。
3.2 基于貝賽爾曲線對龍頭最大前進速度的優化
在實際生活中,龍頭的速度要始終保持在1的速度會極大程度的堅守舞龍的觀賞性,于是本文對龍頭掉頭盤出的路徑進行優化,建立新的模型以提好龍頭前進的速度,提高舞龍的觀賞性。
為了進一步優化舞龍隊的掉頭路徑,并在保持速度限制的前提下提高龍頭的最大速度,本文采用更高階的貝塞爾曲線。通過增加控制點,使路徑的曲率變化更加平滑,從而減少節點在路徑上急轉彎時的速度波動[13-14]。
高階貝塞爾曲線的定義與三次貝塞爾曲線類似,只是控制點的數量增加。對于[n]次貝塞爾曲線,它由[n +1]個控制點定義,其數學表達式為:
[B(t)=i=0nni(1-t)n-itiPi] (12)
式中:
[Pi]是第[i]個控制點;
[t]是參數,取值范圍為[0,1],表示曲線的進程;
[ni]是二項式系數。
通過增加控制點的數量,可以進一步調整路徑的形狀,使掉頭路徑更加精確,減少急轉彎處的曲率變化。
3.2.1 控制點選擇
為了設計一個更靈活的路徑,本文使用五次貝塞爾曲線,需要6個控制點[15]??刂泣c按照以下方式設置:
1) 起點[P0]:龍頭進入掉頭路徑時的位置。
2) 終點[P5]:龍頭完成掉頭后進入盤出螺線的位置。
3) 中間的四個控制點[P1]、[P2]、[P3]、[P4]用于靈活調整曲線的形狀,使路徑的曲率更加平滑。
3.2.2 控制點的選擇邏輯
1) [P0]和[P5]固定為路徑的起點和終點。
2) [P1]和[P4]可以靠近[P0]和[P5],用于控制曲線的初始和結束方向。
3) [P2]和[P3]放置在掉頭路徑的中間位置,調整它們可以控制曲線中間部分的形狀,平滑路徑的曲率。
3.2.3 優化目標
通過調整[P1]、[P2]、[P3]、[P4]的位置,優化掉頭路徑的曲率分布,使得路徑的最大曲率盡可能小,龍頭的速度可以更快,同時所有節點的速度保持在2[ m/s]以內。
最后借助Python代碼實現五次貝塞爾曲線,本文通過增加控制點的方式來優化掉頭路徑,經過多次模型檢驗得出龍頭的最大前進速度可以達到1.5[ m/s],這極大地增加了整個舞龍隊在舞龍過程中的觀賞性。
4 結論
本文借助五次貝塞爾曲線,成功地將掉頭路徑的曲率變化控制在合理范圍內,使得路徑在掉頭過程中更加平滑,龍頭的最大行進速度從1[ m/s]提高到了1.5[ m/s],極大程度地提高了“盤龍”的可觀賞性除此之外,貝塞爾曲線的應用不僅適用于舞龍隊的掉頭路徑設計,也可被推廣到其他需要復雜路徑設計的表演或行進任務中。
參考文獻:
[1] 王林,富慶亮.基于貝塞爾曲線理論的備件需求模糊隸屬度函數構建模型[J].運籌與管理,2011,20(1):87-92.
[2] 張金煒,王文揚,郭蓬,等.基于蟻群四次貝塞爾曲線的無人車路徑規劃[J].現代電子技術,2019,42(13):113-116.
[3] 王洪斌,尹鵬衡,鄭維,等.基于改進的A*算法與動態窗口法的移動機器人路徑規劃[J].機器人,2020,42(3):346-353.
[4] 陳靖輝,崔巖,劉興林,等.基于改進A*算法的移動機器人路徑規劃方法[J].計算機應用研究,2020,37(S1):118-119.
[5] 趙明,鄭澤宇,么慶豐,等.基于改進人工勢場法的移動機器人路徑規劃方法[J].計算機應用研究,2020,37(S2):66-68,72.
[6] 陳超.基于預測模型的動態多目標優化算法研究[D].長沙:湖南大學,2012.
[7] 陳成,何玉慶,卜春光,等.基于四階貝塞爾曲線的無人車可行軌跡規劃[J].自動化學報,2015,41(3):486-496.
[8] 魏彤,龍琛.基于改進遺傳算法的移動機器人路徑規劃[J].北京航空航天大學學報,2020,46(4):703-711.
[9] 劉洋,馬建偉,臧紹飛,等.基于融合Bezier優化遺傳算法的路徑規劃[J].控制工程,2021,28(2):284-292.
[10] 胡章芳,程亮,張杰,等.多約束條件下基于改進遺傳算法的移動機器人路徑規劃[J].重慶郵電大學學報(自然科學版),2021,33(6):999-1006.
[11] 游達章,康亞偉,劉攀,等.一種改進灰狼優化算法的移動機器人路徑規劃方法[J].機床與液壓,2021,49(11):1-6.
[12] 汪嬋嬋.基于改進獅群算法的汽輪機熱耗率模型預測[J].計量學報,2021,42(7):853-860.
[13] 黃澄,袁東風,張海霞.基于獅群算法的數字孿生車間調度問題優化[J].山東大學學報(工學版),2021,51(4):17-23,34.
[14] 王艷紅,張革文.基于改進獅群算法的云計算資源調度策略[J].計算機應用與軟件,2021,38(11):269-275.
[15] 趙燕偉,吳斌,蔣麗,等.車輛路徑問題的雙種群遺傳算法求解方法[J].計算機集成制造系統-CIMS,2004,10(3):303-306.
【通聯編輯:光文玲】