mirror of
https://github.com/3b1b/manim.git
synced 2025-07-29 21:12:35 +08:00
20 lines
573 B
GLSL
20 lines
573 B
GLSL
mat3 rotationMatrix(vec3 axis, float angle) {
|
|
axis = normalize(axis);
|
|
float s = sin(angle);
|
|
float c = cos(angle);
|
|
float oc = 1.0 - c;
|
|
float ax = axis.x;
|
|
float ay = axis.y;
|
|
float az = axis.z;
|
|
|
|
return mat3(
|
|
oc * ax * ax + c, oc * ax * ay - az * s, oc * az * ax + ay * s,
|
|
oc * ax * ay + az * s, oc * ay * ay + c, oc * ay * az - ax * s,
|
|
oc * az * ax - ay * s, oc * ay * az + ax * s, oc * az * az + c
|
|
);
|
|
}
|
|
|
|
vec3 rotate(vec3 vect, float angle, vec3 axis){
|
|
return rotationMatrix(axis, angle) * vect;
|
|
}
|