p5 hershey js
1.0.0

P5.js Hershey vector字体库。 (现场演示)
好时字体是开发的矢量字体的集合c。 1967年,由海军武器实验室的艾伦·文森特·赫尔希(Allen Vincent Hershey)博士撰写,最初旨在使用早期阴极射线管显示器上的向量渲染。这些字体是公开可用的,并且使用限制很少。矢量字体很容易在两个或三个维度上缩放和旋转;因此,好时字体已被广泛用于计算机图形,计算机辅助设计程序,以及最近也用于计算机辅助制造应用等激光雕刻等。 (维基百科)
该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 > 在P5素描JavaScript中,致电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滤波器,以使用noise作为标准偏差产生震动/神经效应。noise是形式的对象{x: (x,y)=>(x_offset), y: (x,y)=>(y_offset)} , noise.x and noige.x和noise.y 。用户还可以提供自己的好时字体和映射。要将正确格式的好时字体解析为字符串,请使用:
var font_data = P5 . hershey . parseFontString ( " 49 12LXRMRV RNOOPOSQTSTUSUPVO" ) ;还需要从Unicode入口点到Hershey字体使用的索引的映射。如果这些索引相同,那么这可能很简单:
var cmap = ( x ) => ( x ) ;假设您有一个更复杂的映射,其中字符A , B , C , D将映射到Hershey Font中的2,4,6,8:
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)如果要使用gragments args绘制文本的像素的宽度。P5.hershey.validateFont(font_data)返回一个Array ,其中包含字体对象中所有无效字形的索引。 index.html 。