Não pode escolher mais do que 25 tópicos
Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
|
-
- (define-module interpolation
- :exports (lerp lerper stepped-lerper
- point-lerp point-lerper
- bezier2 bezierer2)
-
- (define-typed (lerp a :number b :number t :number)
- (+ (* t (- b a)) a))
-
- (define-typed (lerper a :number b :number)
- (define-typed (ret t :number)
- (lerp a b t))
- ret)
-
- (define-typed (stepped-lerper a :number b :number #steps :number)
- (let ((t 0)
- (dt (/ 1 #steps)))
- (lambda ()
- (let ((res (lerp a b t)))
- (mutate! t (+ t dt))
- res))))
-
- (define make-point pair)
- (define point->x first)
- (define point->y rest)
-
- (define (point-lerp p1 p2 t)
- (make-point (lerp (point->x p1) (point->x p2) t)
- (lerp (point->y p1) (point->y p2) t)))
-
- (define (point-lerper p1 p2)
- (lambda (t) (point-lerp p1 p2 t)))
-
- (define (bezier2 p1 p2 p3 t)
- (point-lerp (point-lerp p1 p2 t)
- (point-lerp p2 p3 t)
- t))
-
- (define (bezierer2 p1 p2 p3)
- (let ((lerper1 (point-lerper p1 p2))
- (lerper2 (point-lerper p2 p3)))
- (lambda (t)
- (point-lerp (lerper1 t)
- (lerper2 t) t))))
- )
|