Có ai biết bất kỳ thuật toán nào sẽ tự động tính toán các ký tự dựa trên hình dạng glyph khi người dùng nhập văn bản không?
Tôi không có nghĩa là tính toán tầm thường về chiều rộng trước hoặc tương tự, ý tôi là phân tích hình dạng của glyphs để ước tính khoảng cách tối ưu trực quan giữa các ký tự. Ví dụ: nếu chúng ta sắp xếp ba ký tự liên tiếp trong một dòng, thì ký tự giữa sẽ SEEM ở giữa dòng bất chấp hình dạng của ký tự. Một ví dụ khai sáng chức năng k sâu-trên-bay:
Một ví dụ về kTHER-on-the-fly:
Trong hình ảnh trên a
dường như là quá đúng. Nó nên được chuyển một số tiền nhất định về phía trước T
để nó dường như ở giữa T
và g
. Thuật toán sẽ kiểm tra các hình dạng của T
và a
(và có thể cả các chữ cái khác nữa) và quyết định mức độ a
phải dịch chuyển sang bên trái. Đây số tiền nhất định là điều mà các thuật toán cần tính toán - KHÔNG XÉT cặp chữ CÓ THỂ CỦA FONT.
Tôi đang nghĩ đến việc mã hóa chương trình javascript (+ svg + html) sử dụng phông chữ vẽ tay và nhiều trong số chúng thiếu các cặp k sâu. Các trường văn bản sẽ có thể chỉnh sửa và có thể bao gồm văn bản của nhiều phông chữ. Tôi nghĩ rằng kTHER-on-the-fly có thể là một cách để đảm bảo dòng văn bản trung bình trong trường hợp này.
EDIT: Một điểm bắt đầu cho điều này có thể là sử dụng phông chữ svg, vì vậy thật dễ dàng để có được các giá trị đường dẫn. Trong phông chữ svg, đường dẫn được định nghĩa theo cách này:
<glyph glyph-name="T" unicode="T" horiz-adv-x="1251" d="M531 0v1293h
-483v173h1162v-173h-485v-1293h-194z"/>
<glyph glyph-name="a" unicode="a" horiz-adv-x="1139" d="M828 131q-100 -85
-192.5 -120t-198.5 -35q-175 0 -269 85.5t-94 218.5q0 78 35.5 142.5t93
103.5t129.5 59q53 14 160 27q218 26 321 62q1 37 1 47q0 110 -51 155q-69 61
-205 61q-127 0 -187.5 -44.5t-89.5 -157.5l-176 24q24 113 79 182.5t159
107t241 37.5 q136 0 221 -32t125 -80.5t56 -122.5q9 -46 9 -166v-240q0
-251 11.5 -317.5t45.5 -127.5h-188q-28 56 -36 131zM813 533q-98 -40 -294
-68q-111 -16 -157 -36t-71 -58.5t-25 -85.5q0 -72 54.5 -120t159.5 -48q104
0 185 45.5t119 124.5q29 61 29 180v66z"/>
Thuật toán (hoặc mã javascript) nên kiểm tra các đường dẫn đó theo một cách nào đó và xác định khoảng cách tối ưu giữa chúng.