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.