ทำฟอนต์กราฟ

เริ่มโพสต์โดย uvSOV, 24 มิ.ย. 2026, 10:09 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

uvSOV



ฟอนต์กราฟ ตัวอักษรปลายอักษรต่อกับต้นตัวอักษรถัดไป ขึ้นหรือลงขึ้นกับตัวอักษรนั้นๆ ดังนั้นกราฟจะเป็นรูปแบบไหน ขึ้นกับคำที่พิมพ์ลงไป ไม่แน่นอน และสามารถพุ่งทะลุบรรทัดได้  .. ทั้งหมดนี้คุณสมบัติ แล้วก็เป็นโจทย์ของฟอนต์ตัวนี้

ยังนึกการเอาใช้งานแบบอื่นไม่ได้เหมือนกัน แต่อยากบันทึกเทคนิคเอาไว้ เผื่อเป็นประโยชน์ในภายหน้า

1. เทคนิคสำคัญคือ ทำอักษรอีกชุดนึงขึ้นมา หน้าตาเหมือนกับตัวอักษร แต่กำหนดให้เป็นสระวรรณยุกต์ (ที่มีแถบสีชมพูทั้งหมด)



2. ตัวอย่าง คุณสมัติของ ก.ไก่ 2 ตัวนี้คือ ตัวแรกเป็น พยัญชนะ  ตัวที่สองเป็น สระวรรณยุกต์





3. ตัวพยัญชนะ นอกจากกำหนด mark สระบน ล่าง แล้วให้เพิ่ม สระข้าง ขึ้นมา(ลูกศรชี้ first_side)



4. ส่วนตัวสระวรรณยุกต์ มี mark 1 จุด mark on mark 2 จุด
  4.1 mark สระข้าง  เพื่อเชื่อพยัญชนะตัวแรก (first_side Mark)
  4.2 mark on mark สระข้าง mark เพื่อเชื่อมสระตัวถัดไป (ลูกศรชี้ side_mk Mark)
  4.3 mark on mark สระข้าง base เพื่อกำหนดตำแหน่งเชื่อมสระตัวถัดไป (ลูกศรชี้ side_mk Base)



  4.4 ตำแหน่ง mark จะเปลี่ยนไปตามรูปอักษร



5. เขียน script กำหนดให้ อักษรตัวแรกเป็นพยัญชนะ ที่เหลือเป็นสระวรรณยุกต์ให้หมด
  5.1 เมื่อพิมพ์อักษรตัวแรก จะเหมือนปรกติ
  5.2 แต่เมื่อพิมพ์อักษรตัวที่สอง อักษรจะเลื่อนตำแหน่งขึ้นลงมาที่ mark ข้างของอักษรตัวแรก
  5.3 แต่เมื่อพิมพ์อักษรตัวถัดๆไป อักษรจะเลื่อนตำแหน่งขึ้นลงมาที่ mark on mark ของอักษรตัวก่อนหน้า เสมอ

เส้นอักษรก็จะเชื่อมต่อเนื่องขึ้นลงไปมา..ตามตัวอักษรที่พิมพ์ลงไป

ปล. ภาษาไทย ไม่แพ้ใครในโลก ระดับความยาก up level ขึ้นมาอีก เนื่องจากตัวอักษร(ที่ทำหน้าที่เป็นสระตอนนี้)ดันมีสระบนล่างและวรรณยุกต์ ซ้อนเข้าไปอีก ..แน่นอน!!เราหลอกระบบไปรอบนึงแล้วโดยการเอาพยัญชนะมาทำเป็นสระ ดังนั้นมันไม่มีระบบสระจริงซ้อนสระปลอมที่เราทำไว้  จึงต้องทำการหลอกซ้อนหลอกเข้าอีกทีดังนี้

6. สร้าง ชุดสระบนล่าง อีกหลายชุด
  6.1 ทำให้เป็นพยัชนะที่ไม่มีความกว้าง โดย ที่ตำแหน่งของ side_mk Mark และ side_mk Base ไว้ตำแหน่งเดียวกัน
  6.2 ตำแหน่งของ side_mk แต่ละชุด สูงต่ำ ไม่เท่ากัน ขึ้นอยู่กับว่า จะใช้กับพยัญชนะ ตัวใด เช่น ก.ไก่ side_mk อยู่ล่างๆ ช.ช้าง side_mk อยู่บนๆ





  6.3 เขียน scirpt จับคู่ พยัญชนะ กับชุดสระ ให้เข้าคู่กัน สระไม่ลอยไม่จมเกินไป

เป็นอันจบงานได้

7. แถมท้ายด้วย การทำ space ที่มีความกว้างเท่าจำนวนอักษรที่พิมพ์ลงไป
   - เนื่องจาก สระวรรณยุกต์ ไม่สามารถมีความกว้างได้ ดังนั้น เมื่อพิมพ์ไป 1 คำ แล้วเว้นวรรค พิมพ์คำถัดไป อักษรจะทับกันมั่วไปหมด
   - จึงเขียน script ให้นับจำนวนตัวอักษรที่พิมพ์ แล้วเว้นระยะให้ตามจำนวนตัวอักษร
   -  แต่ก็ไม่สามารถแม่นยำ แม้จะโกงโดยวิธี fix width ตัวอักษรไว้แล้ว แต่ภาษาไทยดันมีสระบนล่าง ทำให้ space ที่คำนวณให้เกินไปตามจำนวนสระบนล่างในคำ หรือประโยคนั้นๆจ้า

จบละ

iannnnn

:25: :46:
anchor mark ที่ใช้นี่
ก็เป็นชนิดเดียวกับที่ใช้กับพวกสระวรรณยุกต์บนล่างเลยใช่ไหมครับ
แค่เปลี่ยนเป็นใช้กับตัวข้างๆ แทน

ถ้าแบบนี้เราก็สามารถเขียนเป็นฟอนต์ตัวเขียนติดๆ กันแบบ calligraphy ขึ้นๆ ลงๆ ได้เลย :25:

SMF 2.1.7 © 2026, Simple Machines