Last data update: 2014.03.03

R: Draw a 2D L-System Using Turtle Graphics
drawLsysR Documentation

Draw a 2D L-System Using Turtle Graphics

Description

This function takes input strings, previously created with Lsys, translates them into 2D turtle graphics instructions, and then plots the results.

Usage

drawLsys(string = NULL, drules = NULL, st = c(5, 50, 0), stepSize = 1,
  ang = 90, which = length(string), shrinkFactor = NULL, ...)

Arguments

string

A character vector giving the strings containing the turtle graphics instructions. Created by Lsys.

drules

A data frame containing columns "symbols" and "action". These contain the input symbols and the corresponding drawing action. See the examples.

st

A numeric vector of length 3 giving the screen coordinates where the start of the curve should be placed. The screen is 100 x 100 with the lower left corner as 0,0. The third element is the initial drawing angle in degrees.

stepSize

Numeric. The length of the drawing step.

ang

Numeric. The angle in degrees when a change in direction is requested.

which

Integer. The entries in string which should be drawn. Defaults to the last (most complex) entry. If length(which) > 1 each plot is drawn in its own window.

shrinkFactor

A numeric vector of the same length as string. As each plot is made, stepSize will be divided by the corresponding value in shrinkFactor. This allows one to scale down the increasingly large/complex plots to make them occupy a space similar to the less complex plots.

...

Additional parameters to be passed to the grid drawing routines. Most likely, something of the form gp = gpar(...). See gpar and the last example.

Value

None; side effect is a plot.

Warning

Remember that if retAll = TRUE, Lsys returns the initial string plus the results of all iterations. In this case, if you want the 5th iteration, you should specify which = 6 since the initial string is in string[1].

Examples

require('grid')

# Modified Koch curve
rkoch1 <- data.frame(inp = c("F"), out = c("F+F-F-F+F"), stringsAsFactors = FALSE)
k1 <- Lsys(init = "F", rules = rkoch1, n = 3)
dkoch <- data.frame(symbol = c("F", "f", "+", "-", "[", "]"),
action = c("F", "f", "+", "-", "[", "]"), stringsAsFactors = FALSE)
drawLsys(string = k1, stepSize = 3, st = c(10, 50, 0), drules = dkoch)
grid.text("Modified Koch Curve (n = 3)", 0.5, 0.25)

# Classic Koch snowflake
rkoch2 <- data.frame(inp = c("F"), out = c("F-F++F-F"), stringsAsFactors = FALSE)
k2 <- Lsys(init = "F++F++F", rules = rkoch2, n = 4)
drawLsys(string = k2, stepSize = 1, ang = 60, st = c(10, 25, 0), drules = dkoch)
grid.text("Classic Koch Snowflake (n = 4)", 0.5, 0.5)

# Sierpinski Triangle
rSierp <- data.frame(inp = c("A", "B"), out = c("B-A-B", "A+B+A"), stringsAsFactors = FALSE)
s <- Lsys(init = "A", rules = rSierp, n = 6)
dSierp <- data.frame(symbol = c("A", "B", "+", "-", "[", "]"),
action = c("F", "F", "+", "-", "[", "]"), stringsAsFactors = FALSE)
drawLsys(string = s, stepSize = 1, ang = 60, st = c(20, 25, 0), drules = dSierp)
grid.text("Sierpinski Triangle (n = 6)", 0.5, 0.1)

# Islands & Lakes
islands_rules <- data.frame(inp = c("F", "f"), out = c("F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFF",
"ffffff"), stringsAsFactors = FALSE)
islands <- Lsys(init = "F+F+F+F", rules = islands_rules, n = 2)
draw_islands <- data.frame(symbol = c("F", "f", "+", "-", "[", "]"),
action = c("F", "f", "+", "-", "[", "]"), stringsAsFactors = FALSE)
drawLsys(string = islands, step = 1, ang = 90, st = c(70, 35, 90),
drules = draw_islands,  gp = gpar(col = "red", fill = "gray"))

# A primitive tree
prim_rules <- data.frame(inp = c("0", "1"),
out = c("1[+0]-0", "11"), stringsAsFactors = FALSE)
primitive_plant <- Lsys(init = "0", rules = prim_rules, n = 7)
draw_prim <- data.frame(symbol = c("0", "1", "+", "-", "[", "]"),
action = c("F", "F", "+", "-", "[", "]"), stringsAsFactors = FALSE)
drawLsys(string = primitive_plant, stepSize = 1, ang = 45, st = c(50, 5, 90),
drules = draw_prim, which = 7)
grid.text("Primitive Tree (n = 6)", 0.5, 0.75)

# A more realistic botanical structure
# Some call this a fractal tree, I think it is more like seaweed
# Try drawing the last iteration (too slow for here, but looks great)
fractal_tree_rules <- data.frame(inp = c("X", "F"),
out = c("F-[[X]+X]+F[+FX]-X", "FF"), stringsAsFactors = FALSE)
fractal_tree <- Lsys(init = "X", rules = fractal_tree_rules, n = 7)
draw_ft <- data.frame(symbol = c("X", "F", "+", "-", "[", "]"),
action = c("f", "F", "+", "-", "[", "]"), stringsAsFactors = FALSE)
drawLsys(string = fractal_tree, stepSize = 2, ang = 25, st = c(50, 5, 90),
drules = draw_ft, which = 5, gp = gpar(col = "chocolate4", fill = "honeydew"))
grid.text("Fractal Seaweed (n = 4)", 0.25, 0.25)

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(LindenmayeR)
Loading required package: stringr
Loading required package: grid
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/LindenmayeR/drawLsys.Rd_%03d_medium.png", width=480, height=480)
> ### Name: drawLsys
> ### Title: Draw a 2D L-System Using Turtle Graphics
> ### Aliases: drawLsys
> ### Keywords: plot
> 
> ### ** Examples
> 
> require('grid')
> 
> # Modified Koch curve
> rkoch1 <- data.frame(inp = c("F"), out = c("F+F-F-F+F"), stringsAsFactors = FALSE)
> k1 <- Lsys(init = "F", rules = rkoch1, n = 3)

