Exemple #1
0
def test_flattening():
    curve = Bezier([(0, 0), (1, 1), (2, -1), (3, 0)])
    assert len(list(curve.flattening(1.0, segments=4))) == 5
    assert len(list(curve.flattening(0.1, segments=4))) == 7
Exemple #2
0
def test_reverse():
    curve = Bezier(DEFPOINTS3D)
    new = curve.reverse()
    assert curve.control_points[0] == new.control_points[-1]
Exemple #3
0
def test_transform_interface():
    curve = Bezier(DEFPOINTS3D)
    new = curve.transform(Matrix44.translate(1, 2, 3))
    assert new.control_points[0] == curve.control_points[0] + (1, 2, 3)
Exemple #4
0
def dbezier():
    curve = Bezier(DEFPOINTS3D)
    return list(curve.derivatives(curve.params(40)))
Exemple #5
0
def test_points_3d():
    bcurve = Bezier(DEFPOINTS3D)
    points = list(bcurve.approximate(40))

    for point, chk in zip(points, iter_dbezier(DBEZIER3D, 0)):
        assert point.isclose(chk)
Exemple #6
0
def test_point_and_tangent_2d():
    dbcurve = Bezier(DEFPOINTS2D)
    for index, (chk_pnt, chk_d1) in enumerate(zip(POINTS2D, TANGENTS2D)):
        pnt, d1, d2 = dbcurve.derivative(index * .1)
        assert pnt.isclose(chk_pnt)
        assert d1.isclose(chk_d1)
Exemple #7
0
def test_bezier_objects_are_immutable():
    curve = Bezier(DEFPOINTS3D)
    with pytest.raises(TypeError):
        curve.control_points[0] = (1, 2, 3)
Exemple #8
0
def test_points_2d():
    bcurve = Bezier(DEFPOINTS2D)
    for index, chk in enumerate(POINTS2D):
        assert bcurve.point(index * .1).isclose(chk)