Here's one rationally reversible method to 'equilateralize' a triangle in the complex plane. This method is inspired by Gosper's continued fraction root extraction hack (perhaps in HAKMEM ??). Consider the cubic polynomial p(z) having the triangle vertices as roots. Translate the triangle centroid to the origin, then flip the polynomial end-for-end: z^3*p(1/z). (Of course, we need to remember this sequence of centroid translations to enable reversing.) Rinse & repeat. We are 'hollowing out' the internal coefficients of the polynomial, leaving only the z^3 and the z^0 terms in the limit. The result seems to converge to a 2-cycle of equilateral triangles, where the limit equilateral triangle inverts alternately inside and outside the unit circle. Below are 8 cycles starting from a 9-12-15 triangle; this iteration seems to converge pretty quickly. Q: The final result seems to remember two numbers, a 'size' and a 'phase' from the original triangle. I wonder what these quantities might be? BTW: This method is effectively Gosper's root extraction hack, because we can solve the limit equation z^3-C by inspection, and then reverse all of our steps. Note that unlike Gosper, we have produced *all three* of the roots of the original cubic equation. 3 2 2 (%o2) z - 9.0 %i z - 12.0 z + 108.0 %i z (%i3) forward(%); 3 2 (%o3) z + (0.12733403582719 - 0.045711275026344 %i) z - 0.002086406743941 %i - 0.0024868282402529 (%i4) forward(%); 3 2 (%o4) z + (0.23777047608189 - 1.844515505700051 %i) z + 208.5099028352554 %i - 222.3534715094485 (%i5) forward(%); 3 2 (%o5) z + (- 0.0031990745810353 %i - 0.0020077204240425) z - 0.0022424181810333 %i - 0.002388162593124 (%i6) forward(%); 3 2 (%o6) z + (0.0013849128634252 %i + 4.345783781893431E-4) z + 208.9519514637108 %i - 222.5322250905755 (%i7) forward(%); 3 2 (%o7) z + (- 3.3426031773526269E-10 %i - 2.2762130066155846E-9) z - 0.0022424186214955 %i - 0.0023881586265698 (%i8) forward(%); 3 2 (%o8) z + (4.8202318997299898E-16 - 2.4021268196176432E-16 %i) z + 208.9519514635722 %i - 222.5322250907546 (%i9) forward(%); 3 2 (%o9) z + (3.1212293864605986E-34 - 5.3805053878963621E-35 %i) z - 0.0022424186214955 %i - 0.0023881586265698 (%i10) forward(%); 3 2 (%o10) z + (4.6722777796490018E-66 - 9.0752194922195901E-66 %i) z + 208.9519514635722 %i - 222.5322250907546