Cycle 0 string has length 1
Cycle 0: F 
[[1]]
     start end
[1,]     1   1

[[1]]
  start end    insert
1     1   1 F+F-F-F+F


Cycle 1 string has length 9
Cycle 1: F+F-F-F+F
[[1]]
     start end
[1,]     1   1
[2,]     3   3
[3,]     5   5
[4,]     7   7
[5,]     9   9

[[1]]
  start end    insert
1     1   1 F+F-F-F+F
2     3   3 F+F-F-F+F
3     5   5 F+F-F-F+F
4     7   7 F+F-F-F+F
5     9   9 F+F-F-F+F


Cycle 2 string has length 49
Cycle 2: F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
[[1]]
      start end
 [1,]     1   1
 [2,]     3   3
 [3,]     5   5
 [4,]     7   7
 [5,]     9   9
 [6,]    11  11
 [7,]    13  13
 [8,]    15  15
 [9,]    17  17
[10,]    19  19
[11,]    21  21
[12,]    23  23
[13,]    25  25
[14,]    27  27
[15,]    29  29
[16,]    31  31
[17,]    33  33
[18,]    35  35
[19,]    37  37
[20,]    39  39
[21,]    41  41
[22,]    43  43
[23,]    45  45
[24,]    47  47
[25,]    49  49

[[1]]
   start end    insert
1      1   1 F+F-F-F+F
2      3   3 F+F-F-F+F
3      5   5 F+F-F-F+F
4      7   7 F+F-F-F+F
5      9   9 F+F-F-F+F
6     11  11 F+F-F-F+F
7     13  13 F+F-F-F+F
8     15  15 F+F-F-F+F
9     17  17 F+F-F-F+F
10    19  19 F+F-F-F+F
11    21  21 F+F-F-F+F
12    23  23 F+F-F-F+F
13    25  25 F+F-F-F+F
14    27  27 F+F-F-F+F
15    29  29 F+F-F-F+F
16    31  31 F+F-F-F+F
17    33  33 F+F-F-F+F
18    35  35 F+F-F-F+F
19    37  37 F+F-F-F+F
20    39  39 F+F-F-F+F
21    41  41 F+F-F-F+F
22    43  43 F+F-F-F+F
23    45  45 F+F-F-F+F
24    47  47 F+F-F-F+F
25    49  49 F+F-F-F+F


Cycle 3 string has length 249
Cycle 3: F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
> dkoch <- data.frame(symbol = c("F", "f", "+", "-", "[", "]"),
+ action = c("F", "f", "+", "-", "[", "]"), stringsAsFactors = FALSE)
> drawLsys(string = k1, stepSize = 3, st = c(10, 50, 0), drules = dkoch)
> grid.text("Modified Koch Curve (n = 3)", 0.5, 0.25)
> 
> # Classic Koch snowflake
> rkoch2 <- data.frame(inp = c("F"), out = c("F-F++F-F"), stringsAsFactors = FALSE)
> k2 <- Lsys(init = "F++F++F", rules = rkoch2, n = 4)

Cycle 0 string has length 7
Cycle 0: F++F++F 
[[1]]
     start end
[1,]     1   1
[2,]     4   4
[3,]     7   7

[[1]]
  start end   insert
1     1   1 F-F++F-F
2     4   4 F-F++F-F
3     7   7 F-F++F-F


Cycle 1 string has length 28
Cycle 1: F-F++F-F++F-F++F-F++F-F++F-F
[[1]]
      start end
 [1,]     1   1
 [2,]     3   3
 [3,]     6   6
 [4,]     8   8
 [5,]    11  11
 [6,]    13  13
 [7,]    16  16
 [8,]    18  18
 [9,]    21  21
[10,]    23  23
[11,]    26  26
[12,]    28  28

[[1]]
   start end   insert
1      1   1 F-F++F-F
2      3   3 F-F++F-F
3      6   6 F-F++F-F
4      8   8 F-F++F-F
5     11  11 F-F++F-F
6     13  13 F-F++F-F
7     16  16 F-F++F-F
8     18  18 F-F++F-F
9     21  21 F-F++F-F
10    23  23 F-F++F-F
11    26  26 F-F++F-F
12    28  28 F-F++F-F


Cycle 2 string has length 112
Cycle 2: F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F
[[1]]
      start end
 [1,]     1   1
 [2,]     3   3
 [3,]     6   6
 [4,]     8   8
 [5,]    10  10
 [6,]    12  12
 [7,]    15  15
 [8,]    17  17
 [9,]    20  20
