kopia lustrzana https://github.com/inkstitch/inkstitch
python 3.8 fixes
rodzic
e28ea888a9
commit
26c24d98ed
|
|
@ -6,6 +6,7 @@
|
|||
from copy import deepcopy
|
||||
import itertools
|
||||
from itertools import chain
|
||||
import typing
|
||||
|
||||
import numpy as np
|
||||
from inkex import paths
|
||||
|
|
@ -769,7 +770,7 @@ class SatinColumn(EmbroideryElement):
|
|||
distance_remaining -= segment_length
|
||||
pos = segment_end
|
||||
|
||||
def plot_points_on_rails(self, spacing, offset_px=(0, 0), offset_proportional=(0, 0), use_random=False) -> list[tuple[Point, Point]]:
|
||||
def plot_points_on_rails(self, spacing, offset_px=(0, 0), offset_proportional=(0, 0), use_random=False) -> typing.List[typing.Tuple[Point, Point]]:
|
||||
# Take a section from each rail in turn, and plot out an equal number
|
||||
# of points on both rails. Return the points plotted. The points will
|
||||
# be contracted or expanded by offset using self.offset_points().
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
|
||||
|
||||
import math
|
||||
import typing
|
||||
from copy import copy
|
||||
|
||||
import numpy as np
|
||||
|
|
@ -13,7 +14,7 @@ from ..utils import prng
|
|||
""" Utility functions to produce running stitches. """
|
||||
|
||||
|
||||
def split_segment_even_n(a, b, segments: int, jitter_sigma: float = 0.0, random_seed: str | None = None) -> list[shgeo.Point]:
|
||||
def split_segment_even_n(a, b, segments: int, jitter_sigma: float = 0.0, random_seed=None) -> typing.List[shgeo.Point]:
|
||||
if segments <= 1:
|
||||
return []
|
||||
line = shgeo.LineString((a, b))
|
||||
|
|
@ -27,13 +28,13 @@ def split_segment_even_n(a, b, segments: int, jitter_sigma: float = 0.0, random_
|
|||
return [line.interpolate(x, normalized=True) for x in sorted(splits)]
|
||||
|
||||
|
||||
def split_segment_even_dist(a, b, max_length: float, jitter_sigma: float = 0.0, random_seed: str | None = None) -> list[shgeo.Point]:
|
||||
def split_segment_even_dist(a, b, max_length: float, jitter_sigma: float = 0.0, random_seed=None) -> typing.List[shgeo.Point]:
|
||||
distance = shgeo.Point(a).distance(shgeo.Point(b))
|
||||
segments = math.ceil(distance / max_length)
|
||||
return split_segment_even_n(a, b, segments, jitter_sigma, random_seed)
|
||||
|
||||
|
||||
def split_segment_random_phase(a, b, length: float, length_sigma: float, random_seed: str) -> list[shgeo.Point]:
|
||||
def split_segment_random_phase(a, b, length: float, length_sigma: float, random_seed: str) -> typing.List[shgeo.Point]:
|
||||
line = shgeo.LineString([a, b])
|
||||
progress = length * prng.uniformFloats(random_seed, "phase")[0]
|
||||
splits = [progress]
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue