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:

1 3 6

ranges:

┌──────┬────────────────┬───────────────────────────────┐
_1 0 1_3 _2 _1 0 1 2 3_6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6
└──────┴────────────────┴───────────────────────────────┘

squares:

┌─────┬─────┬─────┐
_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
└─────┴─────┴─────┘

circles:

┌─────┬─────────────┬─────────────────────────┐
0 1 00 0 0 1 0 0 00 0 0 0 0 0 1 0 0 0 0 0 0
1 1 10 1 1 1 1 1 00 0 0 1 1 1 1 1 1 1 0 0 0
0 1 00 1 1 1 1 1 00 0 1 1 1 1 1 1 1 1 1 0 0
│ │1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 0
│ │0 1 1 1 1 1 00 1 1 1 1 1 1 1 1 1 1 1 0
│ │0 1 1 1 1 1 00 1 1 1 1 1 1 1 1 1 1 1 0
│ │0 0 0 1 0 0 01 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
└─────┴─────────────┴─────────────────────────┘

cInds:

┌───┬───┬─────┐
5 63 60 6
6 54 41 3
6 64 51 4
6 74 61 5
7 64 71 6
│ │4 81 7
│ │5 41 8
│ │5 51 9
│ │5 62 2
│ │5 72 3
│ │5 82 4
│ │6 32 5
│ │6 42 6
│ │6 52 7
│ │6 62 8
│ │6 72 9
│ │6 82 10
│ │6 93 1
│ │7 43 2
│ │7 53 3
│ │7 63 4
│ │7 73 5
│ │7 83 6
│ │8 43 7
│ │8 53 8
│ │8 63 9
│ │8 73 10
│ │8 83 11
│ │9 64 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
└───┴───┴─────┘

M (first value):

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

offset:

3 0

M (second value):

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

M (third value):

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

M (fourth value):

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

M (final value):

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

Hopefully this makes the algorithm slightly more comprehensible.