                                       total-distance))]
     (vector-divide-by-const difference-vector time-between)))
 
-;; this calculation will leave off the last points velocity, so for
-;; now we can just set it to 0
+;; This calculation will leave off the last points velocity,  we can just set it to 0
 
 (defn path-velocities [path total-time]
   (let [total-distance   (path-length path)


;; ## Motion, going through the paces

;; all the points along the generated path should have an associated
;; velocity. To start with we can generate a linear velocity along the
;; path, given a randomised total time to traverse the path and the
;; total length of the path.


;; ## Paths vs Points

;; All of the gestures Pollock makes are fluid paths, even if the
;; velocity along the path might be rather erratic. We now need to
;; work out how to generate a path of points that we can then use the
;; code we have written above to project and splatter.

;; A [Bezier curve](https://en.wikipedia.org/wiki/B%C3%A9zier_curve)
;; is a commonly used curve for generating a smooth curve that can be
;; scaled indefinitely allowing us to have as many points along our
;; path as we care to calculate.

;; Bezier curves are defined by an list of control points, so we need
;; to be able to generate a potential unbounded list of random control
;; points that should give use limitless different paths to paint with.

;; In order to generate a list of control points we will need to be
;; able to:

;;   - get a random number between two points for distance and steps,
;;   - get a random unit vector for the initial direction of the generation,
;;   - add vectors together to move between our control points.

(defn random-between [lower-bound upper-bound]
  (+ lower-bound (rand (- upper-bound lower-bound))))
