Пример #1
0
 def test_complex_bernstein_polynomial(self):
     bernstein_polynomial = BezierCurve.bernstein_polynomial([(0,0), (40,40), (100,100)])
     self.assertEqual(bernstein_polynomial(0), (0,0))
     self.assertEqual(bernstein_polynomial(0.25), (21.25,21.25))
     self.assertEqual(bernstein_polynomial(0.5), (45,45))
     self.assertEqual(bernstein_polynomial(0.75), (71.25, 71.25))
     self.assertEqual(bernstein_polynomial(1), (100,100))
Пример #2
0
 def test_simple_bernstein_polynomial(self):
     bernstein_polynomial = BezierCurve.bernstein_polynomial([(0,0), (50,50), (100,100)])
     self.assertEqual(bernstein_polynomial(0), (0,0))
     self.assertEqual(bernstein_polynomial(0.25), (25, 25))
     self.assertEqual(bernstein_polynomial(0.5), (50, 50))
     self.assertEqual(bernstein_polynomial(0.75), (75, 75))
     self.assertEqual(bernstein_polynomial(1), (100,100))
Пример #3
0
 def test_complexCurvePoints(self):
     points = [(0, 0), (40, 40), (100, 100)]
     n = 5
     expected_curve_points = [(0, 0), (21.25, 21.25), (45, 45),
                              (71.25, 71.25), (100, 100)]
     self.assertEqual(BezierCurve.curvePoints(n, points),
                      expected_curve_points)
Пример #4
0
 def test_simpleCurvePoints(self):
     points = [(0, 0), (50, 50), (100, 100)]
     n = 5
     expected_curve_points = [(0, 0), (25, 25), (50, 50), (75, 75),
                              (100, 100)]
     self.assertEqual(BezierCurve.curvePoints(n, points),
                      expected_curve_points)
Пример #5
0
    def generatePoints(self, knots):
        """
        Generates bezier curve points on a curve, according to the internal
        knots passed as parameter.
        """
        if not isListOfPoints(knots):
            raise ValueError("knots must be valid list of points")

        midPtsCnt = max( \
            abs(self.fromPoint[0] - self.toPoint[0]), \
            abs(self.fromPoint[1] - self.toPoint[1]), \
            2)
        knots = [self.fromPoint] + knots + [self.toPoint]
        return BezierCurve.curvePoints(midPtsCnt, knots)
Пример #6
0
    def test_bernstein_polynomial_point(self):
        self.assertEqual(BezierCurve.bernstein_polynomial_point(5,0,0), 1)

        self.assertEqual(BezierCurve.bernstein_polynomial_point(3, 0, 1), -2)
        self.assertEqual(BezierCurve.bernstein_polynomial_point(3, 1, 1), 3)

        self.assertEqual(BezierCurve.bernstein_polynomial_point(3, 0, 2), 4)
        self.assertEqual(BezierCurve.bernstein_polynomial_point(3, 1, 2), -12)
        self.assertEqual(BezierCurve.bernstein_polynomial_point(3, 2, 2), 9)
Пример #7
0
 def test_binomial(self):
     self.assertEqual(BezierCurve.binomial(10,2), 45)
     self.assertEqual(BezierCurve.binomial(4,2), 6)
     self.assertEqual(BezierCurve.binomial(1,1), 1)
     self.assertEqual(BezierCurve.binomial(2,0), 1)