Re: Strange size changes in Manipulate with GeometricTransformation

*To*: mathgroup at smc.vnet.net*Subject*: [mg92214] Re: Strange size changes in Manipulate with GeometricTransformation*From*: Albert Retey <awnl at gmx-topmail.de>*Date*: Tue, 23 Sep 2008 07:32:21 -0400 (EDT)*References*: <gb7o8i$nc9$1@smc.vnet.net>

Nazdrovje wrote: > Hi group, > > I was playing with Manipulate and GeometricTransformation and found a > strange difference in behaviour when manipulating the orientation of a > circle containing a line depending on how it was drawn. Below, I > provide two ways of drawing this configuration. The first one behaves > as expected, but moving the slider in the second example results in > unexpected size changes. > > I suppose it must have something to do with bounding boxes of the > building blocks, but I don't quite get it. I also feel the behaviour > of the second one is actually wrong. What do you folks think? > > Cheers -- Nazdrovje > > This one rotates as expected: > > Manipulate[ > Graphics[ > GeometricTransformation[ > { > Circle[], > Line[{{-1, 0}, {1, 0}}] > }, RotationTransform[x =B0] > ] > ], {x, -180, 180} > ] > > This one behaves erratical: > > Manipulate[ > Graphics[ > GeometricTransformation[ > { > EdgeForm[Black], > FaceForm[], > Disk[{0, 0}, 1, {\[Pi], 2 \[Pi]}], > Disk[{0, 0}, 1, {0, \[Pi]}] > }, RotationTransform[x =B0] > ] > ], {x, -180, 180} > ] > Looks like a minor bug to me, obviously the code that determines PlotRange->All (which I think is the default) does not work correctly when choosing a segment or arc with a third argument for Disk and Circle. As a workaround you could set the PlotRange explicitly, e.g.: Manipulate[ Graphics[{GeometricTransformation[{EdgeForm[Black], FaceForm[], Disk[{0, 0}, 1, {\[Pi], 2 \[Pi]}], Disk[{0, 0}, 1, {0, \[Pi]}]}, RotationTransform[(\[Pi] x)/180]]}, PlotRange -> 1.1], {x, -180, 180}] (I did choose 1.1 to make sure no lines are cut...) hth, albert