code: function quadraticBezierCurve(fromX, fromY, cpX, cpY, toX, toY, out = [])
  {
      const n = 20;
      const points = out;
  
      let xa = 0;
      let ya = 0;
      let xb = 0;
      let yb = 0;
      let x = 0;
      let y = 0;
  
      for (let i = 0, j = 0; i <= n; ++i)
      {
          j = i / n;
  
          // The Green Line
          xa = getPt(fromX, cpX, j);
          ya = getPt(fromY, cpY, j);
          xb = getPt(cpX, toX, j);
          yb = getPt(cpY, toY, j);
  
          // The Black Dot
          x = getPt(xa, xb, j);
          y = getPt(ya, yb, j);
  
          points.push(x, y);
      }
  
      return points;
  }
docs: Calculate the points for a quadratic bezier curve. (helper function..)
  Based on: https://stackoverflow.com/questions/785097/how-do-i-implement-a-bezier-curve-in-c
  
  Ignored from docs since it is not directly exposed.
  
  @ignore
  @private
  @param {number} fromX - Origin point x
  @param {number} fromY - Origin point x
  @param {number} cpX - Control point x
  @param {number} cpY - Control point y
  @param {number} toX - Destination point x
  @param {number} toY - Destination point y
  @param {number[]} [out=[]] - The output array to add points into. If not passed, a new array is created.
  @return {number[]} an array of points