第一种:Vector3中得applyAxisAngle
三维坐标绕着某轴旋转,主要注意是围绕着0点旋转,后面要做偏移
vvvvv = new Vector3(300,circle.vecs[j+1],circle.vecs[j+0]);
vvvvv.applyAxisAngle(new Vector3(0,0,1),-angle*Math.PI/180);
第二种:矩阵变化Matrix4
主要注意是定位点
单轴旋转
let mat = new Matrix4();
mat.identity();//
if(dir > 0){
mat.makeRotationZ((-(90-angle))*Math.PI/180);
}else{
mat.makeRotationX(((90-angle))*Math.PI/180);
}
let matt = new Matrix4();
matt.makeTranslation(0, 0, 0);
mat.copyPosition(matt);
多轴旋转
let mat = new Matrix4();
mat.identity();//
let euler = new Euler(m.rotation.x, m.rotation.y, m.rotation.z, 'XYZ');
mat.makeRotationFromEuler(euler);
let matt = new Matrix4();
matt.makeTranslation(pt.x, pt.y, pt.z);
mat.copyPosition(matt);
一般接触就这些,可能还有别的后面接触到在上