RE: Rotation of 2D graphics
- To: mathgroup at smc.vnet.net
- Subject: [mg26439] RE: [mg26432] Rotation of 2D graphics
- From: PNichols at cornell-iowa.edu
- Date: Thu, 21 Dec 2000 01:51:40 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Stephen, Rotating the axes, labels and everything? The short answer, which may be all you need, is FullGraphics: ?FullGraphics "FullGraphics[g] takes a graphics object, and generates a new one in which objects specified by graphics options are given as explicit lists of graphics primitives." ========================================================== A longer answer: Needs["Graphics`Graphics`"]; ?TransformGraphics "TransformGraphics[graphics, f] applies the function f to all lists of coordinates in graphics." rotationmatrix[radians_]:= {{Cos[radians],-Sin[radians]},{Sin[radians],Cos[radians]}} generalrotation[point_, radians_, rotationcenter_]:= rotationmatrix[radians].(point-rotationcenter)+rotationcenter ShowRotation[graphics_Graphics, radians_, rotationcenter_]:= Show[ TransformGraphics[ FullGraphics[graphics], generalrotation[#, radians, rotationcenter] & ], AspectRatio -> Automatic] sineplot = Plot[{Sin[6x], Sin[4x]}, {x, 0, 2}, PlotStyle -> {{}, Hue[0]}, PlotLabel -> "Two Frequencies"] ShowRotation[sineplot, 25 Degree, {0,1}] =========================================================== Is that what you want to do? (If so, I'd be interested to know about your broader purpose for this.) Note: FullGraphics turns tick labels (and PlotLabel settings, etc.) into explicit Text primitives: rotating the position of a Text primitive is straightforward, rotating the actual text characters is much more work, and may not be possible without building a new front end. Preston Nichols Visiting Assistant Professor of Mathematics Cornell College -----Original Message----- From: Stephen Sheppard [mailto:Stephen.C.Sheppard at williams.edu] To: mathgroup at smc.vnet.net Subject: [mg26439] [mg26432] Rotation of 2D graphics I have some graphics generated by showing several 2d plots, and I would like to be able to spin these about a specified point. This is very easy if everything has been generated using primitives like Line, Point, etc. What I would like to be able to do is to take an entire image that can be viewed using "Show" and rotate it by r radians about the point {x,y}. Something like: Show[%] ShowRotate[%,r,{x,y}] would then produce the graphic with everything (including the axes, labels, etc.) rotated. Any suggestions? I would be happy if this were obvious. Stephen Sheppard Department of Economics Williams College