Зачем нужен этот символ в Matter.js?

Я пытаюсь перенести Matter.js на другой язык. Javascript не самый сильный мой язык.

Эта функция предположительно анализирует строку, содержащую упорядоченные пары x y, разделенные пробелами (и, возможно, запятыми), в определенный объект:

 * @method fromPath
 * @param {string} path
 * @param {body} body
 * @return {vertices} vertices
 */
Vertices.fromPath = function(path, body) {
    var pathPattern = /L?\s*([\-\d\.e]+)[\s,]*([\-\d\.e]+)*/ig,
        points = [];

    path.replace(pathPattern, function(match, x, y) {
        points.push({ x: parseFloat(x), y: parseFloat(y) });
    });

    return Vertices.create(points, body);
};

Позже происходит вызов этой функции, когда в Vertices.fromPath передается следующая строка:

vertices: Vertices.fromPath('L 0 0 L ' + width + ' 0 L ' + width + ' ' + height + ' L 0 ' + height)

Где width и height числа. Какова цель символа L? Я думал, что этот метод должен разбивать пары x, y, разделенные запятыми или пробелами, на числа, поэтому я не могу понять актуальность символа L.

Кто-нибудь может просветить меня?


person Garry Pettet    schedule 16.02.2016    source источник


Ответы (1)


L - это команда "Line To". См. синтаксис пути SVG (MDN, spec), которую Matter.js может принять в качестве спецификации пути.

person Alexander Pavlov    schedule 16.02.2016
comment
Идеальный. Спасибо за помощь. - person Garry Pettet; 16.02.2016
comment
Также обратите внимание, что Vertices.fromPath — это просто вспомогательный метод для удобства преобразования простых путей SVG. Этот метод просто генерирует массив векторов [{x:.., y:...}...], который является фактическим форматом, который Matter.js использует везде. - person liabru; 16.02.2016