def test_spline_interpolation(): vertices = [(0., 0.), (1., 2.), (3., 1.), (5., 3.)] result = spline_interpolation(vertices, method='uniform', subdivide=4) assert len(result) == 13 # (len-1) * subdivide + 1 assert is_close_points((0, 0, 0), result[0]), 'expected start point' assert is_close_points((5, 3, 0), result[-1]), 'expected end point' assert is_close_points((1, 2, 0), result[4]), 'expected 2. fit point' assert is_close_points((3, 1, 0), result[8]), 'expected 3. fit point'
def test_spline_interpolation(): vertices = [(0.0, 0.0), (1.0, 2.0), (3.0, 1.0), (5.0, 3.0)] result = spline_interpolation(vertices, method="uniform", subdivide=4) assert len(result) == 13 # (len-1) * subdivide + 1 assert Vec3(0, 0, 0).isclose(result[0]), "expected start point" assert Vec3(5, 3, 0).isclose(result[-1]), "expected end point" assert Vec3(1, 2, 0).isclose(result[4]), "expected 2. fit point" assert Vec3(3, 1, 0).isclose(result[8]), "expected 3. fit point"
def build_rotation_form(filename, alpha=2 * math.pi, sides=16): profile = forms.spline_interpolation([(0, 0.1), (1, 1), (3, 1.5), (5, 3)], subdivide=8) # in xy-plane mesh = forms.rotation_form(sides, profile, angle=alpha, axis=(1, 0, 0)) write_mesh(filename, mesh)