Zoom2D
- To: mathgroup at smc.vnet.net
- Subject: [mg82866] Zoom2D
- From: dh <dh at metrohm.ch>
- Date: Thu, 1 Nov 2007 05:24:29 -0500 (EST)
Hello,
since I posted the Zoom2D utility I got a few complains that it is not
working properly with complicated graphics.
The main problem seems that on clicking on a graphics you get a data
structure "GraphicsBox" that I could not find any documentation. This
structure is not behaving well for complicated graphics. Mainly the
location of the upper/right and lower/left corner of the graphics is
reported wrongly. Therefore, it is possible that the locators are
msiplaced by Zoom2D.
I also eliminated another possible source of troubles: the undocumented
statement: "BoxForm`ClosingSaveDialog" that gives error messages on some
machines, but not on all. I am not able to tell why.
Therefore here is a new version that should give less troubles:
==========================================================
Zoom2D[g0_]:=Module[{g,g1,pp1,pp2},tt=g0;
If[!MatchQ[Head[g0],Graphics|GraphicsBox],CreateDialog[{TextCell["Zoom:
No Input available."],DefaultButton[]}];Return[];
];
g=If[Head[g0]=!=Graphics,ReplaceAll[g0,{GraphicsBox->Graphics}],g0];
g=g/.NCache[_,x_]:>x;
{pp1,pp2}=(PlotRange/.AbsoluteOptions[g])//Transpose;
g1=DynamicModule[{p1=pp1,p2=pp2,lp={0,0},aspect=1},Column[{LocatorPane[Dynamic[{p1,p2}],Show[{g,Graphics[{Opacity[0.1],Rectangle[Dynamic[p1],Dynamic[p2]]}]},ImageSize->Small]],EventHandler[Show[g,PlotRange:>Dynamic[Transpose[{p1,p2}]],Frame->True,ImageSize->Full,AspectRatio->Dynamic[aspect]],{"MouseClicked":>(lp=MousePosition["Graphics"])}],Dynamic[lp]
,Row[{TextCell["AspectRatio fixed:
"],Checkbox[Dynamic[aspect],{Automatic,1}]}]},Center]];
CreateDocument[g1,WindowSize->{Small,All},WindowTitle->"Zoom-DH",WindowElements->{},WindowFrame->"Palette"(*,BoxForm`ClosingSaveDialog->False*)];]
CreatePalette[Button["Zoom",Zoom2D[NotebookRead[SelectedNotebook[]]]],WindowTitle->""];
===========================================================