
P5.JS Hershey Vector Font Library. (Живая демонстрация)
Шрифты Херши - это коллекция векторных шрифтов, разработанных c. 1967 г. Доктор Аллен Винсент Херши в лаборатории военно -морского оружия, первоначально предназначенная для того, чтобы быть отображаемым с использованием векторов на ранних дисплеях катодных лучей. Шрифты публично доступны и имеют мало ограничений на использование. Векторные шрифты легко масштабируются и повернуты в два или три измерения; Следовательно, шрифты Херши широко использовались в компьютерной графике, компьютерных программах проектирования, а в последнее время также в компьютерных производственных приложениях, таких как лазерная гравюра. (Википедия)
Эта библиотека P5.JS делает шрифты Херши в браузере. Это может проанализировать пользовательские шрифты Херши, а также пользовательское картирование символов.
| Римский | Готический | Греческий | Другой |
|---|---|---|---|
COMPLEX | GOTHIC_ENGLISH_TRIPLEX | GREEK_COMPLEX | ITALIC_COMPLEX |
COMPLEX_SMALL | GOTHIC_GERMAN_TRIPLEX | GREEK_COMPLEX_SMALL | ITALIC_COMPLEX_SMALL |
DUPLEX | GOTHIC_ITALIAN_TRIPLEX | GREEK_PLAIN | ITALIC_TRIPLEX |
PLAIN | GREEK_SIMPLEX | SCRIPT_COMPLEX | |
SIMPLEX | SCRIPT_SIMPLEX | ||
TRIPLEX | CYRILLIC_COMPLEX |
В HTML включите библиотеку, а также файл данных.
< script src =" p5.hershey.js " > </ script >
< script src =" p5.hershey.data.js " > </ script > И в javaScript на эскизе P5 позвоните P5.hershey.putText
push ( ) ;
translate ( 100 , 100 ) ;
noFill ( ) ;
stroke ( 0 ) ;
strokeWeight ( 1 ) ;
P5 . hershey . putText ( "Hello World!" ) ;
pop ( ) ; P5 . hershey . putText ( "Hello World!" , {
cmap : FONT_HERSHEY . GOTHIC_GERMAN_TRIPLEX ,
align : "center" ,
noise : 0.5 ,
} ) ;cmap указывает отображение символов для использования, см. Поддерживаемые наборы символов для деталей.align может быть одним из left , center или right .noise можно использовать для добавления спецэффектов к вершинам. noise может быть одним из следующих данных данных:noise является числом, применяется randomGaussian фильтр по умолчанию, чтобы дать Jiggly/Neversious с использованием noise в качестве стандартного отклонения.noise является объектом формы {x: (x,y)=>(x_offset), y: (x,y)=>(y_offset)} , noise.x и noise.y будет вызвана на каждую вершину, а возвращаемое значение используется в качестве смещения для соответствующей оси.Пользователи также могут предоставлять свои собственные шрифты и отображения Hershey. Чтобы проанализировать правильно отформатированный шрифт Херши в качестве строки, используйте:
var font_data = P5 . hershey . parseFontString ( " 49 12LXRMRV RNOOPOSQTSTUSUPVO" ) ;Также требуется отображение от точки входа Unicode до индекса, используемого шрифтом Hershey. Если индексы идентичны, это может быть так же просто, как:
var cmap = ( x ) => ( x ) ; Скажем, у вас есть более сложное отображение, где персонажи A , B , C , D будут нанесены на карту с индексами 2,4,6,8 в шрифте Hershey:
var cmap = ( x ) => ( [ 2 , 4 , 6 , 8 ] [ x - 65 ] ) ; Наконец -то подайте шрифт и отображение с P5.hershey.putText :
P5 . hershey . putText ( "Hello World!" , {
font : font_data ,
cmap : cmap ,
} ) ;P5.hershey.estimateTextWidth(text, args) возвращает ширину в пикселях текста, если ее следует нарисовать с аргументами args .P5.hershey.validateFont(font_data) возвращает Array , содержащий индексы всех неверных глифов в объекте шрифта. index.html для деталей.