MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Zoom 2D

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77051] Zoom 2D
  • From: dh <dh at metrohm.ch>
  • Date: Sat, 2 Jun 2007 04:12:04 -0400 (EDT)


Hello All,

after having learned more of the new dynamic abilities, I may post an 

improved version of a Zoom function for 2 dimensional Graphics. The code 

below will create a small palette with one button. If you select some 2 

dim. graphics and click this button, a new notebook will be open with 

two panes and a coordinate pair. The upper pane contains the original 

graphics overlaid with an transparent rectangle overlaid. This recatngle 

may be resized and defines the region to enlarge. The lower panel 

contains the enlarged region. Clicking into the lower panel prints the 

coordinates below the panels.

You are welcom to comment.

Daniel



(*Creates a Palette with a zoom button*)



Zoom2D[g0_]:=Module[{g,pp1,pp2},

If[!MatchQ[Head[g0],Graphics| GraphicsBox],CreateDialog[{TextCell["Zoom: 

No Input available."],DefaultButton[]}];Return[];];

g=If[Head[g0]=!=Graphics,Replace[g0,head_[x1_,x2___]:>Graphics[{x1},{x2}]],g0];



{pp1,pp2}=FullOptions[g,PlotRange]//Transpose;



g1=DynamicModule[{p1=pp1,p2=pp2,lp={0,0}},

Column[{

LocatorPane[Dynamic[{p1,p2}],Show[{g,Graphics[{Opacity[0.1],Rectangle[Dynamic[p1],Dynamic[p2]]}]},ImageSize->Full]]

,EventHandler[Show[g,PlotRange:>Dynamic[Transpose[{p1,p2}]],Frame->True,ImageSize->Full]

,{"MouseClicked":>(lp=MousePosition["Graphics"])}

]

,Dynamic[lp]

},Center]];



CreateDocument[g1,WindowSize->{Small,All},WindowTitle->"Zoom-DH",WindowElements->{},WindowFrame->"Palette",BoxForm`ClosingSaveDialog->False];



]



CreatePalette[

Button["Zoom",Zoom2D[NotebookRead[SelectedNotebook[]]]

],WindowTitle->""];




  • Prev by Date: Re: How to change symbolic values to numbers
  • Next by Date: Re: How to change symbolic values to numbers
  • Previous by thread: May 2007
  • Next by thread: Developing Applications using Mathematica