Re: Color grid with x and y args to visualize effects of 2D
- To: mathgroup at smc.vnet.net
- Subject: [mg116604] Re: Color grid with x and y args to visualize effects of 2D
- From: Fred Bartoli <myname_with_a_dot_inbetween at free.fr>
- Date: Mon, 21 Feb 2011 06:08:30 -0500 (EST)
- References: <ijo588$lk8$1@smc.vnet.net> <ijqqmc$ars$1@smc.vnet.net>
- Reply-to: myname_with_a_dot_inbetween at free.fr
[Resent to correct bad message number - Moderator]
Christopher O. Young a écrit :
> On 2/19/11 5:15 AM, in article ijo588$lk8$1 at smc.vnet.net, "Christopher O.
> Young" <cy56 at comcast.net> wrote:
>
>> I'm trying to get a simple kind of color chart function that I can pass x
>> and as arguments to. I want to have it running across by hue and up by
>> saturation and value. This is to illustrate 2D transformations, so I need to
>> have arguments that I can _inversely_ transform in order to illustrate the
>> effects of 2D transformations, whether linear or not.
>>
>> One direct approach would seem to have nested loops, but I can't see how to
>> do this if the body of the For loop in Mathematica is part of the function.
>>
>> Any help getting a "jump start" in this kind of thing would be a huge help
>> to me.
>>
>> For[i = 0, i < 10, i++,
>>
>> For[j = 0, j < 10, j++,
>>
>> RegionPlot[(i < x < i + 1) && (j < y < j + 1), {x,0,10}, {y,0,10}]
>>
>> ]
>>
>> ]
>
>
> As shown at http://home.comcast.net/~cy56/Grid.nb, I finally got a color
> grid with x and y as arguments, but it's hard to believe there isn't a
> simpler way to do it. It's quite a struggle to figure out how to specify the
> colors. If high school students are going to be comfortable with doing these
> visualizations, there needs to be a way to simplify this radically, I think.
>
> I need to have the arguments x and y since I want to be able to transform
> the grid by transforming x and y using the inverse transform.
>
> RegionPlot[
> {0 < x < 1 && 0 < y < 1,
> 0 < x < 1 && 1 < y < 2,
> 0 < x < 1 && 2 < y < 3,
> 1 < x < 2 && 0 < y < 1,
> 1 < x < 2 && 1 < y < 2,
> 1 < x < 2 && 2 < y < 3,
> 2 < x < 3 && 0 < y < 1,
> 2 < x < 3 && 1 < y < 2,
> 2 < x < 3 && 2 < y < 3},
> {x, 0, 3}, {y, 0, 3},
> ColorFunction -> Function[{x, y},
> Hue[\[LeftFloor]x\[RightFloor]/3, .5 + .5 \[LeftFloor]y\[RightFloor]/3,
> 1]],
> ColorFunctionScaling -> False
> ]
>
>
> I still can't figure out how to use Table or whatever to get the region
> specifications into a general function.
>
>
mappingFunc[{x_, y_, scale_}] = {x/scale, y/scale};
(* or, if you want to vary brightness as well and get your students lost :-)
mappingFunc[{x_, y_, scale_}] = {x/scale, y/scale,
yourbrightnessfunction[x,y]};
*)
data[n_] := Table[mappingFunc@{j, i, n}, {i, 0, n}, {j, 0, n}]
data[3]
Graphics@Raster[data[10], ColorFunction -> Hue, ColorFunctionScaling ->
False]
--
Thanks,
Fred.