diff options
| author | Lex Neva <github.com@lexneva.name> | 2018-08-16 15:38:59 -0400 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2018-08-16 15:38:59 -0400 |
| commit | f70fa25a1630b55f9568e7c8214e6d03536f978a (patch) | |
| tree | e73998ff313e281563595c1d716b9ca73a0ead01 /lib/stitches/running_stitch.py | |
| parent | 89e5e5c9dbc036be1e0c2802e2324216c6a9ff0a (diff) | |
| parent | 0f882f07eb0fc263fcb8e05c1a212199902863da (diff) | |
Merge branch 'master' into lexelby-windows-output-fix
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 |
