В библиотеке Two.js работа с текстом осуществляется
через объект Two.Text, который позволяет создавать и
управлять текстовыми элементами с использованием векторной графики.
Одним из важных аспектов форматирования текста является
межстрочный интервал (line height), определяющий
расстояние между базовыми линиями последовательных строк.
leadingДля изменения межстрочного интервала используется свойство
leading объекта Two.Text. Оно задаёт
вертикальное расстояние между строками относительно базовой линии
текста.
let two = new Two({ width: 800, height: 600 }).appendTo(document.body);
let text = new Two.Text(
'Первая строка\nВторая строка\nТретья строка',
400, 300,
{
size: 48,
family: 'Arial',
leading: 60,
alignment: 'center'
}
);
two.add(text);
two.update();
Пояснения к коду:
size — размер шрифта в пикселях.family — шрифтовое семейство.leading — межстрочный интервал, в пикселях. Значение
больше size увеличивает расстояние между строками, меньше —
уменьшает.alignment — выравнивание текста (left,
center, right).В Two.js leading задаётся в абсолютных
пикселях, а не в относительных единицах к размеру шрифта. Для
динамических интерфейсов часто используют формулу:
text.leading = text.size * 1.2;
где 1.2 — коэффициент, задающий комфортное расстояние
между строками (аналог CSS line-height: 1.2).
Обновление leading можно выполнять после создания
текста:
text.leading = 80;
two.update();
После изменения свойства обязательно вызывается
two.update(), чтобы перерисовать сцену с новым
интервалом.
Two.js поддерживает символы переноса \n. Каждая новая
строка учитывает текущее значение leading. Например:
let multiLine = new Two.Text(
'Строка 1\nСтрока 2\nСтрока 3\nСтрока 4',
200, 100,
{
size: 36,
leading: 50
}
);
Если требуется текст без ручных переносов, строки можно разделять
программно, разбивая длинную строку на массив с помощью
split('\n') и объединяя через join('\n').
При использовании центрального выравнивания
(alignment: 'center') межстрочный интервал напрямую влияет
на позицию текста относительно его центра. Например, увеличение
leading смещает весь блок текста вверх или вниз, если
исходная координата задаёт центр. Для точного позиционирования блока с
учётом интервала рекомендуется использовать формулы:
let centerY = 300;
text.translation.y = centerY - (text.value.split('\n').length - 1) * text.leading / 2;
Это гарантирует, что блок текста остаётся визуально центрированным.
baselineБазовая линия текста (baseline) в Two.js может быть
top, middle или bottom. В
сочетании с leading оно определяет, как строки
распределяются относительно исходной координаты. Например:
let text = new Two.Text('Пример текста', 400, 300, {
size: 48,
leading: 70,
baseline: 'top'
});
top — верх текста совпадает с координатой.middle — центр текста совпадает с координатой.bottom — нижняя линия текста совпадает с
координатой.Выбор базовой линии помогает точно управлять вертикальной компоновкой многострочного текста.
Для интерфейсов с ползунками или настройками параметров текста можно
динамически менять leading через события:
slider.addEventListener('input', (e) => {
text.leading = parseFloat(e.target.value);
two.update();
});
Такой подход позволяет визуально оценивать оптимальный межстрочный интервал для конкретного шрифта и размера.
leading задаёт точное расстояние между строками в
пикселях.baseline и alignment
позволяет корректно позиционировать текстовые блоки.two.update().Эти методы дают полный контроль над межстрочным интервалом в Two.js, обеспечивая точное и визуально аккуратное форматирование многострочного текста.