Re: Color grid with x and y args to visualize
- To: mathgroup at smc.vnet.net
- Subject: [mg116595] Re: Color grid with x and y args to visualize
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 21 Feb 2011 04:21:14 -0500 (EST)
rgns = {
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};
Here are a couple ways of generating these
n = 3;
rgns1 = Table[xv < x < xv + 1 && yv < y < yv + 1,
{xv, 0, n - 1}, {yv, 0, n - 1}] // Flatten;
rgns2 = Outer[And,
Thread[Range[0, n - 1] < x < Range[n]],
Thread[Range[0, n - 1] < y < Range[n]]] //
Flatten;
rgns3 = Outer[And, Sequence @@ (
Thread[Range[0, n - 1] < # < Range[n]] & /@
{x, y})] //
Flatten;
rgns === rgns1 === rgns2 === rgns3
True
Bob Hanlon
---- "Christopher O. Young" <cy56 at comcast.net> wrote:
=============
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.