[10,]    22  22
[11,]    25  25
[12,]    27  27
[13,]    29  29
[14,]    31  31
[15,]    34  34
[16,]    36  36
[17,]    39  39
[18,]    41  41
[19,]    44  44
[20,]    46  46
[21,]    48  48
[22,]    50  50
[23,]    53  53
[24,]    55  55
[25,]    58  58
[26,]    60  60
[27,]    63  63
[28,]    65  65
[29,]    67  67
[30,]    69  69
[31,]    72  72
[32,]    74  74
[33,]    77  77
[34,]    79  79
[35,]    82  82
[36,]    84  84
[37,]    86  86
[38,]    88  88
[39,]    91  91
[40,]    93  93
[41,]    96  96
[42,]    98  98
[43,]   101 101
[44,]   103 103
[45,]   105 105
[46,]   107 107
[47,]   110 110
[48,]   112 112

[[1]]
   start end   insert
1      1   1 F-F++F-F
2      3   3 F-F++F-F
3      6   6 F-F++F-F
4      8   8 F-F++F-F
5     10  10 F-F++F-F
6     12  12 F-F++F-F
7     15  15 F-F++F-F
8     17  17 F-F++F-F
9     20  20 F-F++F-F
10    22  22 F-F++F-F
11    25  25 F-F++F-F
12    27  27 F-F++F-F
13    29  29 F-F++F-F
14    31  31 F-F++F-F
15    34  34 F-F++F-F
16    36  36 F-F++F-F
17    39  39 F-F++F-F
18    41  41 F-F++F-F
19    44  44 F-F++F-F
20    46  46 F-F++F-F
21    48  48 F-F++F-F
22    50  50 F-F++F-F
23    53  53 F-F++F-F
24    55  55 F-F++F-F
25    58  58 F-F++F-F
26    60  60 F-F++F-F
27    63  63 F-F++F-F
28    65  65 F-F++F-F
29    67  67 F-F++F-F
30    69  69 F-F++F-F
31    72  72 F-F++F-F
32    74  74 F-F++F-F
33    77  77 F-F++F-F
34    79  79 F-F++F-F
35    82  82 F-F++F-F
36    84  84 F-F++F-F
37    86  86 F-F++F-F
38    88  88 F-F++F-F
39    91  91 F-F++F-F
40    93  93 F-F++F-F
41    96  96 F-F++F-F
42    98  98 F-F++F-F
43   101 101 F-F++F-F
44   103 103 F-F++F-F
45   105 105 F-F++F-F
46   107 107 F-F++F-F
47   110 110 F-F++F-F
48   112 112 F-F++F-F


Cycle 3 string has length 448
Cycle 3: F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F
[[1]]
       start end
  [1,]     1   1
  [2,]     3   3
  [3,]     6   6
  [4,]     8   8
  [5,]    10  10
  [6,]    12  12
  [7,]    15  15
  [8,]    17  17
  [9,]    20  20
 [10,]    22  22
 [11,]    25  25
 [12,]    27  27
 [13,]    29  29
 [14,]    31  31
 [15,]    34  34
 [16,]    36  36
 [17,]    38  38
 [18,]    40  40
 [19,]    43  43
 [20,]    45  45
 [21,]    47  47
 [22,]    49  49
 [23,]    52  52
 [24,]    54  54
 [25,]    57  57
 [26,]    59  59
 [27,]    62  62
 [28,]    64  64
 [29,]    66  66
 [30,]    68  68
 [31,]    71  71
 [32,]    73  73
 [33,]    76  76
 [34,]    78  78
 [35,]    81  81
 [36,]    83  83
 [37,]    85  85
 [38,]    87  87
 [39,]    90  90
 [40,]    92  92
 [41,]    95  95
 [42,]    97  97
 [43,]   100 100
 [44,]   102 102
 [45,]   104 104
 [46,]   106 106
 [47,]   109 109
 [48,]   111 111
 [49,]   113 113
 [50,]   115 115
 [51,]   118 118
 [52,]   120 120
 [53,]   122 122
 [54,]   124 124
 [55,]   127 127
 [56,]   129 129
 [57,]   132 132
 [58,]   134 134
 [59,]   137 137
 [60,]   139 139
 [61,]   141 141
 [62,]   143 143
 [63,]   146 146
 [64,]   148 148
 [65,]   151 151
 [66,]   153 153
 [67,]   156 156
 [68,]   158 158
 [69,]   160 160
 [70,]   162 162
 [71,]   165 165
 [72,]   167 167
 [73,]   170 170
 [74,]   172 172
 [75,]   175 175
 [76,]   177 177
 [77,]   179 179
 [78,]   181 181
 [79,]   184 184
 [80,]   186 186
 [81,]   188 188
 [82,]   190 190
 [83,]   193 193
 [84,]   195 195
 [85,]   197 197
 [86,]   199 199
 [87,]   202 202
 [88,]   204 204
 [89,]   207 207
 [90,]   209 209
 [91,]   212 212
 [92,]   214 214
 [93,]   216 216
 [94,]   218 218
 [95,]   221 221
 [96,]   223 223
 [97,]   226 226
 [98,]   228 228
 [99,]   231 231
