Here's a "smooth blending" variant of this color cube concept:

'BLACK BLUE GREEN CYAN RED MAGENTA YELLOW WHITE'=:#:i.8

'BLANK'=: <WHITE;WHITE;WHITE
'BACK'=:  <GREEN;CYAN;BLACK
'LEFT'=:  <GREEN;BLACK;YELLOW
'TOP'=:   <BLACK;BLUE;RED
'RIGHT'=: <BLUE;CYAN;MAGENTA
'FRONT'=: <RED;MAGENTA;YELLOW
'BASE'=:  <YELLOW;WHITE;GREEN

squarecolor=:4 :0
  'O X Y'=. y
  colors=. <.255*O+"1](%x-1)*((i.x)*/Y-"1 O)+"1/(i.x)*/X-"1 O
)

require'viewmat'
cube=:3 :0
  plan=. BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$BLANK
  'rgb' viewmat 256#.,/>,"_1 each/"1 y squarecolor each plan
)

cube 160

Here, the right argument to cube is the size (in pixels) of a square
on the face of the resulting "color cube". The resulting image is 4
times higher and three times wider than a single face. The point,
after all, was to generate a page which, when printed out, could then
be cut and folded into a color cube.

So I also changed the blank (unused) squares to be white - that way
the printer should use less ink. It might be more visually appealing
to use a darker color, but since the printed page is just an
intermediate product, I don't think that that should matter.

Thanks,

-- 
Raul


