Многие текстовые символы имеют внутренние отверстия (например, a, b, d, e, g, o, p, q, 0,4,6,8,9 и т. Д.).Если я возьму их 2D-фигуры и использую их, чтобы вырезать отверстия на плоской форме, будут вырезаны только контуры этих фигур, и центральное отверстие каждого персонажа не останется на плоской форме.
Есть ли решение, чтобы правильно обрезать плоскость с помощью текстовых фигур?Обратите внимание, что я ищу собственное решение three.js с двухмерными текстовыми фигурами, НЕ использую библиотеку и выдавленный трехмерный текст, который был бы гораздо менее эффективным.
пример основного кода: двухмерные текстовые формы обрезают прямоугольную форму:
// text shapes
var message = "example";
var textshapes = font.generateShapes( message, 100, 2 );
// rectangle shape
var width = 800, height = 300, x = -130, y = -110;
var rectShape = new THREE.Shape();
rectShape.moveTo( x, y );
rectShape.lineTo( x, y+height );
rectShape.lineTo( x+width, y+height );
rectShape.lineTo( x+width, y );
rectShape.lineTo( x, y );
//cut rectangle shape with the message's text shapes
var tslen = textshapes.length;
for (i=0; i<tslen; i++){
rectShape.holes.push( textshapes[i] );
}
var geometry = new THREE.ShapeGeometry(rectShape);
результат: