title: Is it possible to decompose a generic [a, b, c, d, e, f] (svg) transform matrix into a series of rotate/scale/translate directives?
body: <p>This is not a duplicate. I've looked through all of the other answers.</p>
  
  <p>I have an [a, b, c, d, e, f] svg transform matrix. I want to decompose it into any series of translate/scale/rotate(with optional center) operations. Skew is NOT an option. I'm trying to fit within the 7 attributes provided by the Android Vector Drawable Group (eg, rotation, pivotX, pivotY, scaleX, scaleY, translateX, translateY).</p>
  
  <p>My first question is, is that possible for all such matrices? If the matrix has skew along either axis, can that be instead rendered via a series of rotate|scale operations? If not all matrices are possible, is it possible to detect when they're not?</p>
  
  <p>The second question is some help with the basic math. I get as far as <code>translateX = e</code> and <code>translateY = f</code>. <code>scaleX = a</code> and <code>scaleY = d</code> <strong>IF</strong> b and c are zero. But when b and c are non zero, rotation and scale get entangled. How can I disentangle those?</p>