Hilbert curve: Difference between revisions

Content added Content deleted
m (J: perhaps slightly clearer presentation)
Line 1,387: Line 1,387:
<lang J>iter=: (, 1 , +@|.) @: (,~ 0j_1 ,~ 0j_1*|.)
<lang J>iter=: (, 1 , +@|.) @: (,~ 0j_1 ,~ 0j_1*|.)
hilbert=: {{0j1+(%{:) +/\0,iter ^: y ''}}
hilbert=: {{0j1+(%{:) +/\0,iter ^: y ''}}
</lang>

For a graphical presentation, you could use (for example):

<lang J>require'plot'
plot hilbert 5</lang>

For asciiart, you could instead use:


<lang J>
asciiart=:{{
asciiart=:{{
coords=. 1 3*"1 +. y % <./(,+.y)-.0
coords=. 1 3*"1 +. y % <./(,+.y)-.0
Line 1,398: Line 1,407:
canvas=. '|' (>./"2 vertical#pairs)} canvas
canvas=. '|' (>./"2 vertical#pairs)} canvas
}}
}}
</lang>

For a graphical presentation, you could use (for example):

<lang J>require'plot'
plot hilbert 5</lang>

For asciiart, you could instead use:


<lang J> asciiart hilbert 4
asciiart hilbert 4
__ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __
|__ |__| __| |__ |__| __| |__ |__|
|__ |__| __| |__ |__| __| |__ |__|