
P5.JS Hershey Vector Font Font Library (การสาธิตสด)
Hershey Fonts เป็นชุดของแบบอักษรเวกเตอร์ที่พัฒนาขึ้น c. 2510 โดยดร. อัลเลนวินเซนต์เฮอร์ชีย์ที่ห้องปฏิบัติการอาวุธกองทัพเรือซึ่งเดิมออกแบบมาเพื่อแสดงผลโดยใช้เวกเตอร์ในการแสดงหลอดแคโทดเรย์ ฟอนต์มีให้บริการแบบสาธารณะและมีข้อ จำกัด การใช้งานเล็กน้อย ฟอนต์เวกเตอร์จะถูกปรับขนาดและหมุนได้ง่ายในสองหรือสามมิติ; ดังนั้นฟอนต์เฮอร์ชีย์จึงถูกนำมาใช้อย่างกว้างขวางในกราฟิกคอมพิวเตอร์โปรแกรมการออกแบบโดยใช้คอมพิวเตอร์ช่วยและเมื่อเร็ว ๆ นี้ในแอพพลิเคชั่นการผลิตที่ใช้คอมพิวเตอร์ช่วยเช่นการแกะสลักด้วยเลเซอร์ (วิกิพีเดีย)
ห้องสมุด 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 Sketch 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 หรือ rightnoise เพื่อเพิ่มเอฟเฟกต์พิเศษลงในจุดยอด noise สามารถเป็นหนึ่งในประเภทข้อมูลต่อไปนี้:noise เป็นตัวเลขตัวกรอง randomGaussian เริ่มต้นจะถูกนำไปใช้เพื่อให้เอฟเฟกต์ jiggly/ประสาทโดยใช้ noise เป็นค่าเบี่ยงเบนมาตรฐานnoise เป็นวัตถุของแบบฟอร์ม {x: (x,y)=>(x_offset), y: (x,y)=>(y_offset)} , noise.x และ noise.y จะถูกเรียกในแต่ละจุดยอดและค่าคืนจะใช้เป็นออฟเซ็ตสำหรับแกนที่เกี่ยวข้องผู้ใช้ยังสามารถจัดหาแบบอักษรและการแมปเฮอร์ชีย์ของตัวเอง หากต้องการแยกวิเคราะห์แบบอักษรเฮอร์ชีย์ที่จัดรูปแบบอย่างถูกต้องเป็นสตริงให้ใช้:
var font_data = P5 . hershey . parseFontString ( " 49 12LXRMRV RNOOPOSQTSTUSUPVO" ) ;การทำแผนที่จากจุดเข้าร่วม Unicode ไปยังดัชนีที่ใช้โดย Hershey Font นั้นจำเป็นเช่นกัน หากดัชนีเหมือนกันอาจเป็นเรื่องง่ายเหมือน:
var cmap = ( x ) => ( x ) ; สมมติว่าคุณมีการทำแผนที่ที่ซับซ้อนมากขึ้นซึ่งตัวละคร A , B , C , D จะถูกแมปกับดัชนี 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) ส่งคืนความกว้างเป็นพิกเซลของข้อความถ้ามันจะถูกวาดด้วยอาร์กิวเมนต์ argsP5.hershey.validateFont(font_data) ส่งคืน Array ที่มีดัชนีของร่ายมนตร์ที่ไม่ถูกต้องทั้งหมดในวัตถุฟอนต์ index.html สำหรับรายละเอียด