astro/rotation.tstypescript
import { PI_TWO } from "../math";
import { Mat3 } from "../math/Mat3";
import { Vec3 } from "../math/Vec3";
export function getRotationMatrix(rightAscension: number, declination: number, res?: Mat3): Mat3 {
let xAxis = new Vec3(),
zAxis = new Vec3();
res = res || new Mat3();
xAxis.x = Math.cos(rightAscension + PI_TWO);
xAxis.y = Math.sin(rightAscension + PI_TWO);
xAxis.z = 0.0;
let cosDec = Math.cos(declination);
zAxis.x = cosDec * Math.cos(rightAscension);
zAxis.y = cosDec * Math.sin(rightAscension);
zAxis.z = Math.sin(declination);
let yAxis = zAxis.cross(xAxis);
res._m[0] = xAxis.x;
res._m[1] = yAxis.x;
res._m[2] = zAxis.x;
res._m[3] = xAxis.y;
res._m[4] = yAxis.y;
res._m[5] = zAxis.y;
res._m[6] = xAxis.z;
res._m[7] = yAxis.z;
res._m[8] = zAxis.z;
return res;
}