Skip to content

Instantly share code, notes, and snippets.

@rdm
Last active August 29, 2015 14:23
Show Gist options
  • Save rdm/3b11815d4af7392e1f62 to your computer and use it in GitHub Desktop.
Save rdm/3b11815d4af7392e1f62 to your computer and use it in GitHub Desktop.
NB. Mike Day
NB. 6/25/15
load'viewmat'
'BLACK BLUE GREEN CYAN RED MAGENTA YELLOW WHITE'=:#:i.8
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!
)
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
)
30 mycube BLACK,BLUE,CYAN,GREEN,YELLOW,WHITE,MAGENTA,:RED
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment