Weird behaviour when using Scale, Rotate in Graphics
I reported the issue to WRI on November 21. On December 16 they confirmed that it is a known bug. (I forgot to update the question till now.)
Just as a complementary and extended comment and as was recently observed in a related post, you get exactly the same problem if, not surprisingly, you use geometric transformation functions instead:
Given the initial object to transform:
circles = {Circle[{0, 0}, 1], Circle[{0, 0.5}, 0.5]};
the OP transformation:
t1 = Rotate[Scale[circles, 12], -45 Degree, {0, 0}];
is equivalent to:
t2 = GeometricTransformation[circles,
ScalingTransform[{12, 12}].RotationTransform[-45 Degree, {0, 0}]];
and you can check they exactly superimpose:
GraphicsGrid@Partition[Table[Graphics[{t1,t2},
PlotRange -> {{-a, a}, {-a, a}}, ImageSize -> 100], {a, 11, 20}], 5]
You can also observe this strange behaviour just by manually resizing the graphic:
Graphics[t2] (* or Graphics[t1] *)
Probably the best way to get around this issue is to make sure that the transformation is calculated explicitly before Graphics
has to draw it. You can use TransformedRegion
for this:
rotatedCircles = TransformedRegion[
#,
ScalingTransform[{12, 12}, {0, 0}] @* RotationTransform[-45 Degree]
]& /@ circles
Graphics[rotatedCircles]
Note that rotatedCircles
has evaluated and no longer has a transformation wrapper around it any more.