MathGroup Archive 2009

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

Search the Archive

Re: Re: Combine images, Show[] and its effect on

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105447] Re: [mg105441] Re: Combine images, Show[] and its effect on
  • From: Murray Eisenberg <murray at math.umass.edu>
  • Date: Thu, 3 Dec 2009 06:13:45 -0500 (EST)
  • Organization: Mathematics & Statistics, Univ. of Mass./Amherst
  • References: <hf3086$mpm$1@smc.vnet.net> <200912021129.GAA27129@smc.vnet.net>
  • Reply-to: murray at math.umass.edu

A modification of the solution by means of Presentations provided by 
David Park will produce the requisite arrow: instead of using the Circle 
primitive, use a ParametricDraw and in that replace Line by Arrow:

yticks = CustomTicks[GoldenRatio # &, {-1, 1, .5, 5}];
Draw2D[{Draw[GoldenRatio Sin[x], {x, -\[Pi], \[Pi]}],
   ParametricDraw[{Cos[t], Sin[t]}, {t, -45 Degree, 180 Degree}] /.
    Line -> Arrow}, AspectRatio -> Automatic, Frame -> True,
  FrameTicks -> {{yticks, yticks // NoTickLabels}, {Automatic,
     Automatic}}, ImageSize -> 400]

Nasser M. Abbasi wrote:
> Thanks every one for the answers, they helped me understand more about this 
> problem.
> 
> What I wanted to actually do is to have an arrow at the end of the Arc.
> 
> Once I had the Arc looks more circular now (with your help), I found that 
> there is no easy way I could add an arrow at the end of the Arc.
> 
> So, I ended up making a list of points that traces the shape of the ellipse, 
> and then used ListPlot and added an Arrow by using the last 2 points of this 
> list of points.
> 
> Here is the code:
> 
> p = Plot[Sin[x], {x, -Pi, Pi}];
> asp = AspectRatio /. FullOptions[p];
> 
> a = 1; b = asp;   (* major and minor axis of ellipse *)
> 
> (*this below is polar equation for ellipse using origin as center of 
> ellipse*)
> r[theta_] := Module[{}, a*(b/Sqrt[(b*Cos[theta])^2 + (a*Sin[theta])^2])]
> 
> (* now make points x,y tracing the above ellipse *)
> data = Table[{r[theta]*Cos[theta], r[theta]*Sin[theta]},{theta, -30*Degree, 
> 130*Degree, 1*Degree}];
> 
> (* now display all, add an arrow at the end of the arc *)
> Show[
>   p,
>   ListPlot[data, Joined -> True],
>   Graphics[  Arrow[{data[[-2]], data[[-1]]}]  ]
>   ]
> 
> But I think what David Park said in his reply is correct, and I quote him
> 
> "
> The problem with the replies I saw this morning is that the arc is still not
> circular. That is because (I think) AspectRatio does not refer to the Frame
> of the plot but to the overall plot box that also contains the tick labels.
> This makes it more difficult and you have to guess at the proper circle
> scaling.
> "
> 
> The arc is not really circular in shape, but it is more circular than 
> without the ellipse transformation trick.
> 
> So I ended up, in my other code, having to, by trial and error, find a 
> different value for the "b" variable shown above than the one found from the 
> AspectRatio of the underlining plot to get the arc to look more circular.
> 
> --Nasser 
> 
> 

-- 
Murray Eisenberg                     murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305


  • Prev by Date: Re: Efficiently compute Fourier coefficients for discrete function
  • Next by Date: Re: Efficiently compute Fourier coefficients for discrete function
  • Previous by thread: Re: Combine images, Show[] and its effect on
  • Next by thread: Efficiently compute Fourier coefficients for discrete function