Re: Plotting colorfunctions over multiple parametric curves
- To: mathgroup at smc.vnet.net
- Subject: [mg125240] Re: Plotting colorfunctions over multiple parametric curves
- From: "djmpark" <djmpark at comcast.net>
- Date: Thu, 1 Mar 2012 05:36:10 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <2205388.63106.1330519615741.JavaMail.root@m06>
Andrew,
The proper procedure is to set ColorFunctionScaling to False, and then use
the Rescale function to map the potential range onto the interval 0 to 1.
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"][
Rescale[potential[theta, i], {1, 2 \[Pi] + 1}]]],
ColorFunctionScaling -> False], {i, 1, n}],
PlotRange -> All]
The plotting could be done a little more simply using the Presentations
application.
<<Presentations`
Draw2D[
{Thick,
ParametricDraw[circle[#, theta], {theta, 0, 2 \[Pi]},
ColorFunction ->
Function[{x, y, theta},
ColorData["TemperatureMap"][
Rescale[potential[theta, #], {1, 2 \[Pi] + 1}]]],
ColorFunctionScaling -> False
] & /@ {1, 2, 3}},
ImageSize -> 200]
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/index.html
From: Andrew Green [mailto:kiwibooga at googlemail.com]
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