【MCx几何】在MC中画出任意偏转角的图形【粒子特效基础】

前言
如你所见,这篇文章将大概讲解一下如何将用粒子画出的图形进行旋转变换,专栏大多是代码,原理很简单,就是套一个公式而已
编程语言使用Java 18,其他语言也差不多 基本上都是数学计算
粒子生成使用ColorBlock模组,原版也差不多,就改下函数输出格式就行
(最低仅需高一知识就能写出来!)

准备工作
坐标的表达:
x-y-z 分别对应游戏的三条坐标轴
公式:
1.两点距离(欧式距离):
2.罗德里格斯旋转公式:
一些工具类:
流程
1.定义
首先确定你要旋转的点和旋转中心, 比如 点A(x,y,z) 和 点O(0,0,0)
定义向量, 该向量也可以用一个点来表示, 记为点A' =
= (A.x - O.x, A.y - O.y, A.z - O.z)
当O点坐标在原点时,A'=A
2.确定旋转轴
确定要沿什么方向旋转,我将旋转分为了三次,分别绕x轴,y轴,z轴进行旋转 对应公式上的就是(1,0,0),(0,1,0),(0,0,1),
就是A'
3.带入计算
这没什么好说的吧,把量带进去算就完事了 θ为旋转的角度
注意点: 旋转后对应的单位向量k也会随之旋转,在进行第2~n次旋转时需要前一次将之后旋转的k也进行旋转!
4.代码
这段的作用是用于旋转一个点A(x轴上旋转xr°,y轴上旋转yr°,x轴上旋转yr°)
这样就能让一个点进行旋转了,配合for和点列表/数组 可以实现整个图形的旋转
建议自己写代码,我这仅供参考,临时写的大概率没法直接运行

实例
生成一个带旋转角度的正方体框架:

结尾
你已经学会了如何旋转图形,快去肝你的特效叭!