make-bezier   scheme


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/runtime/scheme.xtm

Implementation

(define make-bezier
   (lambda (x1 y1 x2 y2 cx1 cy1 cx2 cy2)
      (let* ((xc (* 3 (- cx1 x1)))
       (xb (- (* 3 (- cx2 cx1)) xc))
       (xa (- x2 x1 (* 3 (- cx2 cx1))))
       (yc (* 3 (- cy1 y1)))
       (yb (- (* 3 (- cy2 cy1)) yc))
       (ya (- y2 y1 (* 3 (- cy2 cy1)))))
   (lambda (t)
      (cons (+ (* xa t t t)
         (* xb t t)
         (* xc t)
         x1)
      (+ (* ya t t t)
         (* yb t t)
         (* yc t)
         y1))))))


Back to Index