def test_bezier(self):
crv = CurveFactory.bezier([[0,0], [0,1], [1,1], [1,0], [2,0], [2,1],[1,1]])
self.assertEqual(len(crv.knots(0)), 3)
self.assertTrue(np.allclose(crv(0), [0,0]))
t = crv.tangent(0)
self.assertTrue(np.allclose(t/norm(t), [0,1]))
t = crv.tangent(1, above=False)
self.assertTrue(np.allclose(t/norm(t), [0,-1]))
t = crv.tangent(1, above=True)
self.assertTrue(np.allclose(t/norm(t), [1,0]))
self.assertTrue(np.allclose(crv(1), [1,0]))
self.assertTrue(crv.order(0), 4)
# test the exact same curve, only with relative keyword
crv = CurveFactory.bezier([[0,0], [0,1], [1,0], [0,-1], [1,0], [0,1],[1,0]], relative=True)
self.assertEqual(len(crv.knots(0)), 3)
self.assertTrue(np.allclose(crv(0), [0,0]))
t = crv.tangent(0)
self.assertTrue(np.allclose(t/norm(t), [0,1]))
t = crv.tangent(1, above=False)
self.assertTrue(np.allclose(t/norm(t), [0,-1]))
t = crv.tangent(1, above=True)
self.assertTrue(np.allclose(t/norm(t), [1,0]))
self.assertTrue(np.allclose(crv(1), [1,0]))
self.assertTrue(crv.order(0), 4)
评论列表
文章目录