筆記:Variable Font 的細節和「插值代數」
01-29
承上篇。
1. VF 的插值,如果跳開決議矩陣的那塊的話,就是一個簡單的線性泛函,只不過使用了帳篷函數給分段處理的情況拆開來「增維」。如果使用 Bra-ket 符號的話,算符會把樣式向量(定義在設計空間上)轉換為一個母版數加一維的權重向量(右矢),此向量的第一項總是 1,表示「默認設置」;而每個涉及插值的數值(坐標、尺寸等)則可以看作是一個左矢 。根據 TypeDrawers 上面的討論,同一個字元內涉及到的所有向量都是同維數的。因此,插值結果可以用表示。2. 由線性泛函的性質就很容易導出:坐標和的左矢,這個公式在處理 CFF2 的 blend 時候很有用,因為 blend 是對堆棧上的數值進行擾動,而 CFF 程序裡面堆棧上面全都是偏移量的。
3. 對於迭代 blend 算符的形式,由於,故可以直接將微擾值求和即可。
4. 考慮某一維微擾是某個插值結果的情況,即,可以看出它是等於,即:我們可以通過將 blended result 作為 delta 的手段,將非線性內插引入 CFF2 輪廓描述的 Variable Font 中。// 這條發現可能會改變 otfcc 內部所有用於表示插值結果的數據結構。
5. 尚不清楚對於 CFF2 的 subroutine index 是否允許插值——如果允許這將讓人們可以創建有不同拓撲的 VF。
6. 列兩個 Open Question:
- 對於某個(某些)m 維的函數(組),如何構造一個「好」的決議區間組和左矢(組),讓它可以用 前一節 裡面的公式進行近似?對單個函數的擬合適用於簡單的情況,多個函數的擬合則主要用於輪廓,特別是涉及到約束求解算出的輪廓。
- 對於文件壓縮的話,如何合併相似的項(尤其是 R 部分相似者),或者處理比如去掉某些軸的情況?
推薦閱讀:
※DriodSans與 Droid Sans Fallback之間的關係?
※如何放大 Windows 8.1 的所有項目,並且字體不發虛?
※有寶寶說:這樣的海報怎麼做?
※Adobe 官網上這一款字體叫什麼?
TAG:字体 |