Re: rasterarray border?

• To: mathgroup at smc.vnet.net
• Subject: [mg56056] Re: [mg55989] rasterarray border?
• From: "David Park" <djmp at earthlink.net>
• Date: Thu, 14 Apr 2005 08:55:30 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Manuel,

I would abandon RasterArray and instead make my own array of Polygons and
Lines. I made up my own von array and also reversed the rows so the plot
will correspond to the displayed MatrixForm of von. The Polygons have to be
drawn first and then the selected Polygons have to be outlined else the
blank polygon will cover up a previous outline.

Needs["Graphics`Colors`"]

pgon[j_, i_] :=
Polygon[{{i, j}, {i + 1, j}, {i + 1, j + 1}, {i, j + 1}, {i, j}}]

polyarray[narray_] :=
Module[{imax, jmax, poly, outline},
{imax, jmax} = Dimensions[narray];
{Table[
poly = pgon[i - 1, j - 1];
Switch[Part[narray, i, j],
-1, {RGBColor[1, 1, 1], poly},
0, {RGBColor[0.97, 0.97, 1], poly},
1, {RGBColor[0.3, 0, 0], poly},
2, {RGBColor[1, .78, .78], poly}], {i, 1, imax}, {j, 1, jmax}],
Table[
poly = pgon[i - 1, j - 1];
outline = Sequence[Black, Line @@ poly];
Switch[Part[narray, i, j],
-1, {},
0, {outline},
1, {outline},
2, {outline}], {i, 1, imax}, {j, 1, jmax}]}]

von = Array[Random[Integer, {-1, 2}] &, {5, 5}];
von2 = Reverse@von;
von//MatrixForm

Show[Graphics[
{polyarray[von2]}],
AspectRatio -> Automatic];

David Park

From: Manuel Marques-Pita [mailto:m.marques-pita at ed.ac.uk]
To: mathgroup at smc.vnet.net

hello,

I am drawing a rasterarray in which I need to draw a border/stroke round
some of the elements in the array (all the ones != -1 below).

Show[Graphics[RasterArray[von /.
{-1 -> RGBColor[1, 1, 1],
0 -> RGBColor[0.97, 0.97, 1],
1 -> RGBColor[0.3, 0, 0],
2 -> RGBColor[1, .78, .78]}]],
AspectRatio -> Automatic];

I haven't found a way to do this yet, any ideas/suggestions?