26 lines
820 B
Python
26 lines
820 B
Python
from numpy import pi
|
|
|
|
from ..shapes import Arc, Circle, Ellipse
|
|
from .helpers import assert_closed_edges_within
|
|
|
|
|
|
def test_shape_arclen() -> None:
|
|
e = Ellipse(radii=(10, 5))
|
|
polys = e.to_polygons(max_arclen=5)
|
|
v = polys[0].vertices
|
|
assert_closed_edges_within(v, 5)
|
|
assert len(v) > 10
|
|
|
|
a = Arc(radii=(10, 10), angles=(0, pi / 2), width=2)
|
|
polys = a.to_polygons(max_arclen=2)
|
|
assert_closed_edges_within(polys[0].vertices, 2)
|
|
|
|
def test_curve_polygonizers_clamp_large_max_arclen() -> None:
|
|
for shape in (
|
|
Circle(radius=10),
|
|
Ellipse(radii=(10, 20)),
|
|
Arc(radii=(10, 20), angles=(0, 1), width=2),
|
|
):
|
|
polys = shape.to_polygons(num_vertices=None, max_arclen=1e9)
|
|
assert len(polys) == 1
|
|
assert len(polys[0].vertices) >= 3
|