def test_curvature(self):
# linear curves have zero curvature
crv = Curve()
self.assertAlmostEqual(crv.curvature(.3), 0.0)
# test multiple evaluation points
t = np.linspace(0,1, 10)
k = crv.curvature(t)
self.assertTrue(np.allclose(k, 0.0))
# test circle
crv = CurveFactory.circle(r=3) + [1,1]
t = np.linspace(0,2*pi, 10)
k = crv.curvature(t)
self.assertTrue(np.allclose(k, 1.0/3.0)) # circles: k = 1/r
# test 3D (np.cross has different behaviour in 2D/3D)
crv.set_dimension(3)
k = crv.curvature(t)
self.assertTrue(np.allclose(k, 1.0/3.0)) # circles: k = 1/r
评论列表
文章目录