Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - TrueType - Принцип хранения информации о символе30 апреля 2011Оглавление: 1. TrueType 2. Принцип хранения информации о символе 3. Составной символ 4. Единица измерения шрифта TrueType формат создан для хранения информации o контуре символа. В отличие от растрового символа векторный легко масштабируется. Но и у векторного способа хранения есть свои недостатки. Для того чтобы однозначно понимать записанную информацию, пользуются следующими правилами: • информация о линии контура хранится в виде точек • прямая линия контура строится по двум точкам начальной и конечной. • элемент дуги строится методом Безье. Начало и конец кривой описываются точками, которые лежат на самой кривой. Остальные точки, не принадлежащие кривой служат для построения дуг. Для построения кривой требуется три точки: P0, P1, P2, которая идёт из точки P0 в точку P2. P1 не лежит на кривой и служит для определения её кривизны. Для расчёта каждой точки кривой воспользуемся формулой 1: P =2P0 + 2tP1 + t2P2 На рисунке 3 приведён пример сложной кривой, которая состоит из двух простых. На рисунке 4 та же самая кривая, но точка P2 отсутствует. Её координаты восстанавливают. Например в данном случае точка P2 лежит по середине отрезка P1 P3. Подробнее об этом можно почитать в описании построения кривой Безье, квадратичный метод. Итак, для построения контура используется два вида точек. Один тип это точка, лежащая на контуре, является началом одной кривой или отрезка и концом другой. Другой вид точек это точки не лежащие на контуре и являются контрольными точками для построения кривой. Между двумя кривыми может отсутствовать координатная точка и её придётся восстанавливать. Следующее правило: • первая и последняя точка контура замыкаются. То есть контур не может быть не замкнутым. Обязательно строится отрезок или кривая из последней точки в первую. На рисунке 5 показан прием построения одноконтурного символа «С». Контур состоит как из отрезков, так и из кривых. Или, говоря дословно, для построения этого символа использовались точки лежащие на контуре on-curve и контрольные точки. 25 точка смыкается с 0. 26, 27 точки являются контрольными и служат для построения кривой 25-0. На рисунке 6 показан символ, состоящий из 3х контуров. Для того чтобы различать контуры, существуют следующие правила: • Для каждого символа хранится информация о том, из скольких контуров его строить, а также указывается номер последней точки для каждого контура. Как видно из примера 5, контур не обязан завершаться on-curve точкой. • Для того чтобы строить контур, каждая точка имеет свой индекс, и линии рисуются в порядке следования индексов. Первый индекс 0. Информация о количестве точек ограничена 16 битным числом то есть теоритически символ может строиться из 65536 точек. Для того чтобы узнать количество точек из которого строится символ, нужно посмотреть информацию о последнем индексе последнего контура. Количество точек номер последнего индекса +1, так как нумерация начинается с 0. Заливка символа. Из рисунков 5, 6 видно, что только контуров для построения символов не достаточно. Пространство внутри контура требуется закрасить. Как это сделать, если например символ «B», рисунок 6, имеет три контура и требуется закрасить только то, что находится между 1 м контуром и 2 м, а также 1 м и 3 м. А то, что внутри 2го и третьего не закрашивать. Для этого ввели ещё правила: • Внешний контур всегда закрашивается внутри не зависимо от обхода. • Внутренний контур закрашивается в зависимости от обхода внешнего контура. Если порядок обхода точек совпадает, то внутренняя область закрашивается, если не совпадает, то не закрашивается. • Двумя внешними контурами может быть сформирован внутренний. Если обход точек двух контуров совпадает, то эта область закрашивается, если не совпадает, то не закрашивается. Точки p1 и p4 лежат внутри внешних контуров и эта область всегда закрашивается, не зависимо от обхода точек. Точка p2 попадает в область между двумя внешними контурами с разными проходами и эта область не закрашивается. Точки p3 и p5 попадают в области внутренних контуров и закрашивание происходит в зависимости от обхода точек. Точка P3 получается внутри контура с обходом точек против частовой стрелки, в то время как внешний контур имеет обход в другую сторону и из-за этого область 3 не закрашивается. Точка p5 попадает в область с обходом по часовой стрелке, такое же направление обхода, что и у внешнего контура, поэтому область закрашивается. С точки зрения построения шрифта область точки p5 избыточна. Данный внутренний объём будет закрашен в любом случае. Просмотров: 3385
|