【MCx幾何】在MC中畫出任意偏轉(zhuǎn)角的圖形【粒子特效基礎(chǔ)】

前言
如你所見,這篇文章將大概講解一下如何將用粒子畫出的圖形進(jìn)行旋轉(zhuǎn)變換,專欄大多是代碼,原理很簡(jiǎn)單,就是套一個(gè)公式而已
編程語言使用Java 18,其他語言也差不多 基本上都是數(shù)學(xué)計(jì)算
粒子生成使用ColorBlock模組,原版也差不多,就改下函數(shù)輸出格式就行
(最低僅需高一知識(shí)就能寫出來!)

準(zhǔn)備工作
坐標(biāo)的表達(dá):
????x-y-z 分別對(duì)應(yīng)游戲的三條坐標(biāo)軸
公式:
????1.兩點(diǎn)距離(歐式距離):?
????2.羅德里格斯旋轉(zhuǎn)公式:?
一些工具類:
流程
1.定義
首先確定你要旋轉(zhuǎn)的點(diǎn)和旋轉(zhuǎn)中心, 比如?點(diǎn)A(x,y,z) 和 點(diǎn)O(0,0,0)
定義向量, 該向量也可以用一個(gè)點(diǎn)來表示, 記為點(diǎn)A' =?
?= (A.x - O.x, A.y - O.y, A.z - O.z)
當(dāng)O點(diǎn)坐標(biāo)在原點(diǎn)時(shí),A'=A
2.確定旋轉(zhuǎn)軸
確定要沿什么方向旋轉(zhuǎn),我將旋轉(zhuǎn)分為了三次,分別繞x軸,y軸,z軸進(jìn)行旋轉(zhuǎn) 對(duì)應(yīng)公式上的就是(1,0,0),(0,1,0),(0,0,1),
就是A'
3.帶入計(jì)算
這沒什么好說的吧,把量帶進(jìn)去算就完事了 θ為旋轉(zhuǎn)的角度
注意點(diǎn): 旋轉(zhuǎn)后對(duì)應(yīng)的單位向量k也會(huì)隨之旋轉(zhuǎn),在進(jìn)行第2~n次旋轉(zhuǎn)時(shí)需要前一次將之后旋轉(zhuǎn)的k也進(jìn)行旋轉(zhuǎn)!
4.代碼
這段的作用是用于旋轉(zhuǎn)一個(gè)點(diǎn)A(x軸上旋轉(zhuǎn)xr°,y軸上旋轉(zhuǎn)yr°,x軸上旋轉(zhuǎn)yr°)
這樣就能讓一個(gè)點(diǎn)進(jìn)行旋轉(zhuǎn)了,配合for和點(diǎn)列表/數(shù)組 可以實(shí)現(xiàn)整個(gè)圖形的旋轉(zhuǎn)
建議自己寫代碼,我這僅供參考,臨時(shí)寫的大概率沒法直接運(yùn)行

實(shí)例
生成一個(gè)帶旋轉(zhuǎn)角度的正方體框架:

結(jié)尾
你已經(jīng)學(xué)會(huì)了如何旋轉(zhuǎn)圖形,快去肝你的特效叭!