Смещение холста

Я пытаюсь изменить происхождение рисунка холста, но не могу достичь того, чего хочу.

Мне нужно нарисовать линию, заполненную пунктиром. Точечный рисунок создается с помощьюcreatePattern (подача на него динамически созданного элемента canvas).

Холст (по сути красная точка) создается так:

function getPatternCanvas() {
  var dotWidth = 20,
      dotDistance = 5,
      patternCanvas = document.createElement('canvas'),
      patternCtx = patternCanvas.getContext('2d');

  patternCanvas.width = patternCanvas.height = dotWidth + dotDistance;

  // attempt #1:
  // patternCtx.translate(10, 10);

  patternCtx.fillStyle = 'red';
  patternCtx.beginPath();
  patternCtx.arc(dotWidth / 2, dotWidth / 2, dotWidth / 2, 0, Math.PI * 2, false);
  patternCtx.closePath();
  patternCtx.fill();

  return patternCanvas;
}

Затем рисуется линия с использованием этого шаблона (холст):

var canvasEl = document.getElementById('c');
var ctx = canvasEl.getContext('2d');
var pattern = ctx.createPattern(getPatternCanvas(), 'repeat');

// attempt #2
// ctx.translate(10, 10);

ctx.strokeStyle = pattern;
ctx.lineWidth = 30;

ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(100, 100);
ctx.stroke();

Итак, мы получаем это:

Теперь я хотел бы сместить происхождение этих точек, скажем, на 10 пикселей. Перевод холста шаблона не помогает, так как тогда мы не получим полных точек:

И перевод контекста самого canvas не помогает, так как это смещает линию, а не сам шаблон:

Перевод контекста, похоже, не влияет на происхождение шаблона.

Есть ли способ изменить смещение самого шаблона?

Ответы на вопрос(3)

Ваш ответ на вопрос