[100,]   233 233
[101,]   235 235
[102,]   237 237
[103,]   240 240
[104,]   242 242
[105,]   245 245
[106,]   247 247
[107,]   250 250
[108,]   252 252
[109,]   254 254
[110,]   256 256
[111,]   259 259
[112,]   261 261
[113,]   263 263
[114,]   265 265
[115,]   268 268
[116,]   270 270
[117,]   272 272
[118,]   274 274
[119,]   277 277
[120,]   279 279
[121,]   282 282
[122,]   284 284
[123,]   287 287
[124,]   289 289
[125,]   291 291
[126,]   293 293
[127,]   296 296
[128,]   298 298
[129,]   301 301
[130,]   303 303
[131,]   306 306
[132,]   308 308
[133,]   310 310
[134,]   312 312
[135,]   315 315
[136,]   317 317
[137,]   320 320
[138,]   322 322
[139,]   325 325
[140,]   327 327
[141,]   329 329
[142,]   331 331
[143,]   334 334
[144,]   336 336
[145,]   338 338
[146,]   340 340
[147,]   343 343
[148,]   345 345
[149,]   347 347
[150,]   349 349
[151,]   352 352
[152,]   354 354
[153,]   357 357
[154,]   359 359
[155,]   362 362
[156,]   364 364
[157,]   366 366
[158,]   368 368
[159,]   371 371
[160,]   373 373
[161,]   376 376
[162,]   378 378
[163,]   381 381
[164,]   383 383
[165,]   385 385
[166,]   387 387
[167,]   390 390
[168,]   392 392
[169,]   395 395
[170,]   397 397
[171,]   400 400
[172,]   402 402
[173,]   404 404
[174,]   406 406
[175,]   409 409
[176,]   411 411
[177,]   413 413
[178,]   415 415
[179,]   418 418
[180,]   420 420
[181,]   422 422
[182,]   424 424
[183,]   427 427
[184,]   429 429
[185,]   432 432
[186,]   434 434
[187,]   437 437
[188,]   439 439
[189,]   441 441
[190,]   443 443
[191,]   446 446
[192,]   448 448

[[1]]
    start end   insert
1       1   1 F-F++F-F
2       3   3 F-F++F-F
3       6   6 F-F++F-F
4       8   8 F-F++F-F
5      10  10 F-F++F-F
6      12  12 F-F++F-F
7      15  15 F-F++F-F
8      17  17 F-F++F-F
9      20  20 F-F++F-F
10     22  22 F-F++F-F
11     25  25 F-F++F-F
12     27  27 F-F++F-F
13     29  29 F-F++F-F
14     31  31 F-F++F-F
15     34  34 F-F++F-F
16     36  36 F-F++F-F
17     38  38 F-F++F-F
18     40  40 F-F++F-F
19     43  43 F-F++F-F
20     45  45 F-F++F-F
21     47  47 F-F++F-F
22     49  49 F-F++F-F
23     52  52 F-F++F-F
24     54  54 F-F++F-F
25     57  57 F-F++F-F
26     59  59 F-F++F-F
27     62  62 F-F++F-F
28     64  64 F-F++F-F
29     66  66 F-F++F-F
30     68  68 F-F++F-F
31     71  71 F-F++F-F
32     73  73 F-F++F-F
33     76  76 F-F++F-F
34     78  78 F-F++F-F
35     81  81 F-F++F-F
36     83  83 F-F++F-F
37     85  85 F-F++F-F
38     87  87 F-F++F-F
39     90  90 F-F++F-F
40     92  92 F-F++F-F
41     95  95 F-F++F-F
42     97  97 F-F++F-F
43    100 100 F-F++F-F
44    102 102 F-F++F-F
45    104 104 F-F++F-F
46    106 106 F-F++F-F
47    109 109 F-F++F-F
48    111 111 F-F++F-F
49    113 113 F-F++F-F
50    115 115 F-F++F-F
51    118 118 F-F++F-F
52    120 120 F-F++F-F
53    122 122 F-F++F-F
54    124 124 F-F++F-F
55    127 127 F-F++F-F
56    129 129 F-F++F-F
57    132 132 F-F++F-F
58    134 134 F-F++F-F
59    137 137 F-F++F-F
60    139 139 F-F++F-F
61    141 141 F-F++F-F
62    143 143 F-F++F-F
63    146 146 F-F++F-F
64    148 148 F-F++F-F
65    151 151 F-F++F-F
66    153 153 F-F++F-F
67    156 156 F-F++F-F
68    158 158 F-F++F-F
69    160 160 F-F++F-F
70    162 162 F-F++F-F
71    165 165 F-F++F-F
72    167 167 F-F++F-F
73    170 170 F-F++F-F
74    172 172 F-F++F-F
75    175 175 F-F++F-F
76    177 177 F-F++F-F
77    179 179 F-F++F-F
78    181 181 F-F++F-F
79    184 184 F-F++F-F
80    186 186 F-F++F-F
81    188 188 F-F++F-F
82    190 190 F-F++F-F
83    193 193 F-F++F-F
84    195 195 F-F++F-F
85    197 197 F-F++F-F
86    199 199 F-F++F-F
87    202 202 F-F++F-F
88    204 204 F-F++F-F
89    207 207 F-F++F-F
90    209 209 F-F++F-F
91    212 212 F-F++F-F
92    214 214 F-F++F-F
93    216 216 F-F++F-F
94    218 218 F-F++F-F
95    221 221 F-F++F-F
96    223 223 F-F++F-F
97    226 226 F-F++F-F
98    228 228 F-F++F-F
99    231 231 F-F++F-F
100   233 233 F-F++F-F
101   235 235 F-F++F-F
102   237 237 F-F++F-F
103   240 240 F-F++F-F
104   242 242 F-F++F-F
105   245 245 F-F++F-F
106   247 247 F-F++F-F
107   250 250 F-F++F-F
108   252 252 F-F++F-F
109   254 254 F-F++F-F
110   256 256 F-F++F-F
111   259 259 F-F++F-F
112   261 261 F-F++F-F
113   263 263 F-F++F-F
114   265 265 F-F++F-F
115   268 268 F-F++F-F
116   270 270 F-F++F-F
117   272 272 F-F++F-F
118   274 274 F-F++F-F
119   277 277 F-F++F-F
120   279 279 F-F++F-F
121   282 282 F-F++F-F
122   284 284 F-F++F-F
123   287 287 F-F++F-F
124   289 289 F-F++F-F
125   291 291 F-F++F-F
126   293 293 F-F++F-F
127   296 296 F-F++F-F
128   298 298 F-F++F-F
129   301 301 F-F++F-F
130   303 303 F-F++F-F
131   306 306 F-F++F-F
132   308 308 F-F++F-F
133   310 310 F-F++F-F
134   312 312 F-F++F-F
135   315 315 F-F++F-F
136   317 317 F-F++F-F
137   320 320 F-F++F-F
138   322 322 F-F++F-F
139   325 325 F-F++F-F
140   327 327 F-F++F-F
141   329 329 F-F++F-F
142   331 331 F-F++F-F
143   334 334 F-F++F-F
144   336 336 F-F++F-F
145   338 338 F-F++F-F
146   340 340 F-F++F-F
147   343 343 F-F++F-F
148   345 345 F-F++F-F
149   347 347 F-F++F-F
150   349 349 F-F++F-F
151   352 352 F-F++F-F
152   354 354 F-F++F-F
153   357 357 F-F++F-F
154   359 359 F-F++F-F
155   362 362 F-F++F-F
156   364 364 F-F++F-F
157   366 366 F-F++F-F
158   368 368 F-F++F-F
159   371 371 F-F++F-F
160   373 373 F-F++F-F
161   376 376 F-F++F-F
162   378 378 F-F++F-F
163   381 381 F-F++F-F
164   383 383 F-F++F-F
165   385 385 F-F++F-F
166   387 387 F-F++F-F
167   390 390 F-F++F-F
168   392 392 F-F++F-F
169   395 395 F-F++F-F
170   397 397 F-F++F-F
171   400 400 F-F++F-F
172   402 402 F-F++F-F
173   404 404 F-F++F-F
174   406 406 F-F++F-F
175   409 409 F-F++F-F
176   411 411 F-F++F-F
177   413 413 F-F++F-F
178   415 415 F-F++F-F
179   418 418 F-F++F-F
180   420 420 F-F++F-F
181   422 422 F-F++F-F
182   424 424 F-F++F-F
183   427 427 F-F++F-F
184   429 429 F-F++F-F
185   432 432 F-F++F-F
186   434 434 F-F++F-F
187   437 437 F-F++F-F
188   439 439 F-F++F-F
189   441 441 F-F++F-F
190   443 443 F-F++F-F
191   446 446 F-F++F-F
192   448 448 F-F++F-F


