(translation, rotation, scale)
return np.dot(S, np.dot(R, T))
Return the transformation matrix corresponding to a given
    translation, rotation, and scale.
    
    Arguments:
      * translation: the 3D translation vector,
      * rotation: the 2D rotation coefficients
      * scale: a float with the scaling coefficient.
    
    Returns:
      * M: the 4x4 transformation matrix.
Return the transformation matrix corresponding to a given
    translation, rotation, and scale.
    
    Arguments:
      * translation: the 3D translation vector,
      * rotation: the 2D rotation coefficients
      * scale: a float with the scaling coefficient.
    
    Returns:
      * M: the 4x4 transformation matrix.
Return the transformation matrix corresponding to a given translation rotation and scale . Arguments : * translation : the 3D translation vector * rotation : the 2D rotation coefficients * scale : a float with the scaling coefficient . Returns : * M : the 4x4 transformation matrix .
def get_transform(translation, rotation, scale):
    """Return the transformation matrix corresponding to a given
    translation, rotation, and scale.
    
    Arguments:
      * translation: the 3D translation vector,
      * rotation: the 2D rotation coefficients
      * scale: a float with the scaling coefficient.
    
    Returns:
      * M: the 4x4 transformation matrix.
      
    """
    # translation is a vec3, rotation a vec2, scale a float
    S = scale_matrix(scale, scale, scale)
    R = rotation_matrix(rotation[0], axis=1)
    R = np.dot(R, rotation_matrix(rotation[1], axis=0))
    T = translation_matrix(*translation)
    return np.dot(S, np.dot(R, T))
def get_transform ( translation , rotation , scale ) : # translation is a vec3, rotation a vec2, scale a float S = scale_matrix ( scale , scale , scale ) R = rotation_matrix ( rotation [ 0 ] , axis = 1 ) R = np . dot ( R , rotation_matrix ( rotation [ 1 ] , axis = 0 ) ) T = translation_matrix ( * translation ) return np . dot ( S , np . dot ( R , T ) )