перенести opentype в paper.js, задача кривой Безье - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь перенести шрифт из opentype в объект пути paper.js. Я использую opentype.js, чтобы получить точки из письма, а затем пытаюсь найти новый путь из этих точек.

Звучит просто, но почему-то я не могу решить эту кривую. Я пытаюсь выяснить, как это сделать, используя примеры и ссылку на paper.js. но я не могу найти это.

из opentype.js я получаю следующие пути:

{type: "C", x: 56.3, x1: 58.4, x2: 56.3, y: 111.9, y1: 90, y2: 97.80000000000001}

(здесь x / y - базовая точка, а x1 / y1 и x2 / y2 - связанные с ней обработчики точек.)

и теперь я попытался поместить это в путь paper.js:

var segments = [];

    segments.push(new Segment(
        new Point(119,111.30000000000001)
        ));
    segments.push(new Segment(
        new Point(119,284.1)
        ));
    segments.push(new Segment(
        new Point(139.7,302.7),
        new Point(119,300),
        new Point(125.89999999999999,302.7)
        ));
    segments.push(new Segment(
        new Point(161,284.1),
        new Point(150.2,302.7),
        new Point(161,300.3)
        ));

        var path = new Path(segments);
        path.strokeColor = "black"

Все не изогнутые пути верны. но обработчики показаны без логической позиции ...

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 07 мая 2019

Segment.handleIn и Segment.handleOut - координаты относительно точки привязки.Убедитесь, что вы даете относительные координаты для дескрипторов, а не абсолютные.

Простым решением будет использование OpenType.js для преобразования шрифта в SVG ширину Path.toSVG(decimalPlaces), а затем импортируйте его на бумаге.js с importSVG(svg[, options]).

...