public static Matrix4x4 ToPreviousFrame(DHFrameInfo frameInfo) { double a = frameInfo.A; double d = frameInfo.D; double cosTheta = Math.Cos(frameInfo.ThetaRadian); double sinTheta = Math.Sin(frameInfo.ThetaRadian); double cosAlpha = Math.Cos(frameInfo.AlphaRadian); double sinAlpha = Math.Sin(frameInfo.AlphaRadian); return new Matrix4x4( cosTheta, -sinTheta * cosAlpha, sinTheta * sinAlpha, a * cosTheta, sinTheta, cosTheta * cosAlpha, -cosTheta * sinAlpha, a * sinTheta, 0, sinAlpha, cosAlpha, d, 0, 0, 0, 1); }
public static Matrix4x4 ToPreviousFrame(DHFrameInfo frameInfo) { double a = frameInfo.A; double d = frameInfo.D; double cosTheta = Math.Cos(frameInfo.ThetaRadian); double sinTheta = Math.Sin(frameInfo.ThetaRadian); double cosAlpha = Math.Cos(frameInfo.AlphaRadian); double sinAlpha = Math.Sin(frameInfo.AlphaRadian); return(new Matrix4x4( cosTheta, -sinTheta * cosAlpha, sinTheta * sinAlpha, a * cosTheta, sinTheta, cosTheta * cosAlpha, -cosTheta * sinAlpha, a * sinTheta, 0, sinAlpha, cosAlpha, d, 0, 0, 0, 1)); }