http://www.abdulbaki.org/Unfolding_A_Cube.html has 10 ways of
unfolding a cube which  fit in a 4x3 (or 3x4) array. (And an 11th
which does not.)

-- 
Raul


On Thu, Jun 25, 2015 at 11:30 AM, Mike Day <mike_liz....@tiscali.co.uk> wrote:
> I'm not sure I made it clear that I'd assumed each of BLACK BLUE ... etc
> is a numerical triple,  ie 0 0 0 for BLACK, 1 1 1 for WHITE.
>
> So this line should have appeared:
>    'BLACK BLUE GREEN CYAN RED MAGENTA YELLOW WHITE'=:#:i.8
>
> Apologies also for using lower case for "blank" in the definition of plan;
> I'd forgotten it was a defined global in my workspace.
>
> Here's a slightly modified definition of mycube, with localisation of the
> nouns "plan" and "colours":
> mycube=: 3 : 0
>
> :
>
> nsteps =. 2 >. <: x
>
> 'A B C D H G F E' =. y
>
> BLANK =. < BLACK;BLACK;BLACK;BLACK
>
> FRONT =. < A;B;C;D
>
> BACK =. < H;G;F;E
>
> TOP =. < E;F;B;A
>
> LEFT =. < H;E;A;D
>
> RIGHT =. < F;G;C;B
>
> BASE =. < D;C;G;H
>
> plan =. BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$BLANK
>
> colours =. ,/,/>,"_1 each/"1 nsteps mysquarecolours each plan
>
> colours viewmat i.($plan)*nsteps+1
>
> )
>
>
> It occurs to me that one could specify alternative "nets" to
> represent the cube.  You've chosen a cross, but you can also
> have a T,  and more generally,  the left and right faces can
> roll anywhere up and down their sides;  and of course, we
> can tip the whole thing on its side,  or roll the base around
> to the left of left or the right of right.... I suppose the
> net-shape could be an optional left argument for a dyadic
>
> "cube" verb,  probably easiest to have an arbitrary enumeration
> of the net-shapes.
>
> I don't often use JHS,  having got used to JQT.  My problem with sending
> messages seems to be a recent feature of my Thunderbird installation.
>
> I hope that helps.  and hope that the code works for you.
> If it does, then have a look at this and be very amazed! ....
> 30 mycube BLACK,BLUE,WHITE,GREEN,RED,YELLOW,CYAN,:MAGENTA
>
>
> Mike
>
>
> On 25/06/2015 09:14, Linda Alvord wrote:
>>
>> Mike, I'm sorry you are having such a problem with the messages.  I have
>> found that if I run a working program in JHS and then copy the script and
>> paste in an email, I can eliminate typing errors in the code.  Then in the
>> email you can write comments around it and not need NB. all the time.
>>
>>
>> I got your code entered and it ran with no errors. However I tried
>>
>> Mycube '' and got no result. I'll look at it some more.
>>
>> Linda
>>
>> -----Original Message-----
>> From: programming-boun...@forums.jsoftware.com
>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Mike Day
>> Sent: Thursday, June 25, 2015 3:18 AM
>> To: programm...@jsoftware.com
>> Subject: Re: [Jprogramming] Trouble making patter for a color cube
>>
>> I'm still not sure the following got sent yesterday,  so here's a fourth
>> attempt.
>> Sorry about the double-line-spacing,
>> M
>>
>> On 24/06/2015 15:46, Mike Day wrote:
>>>
>>> I've just had a look at the correspondence.
>>>
>>> It seems to me that it's better to consider the 8 corners of the cube.
>>> If we specify their colours,  then we merely need to interpolate the
>>> colours along the edges and within the faces.
>>>
>>> Here's an attempt to do that, plagiarising blatantly from Raul's
>>> earlier postings. Over to Linda to render the code in basic J.
>>>
>>> The 8 corners may indeed use the 8 colours in #:i.8,  but don't need
>>> to do so,  and may use 8 triples of any numbers in [0.0,1.0].
>>>
>>> The code follows below, with some comments, and apologies for
>>> line-wraps, line-skips or whatever.
>>>
>>> Also apologies for any typos in this patter,
>>>
>>> Mike
>>>
>>> NB. revision of Raul's colour-mixing verb,  with 4 corner colours
>>> rather than 3 NB. given corner colours ABCD (4x3 array), and x>1 steps
>>> from A to B etc
>>>
>>> NB. make an (x+1)x(x+1)x3 array of mixed colours
>>>
>>> NB. assumes input colours are in [0,1], but output in [0,255]
>>>
>>> msc=:mysquarecolours =: 3 : 0
>>>
>>> :
>>>
>>> nsteps =. x
>>>
>>> 'A B C D' =. y
>>>
>>> lamda =. (,:~-.)@:(%~ i.@>:) nsteps
>>>
>>> AB =. lamda +/@:(*/"1) A,:B NB. mix of colours between corners A & B
>>>
>>> CD =. lamda +/@:(*/"1) D,:C NB. mix of colours between corners C & D
>>>
>>> 1 0 2 |: <.255 * lamda +/@:(*/"1) AB,:CD NB. transpose 'cos I got the
>>> order wrong!
>>>
>>> )
>>>
>>>
>>> NB. Cube layout: A-H label the corners;
>>>
>>> NB. (looked ok in the edit window, added ... to
>>> NB.    force spacing!!!)
>>> NB. ..H-G
>>>
>>> NB. ..|+|
>>>
>>> NB. H-E-F-G sides are AB,BC,...,BF,EA,...FG,GH
>>>
>>> NB. |+|+|+| faces are ABCD, DCGH, ... HGFE
>>>
>>> NB. D-A-B-C
>>>
>>> NB. ..|+|
>>>
>>> NB. ..D-C
>>>
>>> NB. ..|+|
>>>
>>> NB. ..H-G
>>>
>>>
>>> NB. verb to draw the plan
>>>
>>> NB. lhs = number of steps = %: number of facets on a face
>>>
>>> NB. rhs = 8 x 3 array of corner colours in range [0,1]
>>>
>>> mycube=: 3 : 0
>>>
>>> :
>>>
>>> nsteps =. 2 >. <: x
>>>
>>> 'A B C D H G F E' =. y
>>>
>>> BLANK =. < BLACK;BLACK;BLACK;BLACK
>>>
>>> FRONT =. < A;B;C;D
>>>
>>> BACK =. < H;G;F;E
>>>
>>> TOP =. < E;F;B;A
>>>
>>> LEFT =. < H;E;A;D
>>>
>>> RIGHT =. < F;G;C;B
>>>
>>> BASE =. < D;C;G;H
>>>
>>> plan =: BASE(<3 1)}FRONT(<2 1)}(LEFT,TOP,RIGHT)1}BACK(<0 1)}4 3$blank
>>>
>>> colours =: ,/,/>,"_1 each/"1 nsteps mysquarecolours each plan
>>>
>>> colours viewmat i.4 3*nsteps+1
>>>
>>> )
>>>
>>>
>>> NB. sample call using all colours in #:i.8
>>>
>>> NB. 4 mycube BLACK,BLUE,WHITE,GREEN,RED,YELLOW,CYAN,:MAGENTA
>>>
>>>
>>> NB. The colours don't have to be all distinct
>>>
>>> NB. 3 mycube BLACK,BLUE,WHITE,GREEN,RED,YELLOW,BLUE,:BLACK
>>>
>>>
>>> On 24/06/2015 07:18, Raul Miller wrote:
>>>>
>>>> A color, for viewmat, the way you are using it, is a sequence of
>>>> three integers in the range 0 .. 255.
>>>>
>>>> The problem is that none of the sequences in FRONT nor BASE are valid
>>>> colors.
>>>>
>>>> This problem is made more confusing because while BLACK and WHITE are
>>>> single valued "colors", the others range from black to white with the
>>>> named color appearing in the middle. And then you're using just parts
>>>> of those sequences. The grammar may be "simple" but the abstractions
>>>> are not.
>>>>
>>>> So... there are several problems to fix here, but the biggest problem
>>>> is that your results are not valid colors. If I subtract 255 from
>>>> each of the values you have there, they are better, but still not
>>
>> correct.
>>>>
>>>> Anyways, if I look at the adjacent squares, FRONT should have:
>>>>
>>>> at index 0 (upper left corner):  255 0 0 at index 4 (upper right
>>>> corner):  255 0 255 at index 20 (lower left corner):  255 255 0 at
>>>> index 24 (lower right corner): 255 255 255
>>>>
>>>>    Similarly, BASE should have:
>>>>
>>>> at index 0: 255 255 0
>>>> at index 4: 255 255 255
>>>> at index 20: 0 255 0
>>>> at index 24: 0 255 255
>>>>
>>>> Instead, you have this:
>>>>
>>>>       0 4 20 24{ FRONT -255
>>>> 255 255 255
>>>> 255   0 255
>>>> 255 255   0
>>>> 255   0   0
>>>>       0 4 20 24{ BASE -255
>>>> 255 255 255
>>>> 255 255   0
>>>>     0 255 255
>>>>     0 255   0
>>>>
>>>> Hopefully this helps...
>>>>
>>
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> ----------------------------------------------------------------------
> 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