Cycle 4 string has length 1792
Cycle 4: F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F-F-F++F-F-F-F++F-F++F-F++F-F-F-F++F-F
> drawLsys(string = k2, stepSize = 1, ang = 60, st = c(10, 25, 0), drules = dkoch)
> grid.text("Classic Koch Snowflake (n = 4)", 0.5, 0.5)
> 
> # Sierpinski Triangle
> rSierp <- data.frame(inp = c("A", "B"), out = c("B-A-B", "A+B+A"), stringsAsFactors = FALSE)
> s <- Lsys(init = "A", rules = rSierp, n = 6)

Cycle 0 string has length 1
Cycle 0: A 
[[1]]
     start end
[1,]     1   1

[[1]]
  start end insert
1     1   1  B-A-B


Cycle 1 string has length 5
Cycle 1: B-A-B
[[1]]
     start end
[1,]     3   3

[[2]]
     start end
[1,]     1   1
[2,]     5   5

[[1]]
  start end insert
1     3   3  B-A-B

[[2]]
  start end insert
1     1   1  A+B+A
2     5   5  A+B+A


Cycle 2 string has length 17
Cycle 2: A+B+A-B-A-B-A+B+A
[[1]]
     start end
[1,]     1   1
[2,]     5   5
[3,]     9   9
[4,]    13  13
[5,]    17  17

[[2]]
     start end
[1,]     3   3
[2,]     7   7
[3,]    11  11
[4,]    15  15

[[1]]
  start end insert
1     1   1  B-A-B
2     5   5  B-A-B
3     9   9  B-A-B
4    13  13  B-A-B
5    17  17  B-A-B

[[2]]
  start end insert
1     3   3  A+B+A
2     7   7  A+B+A
3    11  11  A+B+A
4    15  15  A+B+A


Cycle 3 string has length 53
Cycle 3: B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B
[[1]]
      start end
 [1,]     3   3
 [2,]     7   7
 [3,]    11  11
 [4,]    15  15
 [5,]    19  19
 [6,]    23  23
 [7,]    27  27
 [8,]    31  31
 [9,]    35  35
[10,]    39  39
[11,]    43  43
[12,]    47  47
[13,]    51  51

[[2]]
      start end
 [1,]     1   1
 [2,]     5   5
 [3,]     9   9
 [4,]    13  13
 [5,]    17  17
 [6,]    21  21
 [7,]    25  25
 [8,]    29  29
 [9,]    33  33
[10,]    37  37
[11,]    41  41
[12,]    45  45
[13,]    49  49
[14,]    53  53

[[1]]
   start end insert
