I got a lot of squares running your script, and the one that I really liked was the one that was labeled 'TOP'. So I'll base my implementation on that one.
For something as complicated as this, I think I'd like to sketch out first how it's supposed to look. So here's my first sketch: (<'BASE')(<3 1)}(<'FRONT')(<2 1)}(;:'LEFT TOP RIGHT')1}(<'BACK')(<0 1)}4 3$a: (beware line wrap - that's supposed to be a single line). But I also need to think about colors. After a little fiddling, I decided to go with this: TOP=:<,.'TOP';<2 2$;:'BLACK BLUE RED MAGENTA' BACK=:<,.'BACK';<2 2$;:'GREEN CYAN BLACK BLUE' FRONT=:<,.'FRONT';<2 2$;:'RED MAGENTA YELLOW WHITE' BASE=:<,.'BASE';<2 2$;:'YELLOW WHITE GREEN CYAN' LEFT=:<,.'LEFT';<2 2$;:'BLACK RED GREEN YELLOW' RIGHT=:<,.'RIGHT';<2 2$;:'MAGENTA BLUE WHITE CYAN' BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$a: with that out of the way, all I need is a routine to render squares, the rest of the code almost writes itself: 'BLACK BLUE GREEN CYAN RED MAGENTA YELLOW WHITE'=:#:i.8 square=:4 :0 'O X Y'=. y colors=. <.255*O+"1,/0.25*((i.5)*/Y-"1 O)+"1/(i.5)*/X-"1 O colors viewmat (i.5 5);x ) 'BACK' square GREEN;CYAN;BLACK 'LEFT' square BLACK;RED;GREEN 'TOP' square BLACK;BLUE;RED 'RIGHT' square MAGENTA;BLUE;WHITE 'FRONT' square RED;MAGENTA;YELLOW 'BASE' square YELLOW;WHITE;GREEN Good enough? Thanks, -- Raul On Sat, Jun 13, 2015 at 12:04 AM, Linda Alvord <[email protected]> wrote: > I am planning to begin a review of J Tech Grade 3 before introducing some > new topics in Grade 4. I am making a pattern which could be printed and then > folded to form a color cube. It requires three dimensions for the three > colors of light, Green, Red and Blue. I have the colors following the > order of counting to 8 in base 2. The columns in the binary array represent > Green, Red and then Blue. This insures that the falues are in order from > dark to light. > > > > The pattern must have six sides. All went well with the first 4 sides, > However the final two sides don't cooperate. I suspect there is some little > problem in viewmat. Here is my progress so far. The front and the bottom are > the problems. They both involve YELLOW. > > > > As is usual I welcome ways you may know to improve what I am trying to do. I > suggest using JHS to see how this is progressing. > > > > load 'viewmat' > > N=:<.63.8*i.5 > > BLACK=:9 3$0 > > BLUE=:(2#"1,.(4#0),N),.N,4#255 > > RED=:(N,4#255),.2#"1,.(4#0),N > > MAGENTA=:(N,4#255),.((4#0),N),.N,4#255 > > GREEN=:((4#0),N),.(N,4#255),.(4#0),N > > CYAN=:((4#0),N),.2#"1 ,.N,4#255 > > YELLOW=:(2#"1 ,.N,4#255) ,.(4#0),N > > WHITE=:9 3$255 > > (#:i.8);'BLACK','BLUE','RED','MAGENTA','GREEN','CYAN','YELLOW',:'WHITE' > > > > A=:<.0.5*(i.5 5)+i.5 5 > > > > BLANK=:25 3$255 > > BACK=:25 3$,><"1 (0 1 2 3 4{GREEN)+"1/(0 1 2 3 4){BLUE > > BACK viewmat A > > (BACK,BLANK)viewmat (25+A),.|.A > > > > TOP=:25 3$,><"1 (0 1 2 3 4{RED)+"1/(0 1 2 3 4){BLUE > > TOP viewmat A;'TOP' > > LEFT=:25 3$,><"1 (0 1 2 3 4{GREEN)+"1/(0 1 2 3 4){RED > > LEFT viewmat A > > (TOP,LEFT) viewmat (25+|:|.A),.A > > > > ((TOP,LEFT) viewmat (25+|:|.A),.A),.(BACK,BLANK)viewmat (25+A),.|.A > > > > RIGHT=:R=:25 3$,><"1 P=:(8 7 6 5 4{CYAN)+"1/(8 7 6 5 4){MAGENTA > > RIGHT viewmat A > > > > FRONT=:S=:25 3$,><"1 Q=:(8 7 6 5 4{YELLOW)+"1/(8 7 6 5 4){MAGENTA > > FRONT viewmat A > > > > BOTTOM=:25 3$,><"1 (8 7 6 5 4{CYAN)+"1/(8 7 6 5 4){YELLOW > > BOTTOM viewmat A > > > > R;S > > > > I included R;S to show how close the good and the bad faces are prior to > using viewmat. > > > > Linda > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
