def random_instance(size_range, distortion_range): distortion = uniform(*distortion_range) if distortion_range[0] < distortion_range[1]: distortion_ratio = (distortion - distortion_range[0]) / (distortion_range[1] - distortion_range[0]) min_size = size_range[0] + (size_range[1] - size_range[0]) * distortion_ratio * 0.5 size = quadratic_uniform(min_size, size_range[1]) else: size = quadratic_uniform(*size_range) return Ellipse(Point(size, size / distortion))
def random_instance(size_range, distortion_range): return Semicircle(quadratic_uniform(*size_range))
def random_instance(size_range, distortion_range): return Cross(quadratic_uniform(*size_range))
def random_instance(size_range, distortion_range): return Pentagon(quadratic_uniform(*size_range)) # for equilateral