Как нарисовать текст на <canvas>, который следует за квадратичной кривой, нарисованной методом quadraticCurveTo - PullRequest
2 голосов
/ 01 января 2012

Есть ли где-нибудь функция, которая позволит мне рисовать текст, следующий за квадратичной кривой (нарисованный с использованием метода quadraticCurveTo)?

Я нашел только функцию, которая позволяет рисовать текст на дуге, но это не то, что я хочу.

Здесь вы можете увидеть пример моей ситуации: http://jsbin.com/ixozok

1 Ответ

2 голосов
/ 01 января 2012

Конечно, нет встроенного способа, но стоит отметить, что это очень легко сделать в SVG, поскольку SVG изначально поддерживает рисование текста на путях.

Чтобы сделать это на холсте, вам нужно разбить свойКвадратичная кривая в ряд точек, которые представляют кривую (скажем, реализуя что-то близко к этому ).То, что вы хотите, это список точек, который является приближением квадратичной кривой.Затем вы выбираете точки вдоль этого приближения, которые вы хотите нарисовать, и рисуете каждую букву текста по отдельности.Чтобы найти угол для любой конкретной буквы, вы должны взять точку, на которой вы рисуете эту букву, и смежную точку и использовать эти две точки для вычисления наклона (и, следовательно, угла).

Теория, лежащая в его основене так уж сложно, но сейчас я слишком здоров, чтобы привести пример с рабочим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...