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 djmp at earthlink.net http://home.earthlink.net/~djmp/ 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? Thanks in advance! Manuel