function getTouchInfo(canvas, w, h, e) {
            var i = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
            var rect = canvas.getBoundingClientRect();
            var sx = canvas.scrollWidth / w || 1;
            var sy = canvas.scrollHeight / h || 1;
            var touch = e.touches[i] || e.changedTouches[i];
            return {
              x: (touch.clientX - rect.left) / sx,
              y: (touch.clientY - rect.top) / sy,
              winX: touch.clientX,
              winY: touch.clientY,
              id: touch.identifier
            };
          }
The system variable touches[] contains an array of the positions of all
current touch points, relative to (0, 0) of the canvas, and IDs identifying a
unique touch as it moves. Each element in the array is an object with x, y,
and id properties.

The touches[] array is not supported on Safari and IE on touch-based
desktops (laptops).

@property {Object[]} touches
@readOnly

@example
<div>
<code>
// On a touchscreen device, touch
// the canvas using one or more fingers
// at the same time
function draw() {
  clear();
  let display = touches.length + ' touches';
  text(display, 5, 10);
}
</code>
</div>

@alt
Number of touches currently registered are displayed on the canvas