diff options
| author | Lex Neva <github.com@lexneva.name> | 2018-08-05 20:31:53 -0400 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2018-08-05 20:31:53 -0400 |
| commit | f749c4c1e8c5ccb64e8977f948bb037e2dbdc651 (patch) | |
| tree | 0872a6c459145e76e3c53d36d0070b8e127be9f6 /lib/stitches/running_stitch.py | |
| parent | 0ab7223980d849dd732cb9572644339d5c2a6228 (diff) | |
| parent | 0f826fbd2409b16faa170dd7ac7dde8f910d8cc3 (diff) | |
Merge remote-tracking branch 'origin/master' into lexelby-e-stitch
Diffstat (limited to 'lib/stitches/running_stitch.py')
| -rw-r--r-- | lib/stitches/running_stitch.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/stitches/running_stitch.py b/lib/stitches/running_stitch.py index 96075e7a..5f8ed21e 100644 --- a/lib/stitches/running_stitch.py +++ b/lib/stitches/running_stitch.py @@ -1,3 +1,6 @@ +from copy import copy + + """ Utility functions to produce running stitches. """ @@ -64,3 +67,29 @@ def running_stitch(points, stitch_length): output.append(segment_start) return output + + +def bean_stitch(stitches, repeats): + """Generate bean stitch from a set of stitches. + + "Bean" stitch is made by backtracking each stitch to make it heaver. A + simple bean stitch would be two stitches forward, one stitch back, two + stitches forward, etc. This would result in each stitch being tripled. + + We'll say that the above counts as 1 repeat. Backtracking each stitch + repeatedly will result in a heavier bean stitch. There will always be + an odd number of threads piled up for each stitch. + """ + + if len(stitches) < 2: + return stitches + + new_stitches = [stitches[0]] + + for stitch in stitches: + new_stitches.append(stitch) + + for i in xrange(repeats): + new_stitches.extend(copy(new_stitches[-2:])) + + return new_stitches |
