public void Compute(DenavitHartenbergParameters parameters)
{
// Calculate Z with Z = TranslationZ(d).RotationZ(theta)
Z = Matrix4x4.Multiply
(
Matrix4x4.CreateTranslation(new Vector3(0f, 0f, (float)parameters.Offset)),
Matrix4x4.CreateRotationZ((float)parameters.Theta)
);
// Calculate X with X = TranslationX(radius).RotationZ(alpha)
X = Matrix4x4.Multiply
(
Matrix4x4.CreateTranslation(new Vector3((float)parameters.Radius, 0f, 0f)),
Matrix4x4.CreateRotationX((float)parameters.Alpha)
);
// Calculate the transform with T=Z.X
Transform = Matrix4x4.Multiply(Z, X);
}
}