code: def point(self, t):
          
          # algebraically equivalent to
          # P0*(1-t)**3 + 3*P1*t*(1-t)**2 + 3*P2*(1-t)*t**2 + P3*t**3
          # for (P0, P1, P2, P3) = self.bpoints()
          return self.start + t*(
              3*(self.control1 - self.start) + t*(
                  3*(self.start + self.control2) - 6*self.control1 + t*(
                      -self.start + 3*(self.control1 - self.control2) + self.end
                  )))
docs: Evaluate the cubic Bezier curve at t using Horner's rule.