summaryrefslogtreecommitdiff
path: root/lib/elements
diff options
context:
space:
mode:
authorGeorge Steel <george.steel@gmail.com>2023-01-29 21:42:30 -0500
committerGitHub <noreply@github.com>2023-01-29 21:42:30 -0500
commita2c6d5fbcbbfaffb0604705c5530310649a8db82 (patch)
tree7aedd594a9fe5f25c9e5aa8078c7b91ebcd90a54 /lib/elements
parent73b1fc17cdf3cb1c2477bb0f90b080f52bf4b327 (diff)
parent581ecd486999045625995db031e2dc7d55bbe907 (diff)
Merge pull request #2027 from inkstitch/george-steel/fix-running-stitch
Replace running stitch algorithm to give consistent stitch lengths
Diffstat (limited to 'lib/elements')
-rw-r--r--lib/elements/satin_column.py6
-rw-r--r--lib/elements/stroke.py13
2 files changed, 10 insertions, 9 deletions
diff --git a/lib/elements/satin_column.py b/lib/elements/satin_column.py
index 1841bba1..be614a04 100644
--- a/lib/elements/satin_column.py
+++ b/lib/elements/satin_column.py
@@ -877,9 +877,11 @@ class SatinColumn(EmbroideryElement):
pairs = self.plot_points_on_rails(
self.contour_underlay_stitch_length,
-self.contour_underlay_inset_px, -self.contour_underlay_inset_percent/100)
- stitches = [p[0] for p in pairs] + [p[1] for p in reversed(pairs)]
+
if self._center_walk_is_odd():
- stitches = list(reversed(stitches))
+ stitches = [p[0] for p in reversed(pairs)] + [p[1] for p in pairs]
+ else:
+ stitches = [p[1] for p in pairs] + [p[0] for p in reversed(pairs)]
return StitchGroup(
color=self.color,
diff --git a/lib/elements/stroke.py b/lib/elements/stroke.py
index 73973bf7..6aca3847 100644
--- a/lib/elements/stroke.py
+++ b/lib/elements/stroke.py
@@ -432,21 +432,20 @@ class Stroke(EmbroideryElement):
return patch
def running_stitch(self, path, stitch_length, tolerance):
- repeated_path = []
+ stitches = running_stitch(path, stitch_length, tolerance)
+ repeated_stitches = []
# go back and forth along the path as specified by self.repeats
for i in range(self.repeats):
if i % 2 == 1:
# reverse every other pass
- this_path = path[::-1]
+ this_path = stitches[::-1]
else:
- this_path = path[:]
+ this_path = stitches[:]
- repeated_path.extend(this_path)
+ repeated_stitches.extend(this_path)
- stitches = running_stitch(repeated_path, stitch_length, tolerance)
-
- return StitchGroup(self.color, stitches)
+ return StitchGroup(self.color, repeated_stitches)
def ripple_stitch(self):
return StitchGroup(