Каким образом отображаются точки глифов в шрифте UFO?
Я пытаюсь захватить точки / пути глифов (без использования шрифта). Я преобразовал глиф в НЛО.
<contour>
<point x="281" y="646" type="qcurve"/>
<point x="273" y="599"/>
<point x="225" y="411"/>
<point x="216" y="363" type="qcurve"/>
<point x="320" y="382"/>
<point x="426" y="445" type="qcurve"/>
<point x="603" y="552"/>
<point x="603" y="626" type="qcurve"/>
<point x="603" y="676"/>
<point x="502" y="676" type="qcurve"/>
<point x="420" y="676"/>
</contour>
Согласно инструкции,qcurve
означает quadratic curves
получено из TrueType. Таким образом, мы можем вычислить две контрольные точки Безье из одной квадратичной контрольной точки:
CP1 = QP0 + 2/3 *(QP1-QP0)
CP2 = QP2 + 2/3 *(QP1-QP2)
В этом случае у нас должна быть одна контрольная точка между двумя точками (см. Первые четыре строки; есть две контрольные точки).
Как мы можем преобразовать квадратичную кривую с двумя контрольными точками в кривую Безье?
1 ответ
Не существует квадратичной кривой с двумя контрольными точками. По определению, у него только один. Однако TryeType имеет сжатое представление точек, которое удаляет точки на кривой, которые лежат точно между контрольными точками последовательных квадратичных кривых, поэтому список точек, который вы видите в файле UFO, просто сопоставляется с собственными "на кривой" и "вне кривой" TrueType. определение точек.
Как поясняется в документации по НЛО, это требует особого обращения, поэтому см. "Почему в контуре глифа появляется несколько последовательных точек вне кривой?" Сообщение Stackru и ответ о том, как интерпретировать подобные последовательности.