1      3   3  B-A-B
2      7   7  B-A-B
3     11  11  B-A-B
4     15  15  B-A-B
5     19  19  B-A-B
6     23  23  B-A-B
7     27  27  B-A-B
8     31  31  B-A-B
9     35  35  B-A-B
10    39  39  B-A-B
11    43  43  B-A-B
12    47  47  B-A-B
13    51  51  B-A-B

[[2]]
   start end insert
1      1   1  A+B+A
2      5   5  A+B+A
3      9   9  A+B+A
4     13  13  A+B+A
5     17  17  A+B+A
6     21  21  A+B+A
7     25  25  A+B+A
8     29  29  A+B+A
9     33  33  A+B+A
10    37  37  A+B+A
11    41  41  A+B+A
12    45  45  A+B+A
13    49  49  A+B+A
14    53  53  A+B+A


Cycle 4 string has length 161
Cycle 4: A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A
[[1]]
      start end
 [1,]     1   1
 [2,]     5   5
 [3,]     9   9
 [4,]    13  13
 [5,]    17  17
 [6,]    21  21
 [7,]    25  25
 [8,]    29  29
 [9,]    33  33
[10,]    37  37
[11,]    41  41
[12,]    45  45
[13,]    49  49
[14,]    53  53
[15,]    57  57
[16,]    61  61
[17,]    65  65
[18,]    69  69
[19,]    73  73
[20,]    77  77
[21,]    81  81
[22,]    85  85
[23,]    89  89
[24,]    93  93
[25,]    97  97
[26,]   101 101
[27,]   105 105
[28,]   109 109
[29,]   113 113
[30,]   117 117
[31,]   121 121
[32,]   125 125
[33,]   129 129
[34,]   133 133
[35,]   137 137
[36,]   141 141
[37,]   145 145
[38,]   149 149
[39,]   153 153
[40,]   157 157
[41,]   161 161

[[2]]
      start end
 [1,]     3   3
 [2,]     7   7
 [3,]    11  11
 [4,]    15  15
 [5,]    19  19
 [6,]    23  23
 [7,]    27  27
 [8,]    31  31
 [9,]    35  35
[10,]    39  39
[11,]    43  43
[12,]    47  47
[13,]    51  51
[14,]    55  55
[15,]    59  59
[16,]    63  63
[17,]    67  67
[18,]    71  71
[19,]    75  75
[20,]    79  79
[21,]    83  83
[22,]    87  87
[23,]    91  91
[24,]    95  95
[25,]    99  99
[26,]   103 103
[27,]   107 107
[28,]   111 111
[29,]   115 115
[30,]   119 119
[31,]   123 123
[32,]   127 127
[33,]   131 131
[34,]   135 135
[35,]   139 139
[36,]   143 143
[37,]   147 147
[38,]   151 151
[39,]   155 155
[40,]   159 159

[[1]]
   start end insert
1      1   1  B-A-B
2      5   5  B-A-B
3      9   9  B-A-B
4     13  13  B-A-B
5     17  17  B-A-B
6     21  21  B-A-B
7     25  25  B-A-B
8     29  29  B-A-B
9     33  33  B-A-B
10    37  37  B-A-B
11    41  41  B-A-B
12    45  45  B-A-B
13    49  49  B-A-B
14    53  53  B-A-B
15    57  57  B-A-B
16    61  61  B-A-B
17    65  65  B-A-B
18    69  69  B-A-B
19    73  73  B-A-B
20    77  77  B-A-B
21    81  81  B-A-B
22    85  85  B-A-B
23    89  89  B-A-B
24    93  93  B-A-B
25    97  97  B-A-B
26   101 101  B-A-B
27   105 105  B-A-B
28   109 109  B-A-B
29   113 113  B-A-B
30   117 117  B-A-B
31   121 121  B-A-B
32   125 125  B-A-B
33   129 129  B-A-B
34   133 133  B-A-B
35   137 137  B-A-B
36   141 141  B-A-B
37   145 145  B-A-B
38   149 149  B-A-B
39   153 153  B-A-B
40   157 157  B-A-B
41   161 161  B-A-B

[[2]]
   start end insert
1      3   3  A+B+A
2      7   7  A+B+A
3     11  11  A+B+A
4     15  15  A+B+A
5     19  19  A+B+A
6     23  23  A+B+A
7     27  27  A+B+A
8     31  31  A+B+A
9     35  35  A+B+A
10    39  39  A+B+A
11    43  43  A+B+A
12    47  47  A+B+A
13    51  51  A+B+A
14    55  55  A+B+A
15    59  59  A+B+A
16    63  63  A+B+A
17    67  67  A+B+A
18    71  71  A+B+A
19    75  75  A+B+A
20    79  79  A+B+A
21    83  83  A+B+A
22    87  87  A+B+A
23    91  91  A+B+A
24    95  95  A+B+A
25    99  99  A+B+A
26   103 103  A+B+A
27   107 107  A+B+A
28   111 111  A+B+A
29   115 115  A+B+A
30   119 119  A+B+A
31   123 123  A+B+A
32   127 127  A+B+A
33   131 131  A+B+A
34   135 135  A+B+A
35   139 139  A+B+A
36   143 143  A+B+A
37   147 147  A+B+A
38   151 151  A+B+A
39   155 155  A+B+A
40   159 159  A+B+A


