Yin and yang/J

From Rosetta Code

Since the description of the implementation might be a bit confusing, here's a dump of the values used for yinyag 1

radii: <lang J>1 3 6</lang>

ranges: <lang J>┌──────┬────────────────┬───────────────────────────────┐ │_1 0 1│_3 _2 _1 0 1 2 3│_6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6│ └──────┴────────────────┴───────────────────────────────┘</lang>

squares: <lang J>┌─────┬─────┬─────┐ │_1 _1│_3 _3│_6 _6│ │_1 0│_3 _2│_6 _5│ │_1 1│_3 _1│_6 _4│ │ │_3 0│_6 _3│ │ 0 _1│_3 1│_6 _2│ │ 0 0│_3 2│_6 _1│ │ 0 1│_3 3│_6 0│ │ │ │_6 1│ │ 1 _1│_2 _3│_6 2│ │ 1 0│_2 _2│_6 3│ │ 1 1│_2 _1│_6 4│ │ │_2 0│_6 5│ │ │_2 1│_6 6│ │ │_2 2│ │ │ │_2 3│_5 _6│ │ │ │_5 _5│ │ │_1 _3│_5 _4│ │ │_1 _2│_5 _3│ │ │_1 _1│_5 _2│ │ │_1 0│_5 _1│ │ │_1 1│_5 0│ │ │_1 2│_5 1│ │ │_1 3│_5 2│ │ │ │_5 3│ │ │ 0 _3│_5 4│ │ │ 0 _2│_5 5│ │ │ 0 _1│_5 6│ │ │ 0 0│ │ │ │ 0 1│_4 _6│ │ │ 0 2│_4 _5│ │ │ 0 3│_4 _4│ │ │ │_4 _3│ │ │ 1 _3│_4 _2│ │ │ 1 _2│_4 _1│ │ │ 1 _1│_4 0│ │ │ 1 0│_4 1│ │ │ 1 1│_4 2│ │ │ 1 2│_4 3│ │ │ 1 3│_4 4│ │ │ │_4 5│ │ │ 2 _3│_4 6│ │ │ 2 _2│ │ │ │ 2 _1│_3 _6│ │ │ 2 0│_3 _5│ │ │ 2 1│_3 _4│ │ │ 2 2│_3 _3│ │ │ 2 3│_3 _2│ │ │ │_3 _1│ │ │ 3 _3│_3 0│ │ │ 3 _2│_3 1│ │ │ 3 _1│_3 2│ │ │ 3 0│_3 3│ │ │ 3 1│_3 4│ │ │ 3 2│_3 5│ │ │ 3 3│_3 6│ │ │ │ │ │ │ │_2 _6│ │ │ │_2 _5│ │ │ │_2 _4│ │ │ │_2 _3│ │ │ │_2 _2│ │ │ │_2 _1│ │ │ │_2 0│ │ │ │_2 1│ │ │ │_2 2│ │ │ │_2 3│ │ │ │_2 4│ │ │ │_2 5│ │ │ │_2 6│ │ │ │ │ │ │ │_1 _6│ │ │ │_1 _5│ │ │ │_1 _4│ │ │ │_1 _3│ │ │ │_1 _2│ │ │ │_1 _1│ │ │ │_1 0│ │ │ │_1 1│ │ │ │_1 2│ │ │ │_1 3│ │ │ │_1 4│ │ │ │_1 5│ │ │ │_1 6│ │ │ │ │ │ │ │ 0 _6│ │ │ │ 0 _5│ │ │ │ 0 _4│ │ │ │ 0 _3│ │ │ │ 0 _2│ │ │ │ 0 _1│ │ │ │ 0 0│ │ │ │ 0 1│ │ │ │ 0 2│ │ │ │ 0 3│ │ │ │ 0 4│ │ │ │ 0 5│ │ │ │ 0 6│ │ │ │ │ │ │ │ 1 _6│ │ │ │ 1 _5│ │ │ │ 1 _4│ │ │ │ 1 _3│ │ │ │ 1 _2│ │ │ │ 1 _1│ │ │ │ 1 0│ │ │ │ 1 1│ │ │ │ 1 2│ │ │ │ 1 3│ │ │ │ 1 4│ │ │ │ 1 5│ │ │ │ 1 6│ │ │ │ │ │ │ │ 2 _6│ │ │ │ 2 _5│ │ │ │ 2 _4│ │ │ │ 2 _3│ │ │ │ 2 _2│ │ │ │ 2 _1│ │ │ │ 2 0│ │ │ │ 2 1│ │ │ │ 2 2│ │ │ │ 2 3│ │ │ │ 2 4│ │ │ │ 2 5│ │ │ │ 2 6│ │ │ │ │ │ │ │ 3 _6│ │ │ │ 3 _5│ │ │ │ 3 _4│ │ │ │ 3 _3│ │ │ │ 3 _2│ │ │ │ 3 _1│ │ │ │ 3 0│ │ │ │ 3 1│ │ │ │ 3 2│ │ │ │ 3 3│ │ │ │ 3 4│ │ │ │ 3 5│ │ │ │ 3 6│ │ │ │ │ │ │ │ 4 _6│ │ │ │ 4 _5│ │ │ │ 4 _4│ │ │ │ 4 _3│ │ │ │ 4 _2│ │ │ │ 4 _1│ │ │ │ 4 0│ │ │ │ 4 1│ │ │ │ 4 2│ │ │ │ 4 3│ │ │ │ 4 4│ │ │ │ 4 5│ │ │ │ 4 6│ │ │ │ │ │ │ │ 5 _6│ │ │ │ 5 _5│ │ │ │ 5 _4│ │ │ │ 5 _3│ │ │ │ 5 _2│ │ │ │ 5 _1│ │ │ │ 5 0│ │ │ │ 5 1│ │ │ │ 5 2│ │ │ │ 5 3│ │ │ │ 5 4│ │ │ │ 5 5│ │ │ │ 5 6│ │ │ │ │ │ │ │ 6 _6│ │ │ │ 6 _5│ │ │ │ 6 _4│ │ │ │ 6 _3│ │ │ │ 6 _2│ │ │ │ 6 _1│ │ │ │ 6 0│ │ │ │ 6 1│ │ │ │ 6 2│ │ │ │ 6 3│ │ │ │ 6 4│ │ │ │ 6 5│ │ │ │ 6 6│ └─────┴─────┴─────┘</lang>

