def _all_line_collection_ops(lc: LineCollection): lc.merge(1) lc.scale(2, 2) lc.translate(2, 2) lc.rotate(10) lc.reloop(1) lc.skew(4, 4) lc.bounds()
def linemerge(lines: LineCollection, tolerance: float, no_flip: bool = True): """ Merge lines whose endings overlap or are very close. Stroke direction is preserved by default, so `linemerge` looks at joining a line's end with another line's start. With the `--flip` stroke direction will be reversed as required to further the merge. By default, gaps of maximum 0.05mm are considered for merging. This can be controlled with the `--tolerance` option. """ lines.merge(tolerance=tolerance, flip=not no_flip) return lines
def linemerge(lines: vp.LineCollection, tolerance: float, no_flip: bool = True): """ Merge lines whose endings and starts overlap or are very close. By default, `linemerge` considers both directions of a stroke. If there is no additional start of a stroke within the provided tolerance, it also checks for ending points of strokes and uses them in reverse. You can use the `--no-flip` to disable this reversing behaviour and preserve the stroke direction from the input. By default, gaps of maximum 0.05mm are considered for merging. This can be controlled with the `--tolerance` option. """ lines.merge(tolerance=tolerance, flip=not no_flip) return lines
def test_line_collection_merge(lines, merge_lines): lc = LineCollection(lines) lc.merge(0.1) assert _line_set(lc) == _line_set(merge_lines)