var

x, y,xl,yl,xx,yy: Integer;

begin (OutChar) k := 1;

x := xO;

у :- yO;

repeat

op := Vec[k] and $8080;

xx := Vec[k] and $7F;

yy := (Vec[k] shr 8) and $7F» if yy>63 then УУ ••= УУ-128;

{Учитываем масштабные коэффициенты} xx := Round(xx*MX) ;

yy := Round(yy*MY) ;

{Поворачиваем на угол Angle} Coo (xx,yy,xl,yl) ;

xl := xO+xl;

yl := yO-yl;

{Вычерчиваем вектор} if op=$8080 then Line(x,y,xl,yl; ;

{Переходим в новую точку, if opoO then begin

x := xl;

у :° yl end;

{Проверяем конец команд} if op°0 then

begin {Готовим вывод следующего} х0 := x;

yO :- у end else

inc(k) until Op=0 end; (OutChar) {——————}

var

F: File;

k,j: Word;

c: Byte;

Buf: array [1..1OOO] of Word;

P: PFontDesc;

PB: Pointer;

begin {OutString}

(Ищем регистрацию шрифта} if (FontNumb°0) or

(Font>FontNumb) or (S='') then Exit; (Нет ни одного шрифта, пустая

строка или неверный номер шрифта} Р := FontList;

(Переводим угол в радианы} Ang := Angle*pi/180;

for k := 1 to Font-1 do P := P^NextFont;

with P" do begin