diff options
| author | Lex Neva <github.com@lexneva.name> | 2018-08-05 20:33:58 -0400 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2018-08-05 20:33:58 -0400 |
| commit | eebc8fdc1252a3206982c818685e50a4a75a4398 (patch) | |
| tree | 499acace3107ba39a093c18f0debc6283c68ac63 /lib/stitches/running_stitch.py | |
| parent | 0c74bcb81664134fd316455aa0886662c9b1f897 (diff) | |
| parent | 50f7589d682e060c8d12a6fd30822fbeb7f2212a (diff) | |
Merge remote-tracking branch 'origin/master' into lexelby-convert-to-satin
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 |
