最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

【MCx幾何】在MC中繪制Catmull-Rom平滑曲線【粒子特效基礎】

2023-08-05 18:35 作者:On_craft  | 我要投稿

前言

眾所周知,mc已經被大佬們開發(fā)出了許多酷炫的粒子線條,尤其是soma3.0曲線,可以給紅石音樂帶來非常不錯的視覺效果,但弊端是soma3.0缺乏靈活度,只能在平面上進行繪制,這讓它在紅石音樂以外的領域較難得到應用。這篇專欄就簡單講下更靈活的Catmull-Rom曲線的MC內繪制方法

本專欄只講怎么寫代碼,不講原理! 想知道原理和公式推導請自行搜索

編程語言使用Java 18,其他語言也差不多 基本上都是數學計算

粒子生成使用ColorBlock模組,原版一樣的

(小學生都能看懂!)

準備工作

1.坐標的表示: x-y-z?分別表示mc的三條坐標軸;P.x表示點P的x軸坐標,y,z也一樣

2.方程:

????算法矩陣式:

P(t)%3D%5Cbegin%7Bpmatrix%7Dt%5E3%26t%5E2%26t%261%5Cend%7Bpmatrix%7D%5Cbegin%7Bpmatrix%7D-%5Calpha%262-%5Calpha%26%5Calpha-2%20%26%5Calpha%5C%5C2%5Calpha%26%5Calpha-3%263-2%5Calpha%26-%5Calpha%5C%5C-%5Calpha%260%26%5Calpha%260%5C%5C0%261%260%260%20%5Cend%7Bpmatrix%7D%5Cbegin%7Bpmatrix%7DP_0%5C%5CP_1%5C%5CP_2%5C%5CP_3%5Cend%7Bpmatrix%7D

????寫成小學生都能看懂的形式就是:

%5Cbegin%7Bcases%7DP_x(t)%3Dt%5E3*%5B-%5Calpha*P_0.x%2B(2-%5Calpha)*P_1.x%2B(%5Calpha-2)*P_2.x%2B%5Calpha*P_3.x%5D%2B%5C%5C%20%5Cqquad%20t%5E2*%5B2%5Calpha*P_0.x%2B(%5Calpha-3)*P_1.x%2B(3-2%5Calpha)*P_2.x-%5Calpha*P_3.x%5D%2B%5C%5C%20%5Cqquad%20t*(-%5Calpha*P_0.x%2B%5Calpha*P_2.x)%2BP_3.x%5C%5CP_y(t)%3Dt%5E3*%5B-%5Calpha*P_0.y%2B(2-%5Calpha)*P_1.y%2B(%5Calpha-2)*P_2.y%2B%5Calpha*P_3.y%5D%2B%5C%5C%20%5Cqquad%20t%5E2*%5B2%5Calpha*P_0.y%2B(%5Calpha-3)*P_1.y%2B(3-2%5Calpha)*P_2.y-%5Calpha*P_3.y%5D%2B%5C%5C%20%5Cqquad%20t*(-%5Calpha*P_0.y%2B%5Calpha*P_2.y)%2BP_3.y%5C%5CP_z(t)%3Dt%5E3*%5B-%5Calpha*P_0.z%2B(2-%5Calpha)*P_1.z%2B(%5Calpha-2)*P_2.z%2B%5Calpha*P_3.z%5D%2B%5C%5C%20%5Cqquad%20t%5E2*%5B2%5Calpha*P_0.z%2B(%5Calpha-3)*P_1.z%2B(3-2%5Calpha)*P_2.z-%5Calpha*P_3.z%5D%2B%5C%5C%20%5Cqquad%20t*(-%5Calpha*P_0.z%2B%5Calpha*P_2.z)%2BP_3.z%5Cend%7Bcases%7D

????*α為曲線的扭曲程度,一般取0.5;P0與P3為控制點,catmull-rom算法連接兩個點需要在兩端點再加兩個控制點來控制曲線的形狀,所以繪制一條catmull-rom曲線需要4個點,實際只有P1和P2被連接

連接P1和P2,藍色部分為實際線段,P0和P3的位置決定藍色部分的形狀

代碼

要求:輸入待連接的兩個點P1和P2與兩端點的控制點P0和P3,以每個方塊長度(mc中的1m)lambda個點的密度作catmull-rom曲線,返回曲線上的點

Point類和PointSequence類可以看我的上一篇專欄:https://www.bilibili.com/read/cv25446970

然后就是如何用這個方法連接一組點了

其實很簡單,在開頭和結尾分別人為添加一個控制點,中間的片段連接第i和i+1個點的時候控制點取第i-1和第i+2個點就行了

人為在兩端點添加控制點

代碼要求:輸入一組點(點序列)與兩個控制點ctrl1和ctrl2,將這組點順序連接,以每個方塊長度lambda個點的密度作連貫的catmull-rom曲線,返回曲線上的點

效果


【MCx幾何】在MC中繪制Catmull-Rom平滑曲線【粒子特效基礎】的評論 (共 條)

分享到微博請遵守國家法律
正宁县| 滕州市| 平顺县| 彭州市| 丰台区| 内黄县| 专栏| 鹿泉市| 丁青县| 武乡县| 友谊县| 乌拉特前旗| 高青县| 黎城县| 澄迈县| 贡觉县| 农安县| 洞头县| 枞阳县| 宿松县| 乌兰察布市| 黄梅县| 吉水县| 阿瓦提县| 普格县| 靖安县| 周口市| 含山县| 棋牌| 留坝县| 宁德市| 通江县| 湖州市| 明光市| 南康市| 赣州市| 治县。| 霸州市| 逊克县| 德保县| 贵港市|