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

MathGroup Archive 2012

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

Search the Archive

Re: Plotting colorfunctions over multiple parametric curves

  • To: mathgroup at smc.vnet.net
  • Subject: [mg125227] Re: Plotting colorfunctions over multiple parametric curves
  • From: Bob Hanlon <hanlonr357 at gmail.com>
  • Date: Thu, 1 Mar 2012 05:31:39 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201202291222.HAA28337@smc.vnet.net>

n = 3;
XYR = ({{-2.1, 0, 1.0}, {0, 0, 0.5}, {2.1, 0, 1.0}});
x[i_] := XYR[[i, 1]];
y[i_] := XYR[[i, 2]];
r[i_] := XYR[[i, 3]];

potential[theta_, i_] := theta + 1.0;
circle[i_, theta_] := {x[i] + r[i]*Cos[theta], y[i] + r[i]*Sin[theta]};

I believe that the parameters being scaled in the ColorFunction are x,
y, and theta rather than the potential function. Since you want to
scale the potential function you must do this manually. Note that your
potential function does not depend on i so it is the same for each
circle.

Show[Table[
  ParametricPlot[
   circle[i, theta],
   {theta, 0, 2 Pi},
   PlotStyle -> Thick,
   Axes -> False,
   ImageSize -> 200,
   ColorFunction -> Function[{x, y, theta},
     ColorData["TemperatureMap"][(potential[theta, i] - 1)/(2 Pi)]],
   ColorFunctionScaling -> False],
  {i, 1, n}],
 PlotRange -> All]


Bob Hanlon


On Wed, Feb 29, 2012 at 7:22 AM, Andrew Green <kiwibooga at googlemail.com> wrote:
> Hi Bob
>
> Thanks for the reply. I am a step further thank you, but the results are strange.  It is as if the colorfunction is clipping values below 0 and above 1 - it is not scaling even if ColorFunctionScaling->true is added. Consider potential[theta_,i_] = theta+1.0, I would have expected you should still get a full rainbow of colors (0 to 2pi mapped to 0 to 1), instead all are red.
>
> n = 3;
> XYR = ( {
>    {-2.1, 0, 1.0},
>    {0, 0, 0.5},
>    {2.1, 0, 1.0}
>   } );
> x[i_] := XYR[[i, 1]];
> y[i_] := XYR[[i, 2]];
> r[i_] := XYR[[i, 3]];
>
> potential[theta_, i_] := theta + 1.0;
> circle[i_, theta_] := {x[i] + r[i]*Cos[theta], y[i] + r[i]*Sin[theta]};
>
> Show[Table[
>  ParametricPlot[circle[i, theta], {theta, 0, 2 Pi},
>   PlotStyle -> Thick, Axes -> False, ImageSize -> 200,
>   ColorFunction ->
>    Function[{x, y, theta},
>     ColorData["TemperatureMap"][potential[theta, i]]],
>   ColorFunctionScaling -> True], {i, 1, n}], PlotRange -> All]
>
> Any ideas why?
>
> Thanks - Andrew
>



  • Prev by Date: Re: nested sums
  • Next by Date: Re: Dynamic question
  • Previous by thread: Re: Plotting colorfunctions over multiple parametric curves
  • Next by thread: Re: Plotting colorfunctions over multiple parametric curves