Cycle 5 string has length 485
Cycle 5: B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B
[[1]]
       start end
  [1,]     3   3
  [2,]     7   7
  [3,]    11  11
  [4,]    15  15
  [5,]    19  19
  [6,]    23  23
  [7,]    27  27
  [8,]    31  31
  [9,]    35  35
 [10,]    39  39
 [11,]    43  43
 [12,]    47  47
 [13,]    51  51
 [14,]    55  55
 [15,]    59  59
 [16,]    63  63
 [17,]    67  67
 [18,]    71  71
 [19,]    75  75
 [20,]    79  79
 [21,]    83  83
 [22,]    87  87
 [23,]    91  91
 [24,]    95  95
 [25,]    99  99
 [26,]   103 103
 [27,]   107 107
 [28,]   111 111
 [29,]   115 115
 [30,]   119 119
 [31,]   123 123
 [32,]   127 127
 [33,]   131 131
 [34,]   135 135
 [35,]   139 139
 [36,]   143 143
 [37,]   147 147
 [38,]   151 151
 [39,]   155 155
 [40,]   159 159
 [41,]   163 163
 [42,]   167 167
 [43,]   171 171
 [44,]   175 175
 [45,]   179 179
 [46,]   183 183
 [47,]   187 187
 [48,]   191 191
 [49,]   195 195
 [50,]   199 199
 [51,]   203 203
 [52,]   207 207
 [53,]   211 211
 [54,]   215 215
 [55,]   219 219
 [56,]   223 223
 [57,]   227 227
 [58,]   231 231
 [59,]   235 235
 [60,]   239 239
 [61,]   243 243
 [62,]   247 247
 [63,]   251 251
 [64,]   255 255
 [65,]   259 259
 [66,]   263 263
 [67,]   267 267
 [68,]   271 271
 [69,]   275 275
 [70,]   279 279
 [71,]   283 283
 [72,]   287 287
 [73,]   291 291
 [74,]   295 295
 [75,]   299 299
 [76,]   303 303
 [77,]   307 307
 [78,]   311 311
 [79,]   315 315
 [80,]   319 319
 [81,]   323 323
 [82,]   327 327
 [83,]   331 331
 [84,]   335 335
 [85,]   339 339
 [86,]   343 343
 [87,]   347 347
 [88,]   351 351
 [89,]   355 355
 [90,]   359 359
 [91,]   363 363
 [92,]   367 367
 [93,]   371 371
 [94,]   375 375
 [95,]   379 379
 [96,]   383 383
 [97,]   387 387
 [98,]   391 391
 [99,]   395 395
[100,]   399 399
[101,]   403 403
[102,]   407 407
[103,]   411 411
[104,]   415 415
[105,]   419 419
[106,]   423 423
[107,]   427 427
[108,]   431 431
[109,]   435 435
[110,]   439 439
[111,]   443 443
[112,]   447 447
[113,]   451 451
[114,]   455 455
[115,]   459 459
[116,]   463 463
[117,]   467 467
[118,]   471 471
[119,]   475 475
[120,]   479 479
[121,]   483 483

[[2]]
       start end
  [1,]     1   1
  [2,]     5   5
  [3,]     9   9
  [4,]    13  13
  [5,]    17  17
  [6,]    21  21
  [7,]    25  25
  [8,]    29  29
  [9,]    33  33
 [10,]    37  37
 [11,]    41  41
 [12,]    45  45
 [13,]    49  49
 [14,]    53  53
 [15,]    57  57
 [16,]    61  61
 [17,]    65  65
 [18,]    69  69
 [19,]    73  73
 [20,]    77  77
 [21,]    81  81
 [22,]    85  85
 [23,]    89  89
 [24,]    93  93
 [25,]    97  97
 [26,]   101 101
 [27,]   105 105
 [28,]   109 109
 [29,]   113 113
 [30,]   117 117
 [31,]   121 121
 [32,]   125 125
 [33,]   129 129
 [34,]   133 133
 [35,]   137 137
 [36,]   141 141
 [37,]   145 145
 [38,]   149 149
 [39,]   153 153
 [40,]   157 157
 [41,]   161 161
 [42,]   165 165
 [43,]   169 169
 [44,]   173 173
 [45,]   177 177
 [46,]   181 181
 [47,]   185 185
 [48,]   189 189
 [49,]   193 193
 [50,]   197 197
 [51,]   201 201
 [52,]   205 205
 [53,]   209 209
 [54,]   213 213
 [55,]   217 217
 [56,]   221 221
 [57,]   225 225
 [58,]   229 229
 [59,]   233 233
 [60,]   237 237
 [61,]   241 241
 [62,]   245 245
 [63,]   249 249
 [64,]   253 253
 [65,]   257 257
 [66,]   261 261
 [67,]   265 265
 [68,]   269 269
 [69,]   273 273
 [70,]   277 277
 [71,]   281 281
 [72,]   285 285
 [73,]   289 289
 [74,]   293 293
 [75,]   297 297
 [76,]   301 301
 [77,]   305 305
 [78,]   309 309
 [79,]   313 313
 [80,]   317 317
 [81,]   321 321
 [82,]   325 325
 [83,]   329 329
 [84,]   333 333
 [85,]   337 337
 [86,]   341 341
 [87,]   345 345
 [88,]   349 349
 [89,]   353 353
 [90,]   357 357
 [91,]   361 361
 [92,]   365 365
 [93,]   369 369
 [94,]   373 373
 [95,]   377 377
 [96,]   381 381
 [97,]   385 385
 [98,]   389 389
 [99,]   393 393