circles: <lang J>┌─────┬─────────────┬─────────────────────────┐ │0 1 0│0 0 0 1 0 0 0│0 0 0 0 0 0 1 0 0 0 0 0 0│ │1 1 1│0 1 1 1 1 1 0│0 0 0 1 1 1 1 1 1 1 0 0 0│ │0 1 0│0 1 1 1 1 1 0│0 0 1 1 1 1 1 1 1 1 1 0 0│ │ │1 1 1 1 1 1 1│0 1 1 1 1 1 1 1 1 1 1 1 0│ │ │0 1 1 1 1 1 0│0 1 1 1 1 1 1 1 1 1 1 1 0│ │ │0 1 1 1 1 1 0│0 1 1 1 1 1 1 1 1 1 1 1 0│ │ │0 0 0 1 0 0 0│1 1 1 1 1 1 1 1 1 1 1 1 1│ │ │ │0 1 1 1 1 1 1 1 1 1 1 1 0│ │ │ │0 1 1 1 1 1 1 1 1 1 1 1 0│ │ │ │0 1 1 1 1 1 1 1 1 1 1 1 0│ │ │ │0 0 1 1 1 1 1 1 1 1 1 0 0│ │ │ │0 0 0 1 1 1 1 1 1 1 0 0 0│ │ │ │0 0 0 0 0 0 1 0 0 0 0 0 0│ └─────┴─────────────┴─────────────────────────┘</lang>

