% compile with % texexec --xtx filename \setupcolors[state=start] \enableregime[utf-8] \def\fett{\ss\bf} \def\mathcal#1{{\cal#1}} \font\f='Minion Pro' % any font you have installed on your system \setupbodyfont[10pt] \starttext \startMPinclusions def draw_point(expr P) = save r; r:=1.5mm; unfill fullcircle scaled r shifted P; draw fullcircle scaled r shifted P; enddef; def label_with_white_background(expr pic, pos) = save pict; picture pict; pict = thelabel.urt(pic, pos); unfill bbox pict; draw pict; draw_point(pos); enddef; u:=25; % 25 = 25bp = 25 PostScript points = 30/72 in wi:=10; % width in units u he:=8; % height in units u hoehe:=he*u; % height breite:=wi*u; % width path p[], q[], r[], c[]; picture pic[]; transform t, T; t:=identity scaled u; pair Pr[]; Pr0:=(2, 1.4); T:=identity zscaled Pr0; bboxmargin:=3; \stopMPinclusions \startMPpage z0=(1,0) transformed t; % Polygon z1=(2.0, 0.3) transformed t; z2=(4, 0.9) transformed t; z3=(3.5, 1.2) transformed t; z4=(2.5, 1.2) transformed t; % Arcs for i=1 upto 4: c[i]:=halfcircle scaled (2abs z[i]) cutafter ((0,0)--(0, hoehe)); endfor % Polygons p0:=z1--z2--z3--z4--cycle; p1:=p0 transformed T; for i=1 upto 4: q[i]:=(0,0)--z[i]; r[i]:=q[i] transformed T; endfor % --- Grid --- for i=0 upto he: draw (0, i*u)--(breite, i*u) withcolor .7white; endfor for j=0 upto wi: draw (j*u, 0)--(j*u, hoehe) withcolor .7white; endfor % --- End Grid --- draw (0, 0)--(breite, 0)--(breite, hoehe)--(0, hoehe)--cycle; % Polygon only rotated, not scaled fill p0 rotated angle Pr0 withcolor .9white; draw p0 rotated angle Pr0; for i=1 upto 4: draw q[i] withcolor red; draw r[i] withcolor blue; endfor pickup pencircle scaled 2; % Draw Polygons for i=0 upto 1: fill p[i] withcolor .9white; draw p[i]; endfor draw (0,0)--z0 withcolor red; draw ((0,0)--z0) transformed T withcolor blue; % Draw Arcs pickup pencircle scaled .5; for i=1 upto 4: draw c[i] withcolor red; draw c[i] scaled abs(Pr0) cutafter ((0, hoehe-.05u)--(breite, hoehe-.05u)) cutbefore ((breite-.05u, 0)--(breite-.05u, hoehe)) withcolor blue; endfor % pic0:=thelabel.rt(\sometxt{\fett T := identity zscaled (2, 1.4)}, % (3.8, 2) transformed t); pic0:=thelabel.rt(\sometxt{\f Кириллица}, (3.8, 2) transformed t); unfill bbox pic0; draw pic0; pickup pencircle scaled .5; draw bbox pic0; % Show components of transform T Pr1:=(7.5, 7); p99:=Pr1--(Pr1+(0, -3.6))--(Pr1+(2, -3.6))--(Pr1+(2, 0))--cycle; p99:=p99 shifted (0, .3); unfill p99 transformed t; draw p99 transformed t; label.rt ("Tx="&decimal(xpart T), Pr1 transformed t); Pr1:=Pr1-(0, .6); label.rt ("Ty="&decimal(ypart T), Pr1 transformed t); Pr1:=Pr1-(0, .6); label.rt("Txx="&decimal(xxpart T), Pr1 transformed t); Pr1:=Pr1-(0, .6); label.rt("Txy="&decimal(xypart T), Pr1 transformed t); Pr1:=Pr1-(0, .6); label.rt("Tyx="&decimal(yxpart T), Pr1 transformed t); Pr1:=Pr1-(0, .6); label.rt("Tyy="&decimal(yypart T), Pr1 transformed t); label_with_white_background(\sometxt{$\mathcal{P}_0$}, z0); label_with_white_background(\sometxt{$\mathcal{P}_0'$}, z0 transformed T); label(\sometxt{$\mathcal{F}$}, center p0 shifted (0,.1u)); label(\sometxt{$\mathcal{F}'$}, center p1 shifted (0,u)); \stopMPpage \stoptext