// Shear by a given value static void affine_shear( double affine[3][3], double shear_x, double shear_y, double shear_z ) { double matrix[3][3]; matrix[0][0] = 1; matrix[0][1] = tan( shear_x * M_PI / 180 ); matrix[0][2] = 0; matrix[1][0] = tan( shear_y * M_PI / 180 ); matrix[1][1] = 1; matrix[1][2] = tan( shear_z * M_PI / 180 ); matrix[2][0] = 0; matrix[2][1] = 0; matrix[2][2] = 1; affine_multiply( affine, matrix ); }
static void affine_scale( double affine[3][3], double sx, double sy ) { double matrix[3][3]; matrix[0][0] = sx; matrix[0][1] = 0; matrix[0][2] = 0; matrix[1][0] = 0; matrix[1][1] = sy; matrix[1][2] = 0; matrix[2][0] = 0; matrix[2][1] = 0; matrix[2][2] = 1; affine_multiply( affine, matrix ); }
static void affine_rotate_z( double affine[3][3], double angle ) { double matrix[3][3]; matrix[0][0] = 1; matrix[0][1] = 0; matrix[0][2] = 0; matrix[1][0] = 0; matrix[1][1] = cos( angle * M_PI / 180 ); matrix[1][2] = sin( angle * M_PI / 180 ); matrix[2][0] = 0; matrix[2][1] = - sin( angle * M_PI / 180 ); matrix[2][2] = cos( angle * M_PI / 180 ); affine_multiply( affine, matrix ); }
// Shear by a given value static void affine_shear( float affine[3][3], float shear_x, float shear_y, float shear_z ) { float matrix[3][3]; matrix[0][0] = 1; matrix[0][1] = tan( shear_x * M_PI / 180 ); matrix[0][2] = 0; matrix[1][0] = tan( shear_y * M_PI / 180 ); matrix[1][1] = 1; matrix[1][2] = tan( shear_z * M_PI / 180 ); matrix[2][0] = 0; matrix[2][1] = 0; matrix[2][2] = 1; affine_multiply( affine, matrix ); }
static void affine_scale( float affine[3][3], float sx, float sy ) { float matrix[3][3]; matrix[0][0] = sx; matrix[0][1] = 0; matrix[0][2] = 0; matrix[1][0] = 0; matrix[1][1] = sy; matrix[1][2] = 0; matrix[2][0] = 0; matrix[2][1] = 0; matrix[2][2] = 1; affine_multiply( affine, matrix ); }
static void affine_rotate_z( float affine[3][3], float angle ) { float matrix[3][3]; matrix[0][0] = 1; matrix[0][1] = 0; matrix[0][2] = 0; matrix[1][0] = 0; matrix[1][1] = cos( angle * M_PI / 180 ); matrix[1][2] = sin( angle * M_PI / 180 ); matrix[2][0] = 0; matrix[2][1] = - sin( angle * M_PI / 180 ); matrix[2][2] = cos( angle * M_PI / 180 ); affine_multiply( affine, matrix ); }