Zoom
- To: mathgroup at smc.vnet.net
- Subject: [mg76612] Zoom
- From: dh <dh at metrohm.ch>
- Date: Thu, 24 May 2007 06:22:55 -0400 (EDT)
Hello, unfortunately there is still no Zoom function for 2D graphics in version 6. Well, I tried to roll my own, here is it, please try it out. It still needs some improvements. I did not manage to localize the dynamic variables p1,p2. As soon as I enclose them in a a Module or DynamicModule block, they are no more active. Has anybody an idea? Further, there is a white highlighted region that disapears as soon as the cursor move over it. How to eliminate this region? The function takes as input either a graphics object or the output from NotebookRead. The idea is to create a button by e.g.: Button["Zoom",Zoom2D[NotebookRead[SelectedNotebook[]]]] You may e.g. put this button in a palette. Now, select some 2D graphics like e.g. the output of Plot and click the button with the graphics still selected. A new document is now created showing two graphics. The first one is the original graphics with two movable locators, the second one corresponds to the rectangle defined by the two locators in the first pane. Here is the code: Zoom2D[g00_]:= Module[{g,g1,opts}, p1={0,0};p2={1,1}; g=If[Head[g00]=!=Graphics,Replace[g00,head_[x1_,x2___]:>Graphics[{x1},{x2}]]/.{NCache[x_,_]->x,LineBox->Line},g00]; {p1,p2}=FullOptions[g,PlotRange]//Transpose; opts=FullOptions[g]; Print[{p1,p2}]; g1=Show[g,PlotRange->Dynamic[Transpose[{p1,p2}]],Frame->True ]; CreateDocument[{ LocatorPane[Dynamic[{p1,p2}],g], g1, Button["Close",NotebookClose[SelectedNotebook []]] },WindowSelected->True]; ] have fun, Daniel