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 。