我在寫一個TTF解析器。爲了更好地理解TTF格式,我使用了TTX來提取C:\ Windows \ calibri.ttf的「.notdef」字形數據,如下所示。TrueType字體的字形是由二次Bezier構成的。爲什麼在字形輪廓中出現多個連續的曲線外點?
<TTGlyph name=".notdef" xMin="0" yMin="-397" xMax="978" yMax="1294">
<contour>
<pt x="978" y="1294" on="1"/>
<pt x="978" y="0" on="1"/>
<pt x="44" y="0" on="1"/>
<pt x="44" y="1294" on="1"/>
</contour>
<contour>
<pt x="891" y="81" on="1"/>
<pt x="891" y="1213" on="1"/>
<pt x="129" y="1213" on="1"/>
<pt x="129" y="81" on="1"/>
</contour>
<contour>
<pt x="767" y="855" on="1"/>
<pt x="767" y="796" on="0"/>
<pt x="732" y="704" on="0"/>
<pt x="669" y="641" on="0"/>
<pt x="583" y="605" on="0"/>
<pt x="532" y="602" on="1"/>
<pt x="527" y="450" on="1"/>
many more points
</contour>
...some other xml
</TTGlyph>
您可以在一行中看到多個偏離曲線的控制點。但我知道TrueType字體是由二次貝塞爾曲線構成的,每一曲線都有兩個曲線上的點(終點)和一個曲線上的點(控制點)。如何解釋這些連續的離線曲線點?
它們是Bezier曲線的離曲線*控制點*。 [Wikipedia文章](http://en.wikipedia.org/wiki/B%C3%A9zier_curve)中的點P1和P2。 –
嗨漢斯。感謝您的回覆。你提到的點P1和P2是三次Bezier。我知道n階貝塞爾有(n-1)個控制點。特別地,二次貝塞爾只需要一個控制點。爲什麼TTF由二次Bezier生成,有多個控制點? – Moon
@HansPassant,見上。 – Moon