[100,]   397 397
[101,]   401 401
[102,]   405 405
[103,]   409 409
[104,]   413 413
[105,]   417 417
[106,]   421 421
[107,]   425 425
[108,]   429 429
[109,]   433 433
[110,]   437 437
[111,]   441 441
[112,]   445 445
[113,]   449 449
[114,]   453 453
[115,]   457 457
[116,]   461 461
[117,]   465 465
[118,]   469 469
[119,]   473 473
[120,]   477 477
[121,]   481 481
[122,]   485 485

[[1]]
    start end insert
1       3   3  B-A-B
2       7   7  B-A-B
3      11  11  B-A-B
4      15  15  B-A-B
5      19  19  B-A-B
6      23  23  B-A-B
7      27  27  B-A-B
8      31  31  B-A-B
9      35  35  B-A-B
10     39  39  B-A-B
11     43  43  B-A-B
12     47  47  B-A-B
13     51  51  B-A-B
14     55  55  B-A-B
15     59  59  B-A-B
16     63  63  B-A-B
17     67  67  B-A-B
18     71  71  B-A-B
19     75  75  B-A-B
20     79  79  B-A-B
21     83  83  B-A-B
22     87  87  B-A-B
23     91  91  B-A-B
24     95  95  B-A-B
25     99  99  B-A-B
26    103 103  B-A-B
27    107 107  B-A-B
28    111 111  B-A-B
29    115 115  B-A-B
30    119 119  B-A-B
31    123 123  B-A-B
32    127 127  B-A-B
33    131 131  B-A-B
34    135 135  B-A-B
35    139 139  B-A-B
36    143 143  B-A-B
37    147 147  B-A-B
38    151 151  B-A-B
39    155 155  B-A-B
40    159 159  B-A-B
41    163 163  B-A-B
42    167 167  B-A-B
43    171 171  B-A-B
44    175 175  B-A-B
45    179 179  B-A-B
46    183 183  B-A-B
47    187 187  B-A-B
48    191 191  B-A-B
49    195 195  B-A-B
50    199 199  B-A-B
51    203 203  B-A-B
52    207 207  B-A-B
53    211 211  B-A-B
54    215 215  B-A-B
55    219 219  B-A-B
56    223 223  B-A-B
57    227 227  B-A-B
58    231 231  B-A-B
59    235 235  B-A-B
60    239 239  B-A-B
61    243 243  B-A-B
62    247 247  B-A-B
63    251 251  B-A-B
64    255 255  B-A-B
65    259 259  B-A-B
66    263 263  B-A-B
67    267 267  B-A-B
68    271 271  B-A-B
69    275 275  B-A-B
70    279 279  B-A-B
71    283 283  B-A-B
72    287 287  B-A-B
73    291 291  B-A-B
74    295 295  B-A-B
75    299 299  B-A-B
76    303 303  B-A-B
77    307 307  B-A-B
78    311 311  B-A-B
79    315 315  B-A-B
80    319 319  B-A-B
81    323 323  B-A-B
82    327 327  B-A-B
83    331 331  B-A-B
84    335 335  B-A-B
85    339 339  B-A-B
86    343 343  B-A-B
87    347 347  B-A-B
88    351 351  B-A-B
89    355 355  B-A-B
90    359 359  B-A-B
91    363 363  B-A-B
92    367 367  B-A-B
93    371 371  B-A-B
94    375 375  B-A-B
95    379 379  B-A-B
96    383 383  B-A-B
97    387 387  B-A-B
98    391 391  B-A-B
99    395 395  B-A-B
100   399 399  B-A-B
101   403 403  B-A-B
102   407 407  B-A-B
103   411 411  B-A-B
104   415 415  B-A-B
105   419 419  B-A-B
106   423 423  B-A-B
107   427 427  B-A-B
108   431 431  B-A-B
109   435 435  B-A-B
110   439 439  B-A-B
111   443 443  B-A-B
112   447 447  B-A-B
113   451 451  B-A-B
114   455 455  B-A-B
115   459 459  B-A-B
116   463 463  B-A-B
117   467 467  B-A-B
118   471 471  B-A-B
119   475 475  B-A-B
120   479 479  B-A-B
121   483 483  B-A-B

[[2]]
    start end insert
1       1   1  A+B+A
2       5   5  A+B+A
3       9   9  A+B+A
4      13  13  A+B+A
5      17  17  A+B+A
6      21  21  A+B+A
7      25  25  A+B+A
8      29  29  A+B+A
9      33  33  A+B+A
10     37  37  A+B+A
11     41  41  A+B+A
12     45  45  A+B+A
13     49  49  A+B+A
14     53  53  A+B+A
15     57  57  A+B+A
16     61  61  A+B+A
17     65  65  A+B+A
18     69  69  A+B+A
19     73  73  A+B+A
20     77  77  A+B+A
21     81  81  A+B+A
22     85  85  A+B+A
23     89  89  A+B+A
24     93  93  A+B+A
25     97  97  A+B+A
26    101 101  A+B+A
27    105 105  A+B+A
28    109 109  A+B+A
29    113 113  A+B+A
30    117 117  A+B+A
31    121 121  A+B+A
32    125 125  A+B+A
33    129 129  A+B+A
34    133 133  A+B+A
35    137 137  A+B+A
36    141 141  A+B+A
37    145 145  A+B+A
38    149 149  A+B+A
39    153 153  A+B+A
40    157 157  A+B+A
41    161 161  A+B+A
42    165 165  A+B+A
43    169 169  A+B+A
44