cInds: <lang J>┌───┬───┬─────┐ │5 6│3 6│ 0 6│ │6 5│4 4│ 1 3│ │6 6│4 5│ 1 4│ │6 7│4 6│ 1 5│ │7 6│4 7│ 1 6│ │ │4 8│ 1 7│ │ │5 4│ 1 8│ │ │5 5│ 1 9│ │ │5 6│ 2 2│ │ │5 7│ 2 3│ │ │5 8│ 2 4│ │ │6 3│ 2 5│ │ │6 4│ 2 6│ │ │6 5│ 2 7│ │ │6 6│ 2 8│ │ │6 7│ 2 9│ │ │6 8│ 2 10│ │ │6 9│ 3 1│ │ │7 4│ 3 2│ │ │7 5│ 3 3│ │ │7 6│ 3 4│ │ │7 7│ 3 5│ │ │7 8│ 3 6│ │ │8 4│ 3 7│ │ │8 5│ 3 8│ │ │8 6│ 3 9│ │ │8 7│ 3 10│ │ │8 8│ 3 11│ │ │9 6│ 4 1│ │ │ │ 4 2│ │ │ │ 4 3│ │ │ │ 4 4│ │ │ │ 4 5│ │ │ │ 4 6│ │ │ │ 4 7│ │ │ │ 4 8│ │ │ │ 4 9│ │ │ │ 4 10│ │ │ │ 4 11│ │ │ │ 5 1│ │ │ │ 5 2│ │ │ │ 5 3│ │ │ │ 5 4│ │ │ │ 5 5│ │ │ │ 5 6│ │ │ │ 5 7│ │ │ │ 5 8│ │ │ │ 5 9│ │ │ │ 5 10│ │ │ │ 5 11│ │ │ │ 6 0│ │ │ │ 6 1│ │ │ │ 6 2│ │ │ │ 6 3│ │ │ │ 6 4│ │ │ │ 6 5│ │ │ │ 6 6│ │ │ │ 6 7│ │ │ │ 6 8│ │ │ │ 6 9│ │ │ │ 6 10│ │ │ │ 6 11│ │ │ │ 6 12│ │ │ │ 7 1│ │ │ │ 7 2│ │ │ │ 7 3│ │ │ │ 7 4│ │ │ │ 7 5│ │ │ │ 7 6│ │ │ │ 7 7│ │ │ │ 7 8│ │ │ │ 7 9│ │ │ │ 7 10│ │ │ │ 7 11│ │ │ │ 8 1│ │ │ │ 8 2│ │ │ │ 8 3│ │ │ │ 8 4│ │ │ │ 8 5│ │ │ │ 8 6│ │ │ │ 8 7│ │ │ │ 8 8│ │ │ │ 8 9│ │ │ │ 8 10│ │ │ │ 8 11│ │ │ │ 9 1│ │ │ │ 9 2│ │ │ │ 9 3│ │ │ │ 9 4│ │ │ │ 9 5│ │ │ │ 9 6│ │ │ │ 9 7│ │ │ │ 9 8│ │ │ │ 9 9│ │ │ │ 9 10│ │ │ │ 9 11│ │ │ │10 2│ │ │ │10 3│ │ │ │10 4│ │ │ │10 5│ │ │ │10 6│ │ │ │10 7│ │ │ │10 8│ │ │ │10 9│ │ │ │10 10│ │ │ │11 3│ │ │ │11 4│ │ │ │11 5│ │ │ │11 6│ │ │ │11 7│ │ │ │11 8│ │ │ │11 9│ │ │ │12 6│ └───┴───┴─────┘</lang>

M (first value): <lang J> .

  ....***   
 .....****  
......***** 
......***** 
......***** 

.......******

......***** 
......***** 
......***** 
 .....****  
  ....***   
     .      </lang>

offset: <lang J>3 0</lang>

M (second value): <lang J> .

  ....***   
 .....****  
......***** 
......***** 
......***** 

......*******

...******** 
...******** 
..********* 
 ..*******  
  .******   
     *      </lang>

M (third value): <lang J> .

  ......*   
 .......**  
.........** 
........*** 
........*** 

.......******

...******** 
...******** 
..********* 
 ..*******  
  .******   
     *      </lang>

M (fourth value): <lang J> .

  ......*   
 .......**  
.........** 
........*** 
........*** 

.......******

...******** 
...**.***** 
..**...**** 
 ..**.****  
  .******   
     *      </lang>

M (final value): <lang J> .

  ......*   
 ....*..**  
....***..** 
.....*..*** 
........*** 

.......******

...******** 
...**.***** 
..**...**** 
 ..**.****  
  .******   
     *      </lang>

Hopefully this makes the algorithm slightly more comprehensible.