On Sun, Jun 14, 2015 at 10:13 AM, Raul Miller <rauldmil...@gmail.com> wrote:
> My apologies.
>
> I left out the color definition line. (Brian Schott emailed me a note
> about this, privately.)
>
> Here's what I think you need:
>
> 'BLACK BLUE GREEN CYAN RED MAGENTA YELLOW WHITE'=:#:i.8
>
> 'BLANK'=: <BLACK;BLACK;BLACK
> 'BACK'=:  <GREEN;CYAN;BLACK
> 'LEFT'=:  <GREEN;BLACK;YELLOW
> 'TOP'=:   <BLACK;BLUE;RED
> 'RIGHT'=: <BLUE;CYAN;MAGENTA
> 'FRONT'=: <RED;MAGENTA;YELLOW
> 'BASE'=:  <YELLOW;WHITE;GREEN
>
> squarecolor=:3 :0
>   'O X Y'=. y
>   colors=. <.255*O+"1]0.25*((i.5)*/Y-"1 O)+"1/(i.5)*/X-"1 O
> )
>
> require'viewmat'
> cube=:3 :0
>   plan=: BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$BLANK
>   colors=:  ,/,/>,"_1 each/"1 squarecolor each plan
>   colors viewmat i.20 15
> )
>
> cube''
>
> And, once you have that, you may want to do something like this:
>
>    setsize_jviewmat_ 750 1000
>    savemat_jviewmat_ jpath '~user/color-cube-page.png'
>
> Thanks,
>
> --
> Raul
>
> On Sun, Jun 14, 2015 at 2:01 AM, Linda Alvord <lindaalv...@verizon.net> wrote:
>> This time I get an error after a large image of color stripes from red to
>> blue.
>>
>> cube''
>> |value error: BLACK
>> |       colors viewmat i.20 15
>>
>> I'm not sure how to fix it.
>>
>> Linda
>>
>>
>> -----Original Message-----
>> From: programming-boun...@forums.jsoftware.com
>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Raul Miller
>> Sent: Saturday, June 13, 2015 10:00 AM
>> To: Programming forum
>> Subject: Re: [Jprogramming] Trouble making patter for a color cube
>>
>> Ok, fair enough.
>>
>> New plan:
>>
>> 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$;:'GREEN BLACK RED YELLOW'
>> RIGHT=:<,.'RIGHT';<2 2$;:'BLUE CYAN MAGENTA WHITE'
>>    BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$a:
>>
>> Implementation:
>>
>> 'BLANK'=: <BLACK;BLACK;BLACK
>> 'BACK'=:  <GREEN;CYAN;BLACK
>> 'LEFT'=:  <GREEN;BLACK;YELLOW
>> 'TOP'=:   <BLACK;BLUE;RED
>> 'RIGHT'=: <BLUE;CYAN;MAGENTA
>> 'FRONT'=: <RED;MAGENTA;YELLOW
>> 'BASE'=:  <YELLOW;WHITE;GREEN
>>
>> squarecolor=:3 :0
>>   'O X Y'=. y
>>   colors=. <.255*O+"1]0.25*((i.5)*/Y-"1 O)+"1/(i.5)*/X-"1 O
>> )
>>
>> cube=:3 :0
>>   plan=: BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$BLANK
>>   ref=.  ((75*i.4)+/5*i.3) +each <i.5 5
>>   colors=.  ,/,/>,"_1 each/"1 squarecolor each plan
>>   colors viewmat i.20 15
>> )
>>
>> cube''
>>
>> Technically, I didn't need to quote my color names, but I decided to leave
>> the quotes in as emphasis (or, perhaps more accurately, to give some style
>> to those particular names).
>>
>> Thanks,
>>
>> --
>> Raul
>>
>>
>> On Sat, Jun 13, 2015 at 5:11 AM, Linda Alvord <lindaalv...@verizon.net>
>> wrote:
>>> Raul, I can see that a plan is useful. If you think of Black as no light.
>>> Now build three axes. Blue is to the right (0 to 255). Red is forward
>> toward
>>> you. And green moves up from the base. So
>>>
>>> I like your floor plan, Now LEFT and RIGHT are not oriented correctly.
>>>
>>> Try your code in JHS. There you can just place the images where you want
>>> them.
>>>
>>> Linda
>>>
>>> -----Original Message-----
>>> From: programming-boun...@forums.jsoftware.com
>>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda
>> Alvord
>>> Sent: Saturday, June 13, 2015 4:40 AM
>>> To: programm...@jsoftware.com
>>> Subject: Re: [Jprogramming] Trouble making patter for a color cube
>>>
>>> Also, when I ran your code in jqt, I separated the  separate images and
>> they
>>> work together.  However they are a horizontal flip of your layout for the
>>> pieces.  Linda
>>>
>>> -----Original Message-----
>>> From: programming-boun...@forums.jsoftware.com
>>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda
>> Alvord
>>> Sent: Saturday, June 13, 2015 4:25 AM
>>> To: programm...@jsoftware.com
>>> Subject: Re: [Jprogramming] Trouble making patter for a color cube
>>>
>>> Raul, I got an error after you layout appeared.  Now that I removed that
>>> line, I got your six images. They are correct Now put them into your
>> layout
>>> pattern so that the correct colors are joined. And make one big image with
>>> the correct sides joined.
>>>
>>> It still bothers me that two of the faces in my work aren't correct.  Now
>> on
>>> to study your strategy.  Linda
>>>
>>> -----Original Message-----
>>> From: programming-boun...@forums.jsoftware.com
>>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda
>> Alvord
>>> Sent: Saturday, June 13, 2015 3:21 AM
>>> To: programm...@jsoftware.com
>>> Subject: Re: [Jprogramming] Trouble making patter for a color cube
>>>
>>> This a "Color Cube. It should print in color. And then you cut it out and
>>> fold it up and you have a little cube with pretty colors that will show
>> you
>>> lots of things about how light makescolors. Myc cube will only have 125
>>> colors, but it becomes infinite in your imagination.
>>>
>>> However, I will give some thought to what you sent. This is why the forum
>> is
>>> such fun. Each person tackles a problem in a different way.
>>>
>>> Linda
>>>
>>> -----Original Message-----
>>> From: programming-boun...@forums.jsoftware.com
>>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Raul Miller
>>> Sent: Saturday, June 13, 2015 1:00 AM
>>> To: Programming forum
>>> Subject: Re: [Jprogramming] Trouble making patter for a color cube
>>>
>>> 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 <lindaalv...@verizon.net>
>>> 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
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to