Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: Get Graphics Coordinates accuracy

  • To: mathgroup at smc.vnet.net
  • Subject: [mg92308] Re: Get Graphics Coordinates accuracy
  • From: "David Park" <djmpark at comcast.net>
  • Date: Sat, 27 Sep 2008 06:50:36 -0400 (EDT)
  • References: <gbflnv$682$1@smc.vnet.net>

John,

Before WRI reintroduced the  GetCoordinates button in the DrawingTools 
Palette in Version 6, I included  commands to perform a similar operation 
with the Presentations package. The user can apply a LocatorDraw or 
LocatorLine[n] expression to a drawing statement and then obtain a display 
showing the positions of the locators in the plot. These positions can then 
be copied and pasted, even back into the plot if you want to add a Text 
statement say. Then the LocatorDraw or LocatorLine[n] can be removed.

So here is your example done with Presentations.

Needs["Presentations`Master`"]

LocatorLine[2]@
 Draw2D[
  {Draw[Sin[2 x], {x, 20270, 20275}]},
  Frame -> True,
  ImageSize -> 400]

(* graphic with two locators connected by a line, then adjusted to the peaks 
*)
Line[{{20270.3,0.98},{20273.5,0.999999}}]

When the points are copied out of the Line expression they give full 
precision.
{{20270.345`,0.98`},{20273.515`,0.9999992007707353`}}

The GetCoordinates mechanism is convenient for many purposes but it has four 
disadvantages of various degrees of severity. Least severe is that if you 
copy only one point it has double brackets and for most uses you will have 
to hand edit one pair of brackets out. Next is the problem you mention - 
that it returns truncated precision. A third problem is that you have no 
chance to adjust the points you want before copying. With locators you can 
see and adjust what you have before copying.

A fourth problem is the whole concept of using Drawing Tools to edit a 
graphic. (But perhaps that is not what you are doing in this particular 
case.) With Presentations one can have a Draw2D statement with many elements 
in it: curves drawn by different methods and various primitives and 
directives. Now if you edit this with Drawing Tools, say to add some points 
or a text label, you end with a second amended specification of the graphic, 
which is in graphic form. Now suppose you wish to add something else to the 
graphic that is not included in the Drawing Tools palette, say another 
computed curve. You have to go back to the original statement. You have then 
lost all the editing you did with Drawing Tools - and even worse there is no 
textual record of what you did. It is much better, and more professional, to 
have a single statement, in StandardForm say, that completely defines the 
graphic.

Your actual problem sounds like one that might benefit from a dynamic 
display, that might have a movable point restricted to the curve and would 
also have a dynamic display of the coordinates, or slope or other computed 
quantities.

-- 
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/


"John Jowett" <John.M.Jowett at gmail.com> wrote in message 
news:gbflnv$682$1 at smc.vnet.net...
>I came across a limitation in the mechanism for copying coordinates of
> points in 2D graphics (the Get Coordinates button in the Drawing Tools
> palette) in V6.03.
>
> Consider the following plot of a sine wave
>
> Plot[Sin[2 x], {x, 20270, 20275}]
>
> When I try to select and paste the coordinates of the two crests of
> the wave, I typically get two points with the same x-coordinate
>
> {{2.027*^4, 0.99}, {2.027*^4, 0.99}}
>
> whereas I would expect the two x-coordinates to be around
> 20270.3 and 20273.5, values which are well separated on the plot.
>
> This seems to happen because the Get Coordinates function only returns
> the first 4 digits of the coordinates.
>
> Does anyone know of a way to fix this ?  Obviously, in this
> demonstration example, I could change variables to x1=x-20270 but in
> the more complicated problem I am working on, this is not so easy.
>
> John Jowett
> 



  • Prev by Date: Re: Help
  • Next by Date: How to debug init.m?
  • Previous by thread: Get Graphics Coordinates accuracy
  • Next by thread: Re: Get Graphics Coordinates accuracy