Skip to content

Instantly share code, notes, and snippets.

@keijiro
Last active March 16, 2024 04:16
Show Gist options
  • Save keijiro/ee439d5e7388f3aafc5296005c8c3f33 to your computer and use it in GitHub Desktop.
Save keijiro/ee439d5e7388f3aafc5296005c8c3f33 to your computer and use it in GitHub Desktop.
3x3 Rotation matrix with an angle and an arbitrary vector
// Rotation with angle (in radians) and axis
float3x3 AngleAxis3x3(float angle, float3 axis)
{
float c, s;
sincos(angle, s, c);
float t = 1 - c;
float x = axis.x;
float y = axis.y;
float z = axis.z;
return float3x3(
t * x * x + c, t * x * y - s * z, t * x * z + s * y,
t * x * y + s * z, t * y * y + c, t * y * z - s * x,
t * x * z - s * y, t * y * z + s * x, t * z * z + c
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment