def METHOD_NAME(self, recipient, donor, min_length, plane=None):
    line = donor[-1] - donor[0]
    result = []
    result.append(donor[0])
    for pair in zip(recipient, recipient[1:]):
        new_line = pair[1] - pair[0]
        if new_line.length < min_length:
            result.append(pair[1])
            continue
        scaled = self.scale_to(donor, line.length, new_line.length)
        rotated = self.rotate_to(scaled, line, new_line, plane)
        item = self.move_to(rotated, rotated[0], pair[0])
        result.extend(item[1:])
    if self.precision > 0:
        result = [Vector(v.to_tuple(self.precision)) for v in result]
    return result