@@ -45,6 +45,7 @@ def cross_stitch(fill, shape, starting_point, ending_point):
4545
4646 crosses_lr = []
4747 crosses_rl = []
48+ vertical = []
4849 boxes = []
4950 scaled_boxes = []
5051 center_points = []
@@ -55,15 +56,15 @@ def cross_stitch(fill, shape, starting_point, ending_point):
5556 while x <= adapted_maxx :
5657 box = translate (square , x , y )
5758 if shape .contains (box ):
58- travel_edges , boxes , scaled_boxes , center_points , crosses_lr , crosses_rl , = add_cross (
59- box , scaled_boxes , center_points , crosses_lr , crosses_rl , boxes , travel_edges
59+ travel_edges , boxes , scaled_boxes , center_points , crosses_lr , crosses_rl , vertical = add_cross (
60+ box , scaled_boxes , center_points , crosses_lr , crosses_rl , vertical , boxes , travel_edges
6061 )
6162 elif shape .intersects (box ):
6263 intersection = box .intersection (shape )
6364 intersection_area = intersection .area
6465 if intersection_area / full_square_area * 100 > fill .cross_coverage :
65- travel_edges , boxes , scaled_boxes , center_points , crosses_lr , crosses_rl , = add_cross (
66- box , scaled_boxes , center_points , crosses_lr , crosses_rl , boxes , travel_edges
66+ travel_edges , boxes , scaled_boxes , center_points , crosses_lr , crosses_rl , vertical = add_cross (
67+ box , scaled_boxes , center_points , crosses_lr , crosses_rl , vertical , boxes , travel_edges
6768 )
6869 x += square_size
6970 y += square_size
@@ -74,6 +75,7 @@ def cross_stitch(fill, shape, starting_point, ending_point):
7475
7576 lr = ensure_multi_line_string (line_merge (MultiLineString (crosses_lr )))
7677 rl = ensure_multi_line_string (line_merge (MultiLineString (crosses_rl )))
78+ v = ensure_multi_line_string (line_merge (MultiLineString (vertical )))
7779
7880 clamp = False
7981 outline = unary_union (boxes )
@@ -147,12 +149,13 @@ def get_line_endpoints(multilinestring):
147149 return nodes
148150
149151
150- def add_cross (box , scaled_boxes , center_points , crosses_lr , crosses_rl , boxes , travel_edges ):
152+ def add_cross (box , scaled_boxes , center_points , crosses_lr , crosses_rl , vertical , boxes , travel_edges ):
151153 minx , miny , maxx , maxy = box .bounds
152154 center = box .centroid
153155 center_points .append (center )
154156 crosses_lr .append (LineString ([(minx , miny ), (maxx , maxy )]))
155157 crosses_rl .append (LineString ([(maxx , miny ), (minx , maxy )]))
158+ vertical .append (LineString ([(maxx , miny ), (maxx , maxy )]))
156159
157160 travel_edges .append (LineString ([(minx , miny ), center ]))
158161 travel_edges .append (LineString ([(maxx , miny ), center ]))
@@ -167,7 +170,7 @@ def add_cross(box, scaled_boxes, center_points, crosses_lr, crosses_rl, boxes, t
167170 # scaling the outline allows us to connect otherwise unconnected boxes
168171 box = scale (box , xfact = 1.000000000000001 , yfact = 1.000000000000001 )
169172 scaled_boxes .append (box )
170- return travel_edges , boxes , scaled_boxes , center_points , crosses_lr , crosses_rl
173+ return travel_edges , boxes , scaled_boxes , center_points , crosses_lr , crosses_rl , vertical
171174
172175
173176def _lines_to_stitches (
@@ -193,6 +196,7 @@ def _lines_to_stitches(
193196 result = path_to_stitches (
194197 shape , path , travel_graph , fill_stitch_graph , stitch_length , center_points , clamp
195198 )
199+ # result = path_to_stitches(shape, path, travel_graph, fill_stitch_graph, 45, 3 / sqrt(2), 3, 3, 0.1, 4, False, True, False, False, False)
196200 result = collapse_travel_edges (result )
197201 result = _apply_bean_stitch_and_repeats (result , 1 , bean_stitch_repeats )
198202 return result
@@ -238,6 +242,7 @@ def path_to_stitches(shape, path, travel_graph, fill_stitch_graph, stitch_length
238242 travel_graph .remove_edges_from (fill_stitch_graph [edge [0 ]][edge [1 ]]['segment' ].get ('underpath_edges' , []))
239243 else :
240244 stitches .extend (travel (shape , travel_graph , edge , center_points , stitch_length , clamp ))
245+ # stitches.extend(travel(shape, travel_graph, edge, 3, 0.1, False, True, center_points, clamp=True))
241246
242247 return stitches
243248
0 commit comments