21 |
enddef; |
enddef; |
22 |
|
|
23 |
def basic = |
def basic = |
24 |
addto currentpicture also eye scaled 20; |
addto currentpicture also eye scaled 20 shifted (-10,0); |
25 |
yoffs := -50; |
pair eyeright; |
26 |
|
eyeright:= (10,0); |
27 |
|
yoffs := -80; |
28 |
|
ydist := -50; |
29 |
|
|
30 |
boxit.fex("Feature extraction" infont defaultfont); |
boxit.fex("Feature extraction" infont defaultfont); |
31 |
boxit.fv("Feature vector" infont defaultfont); |
boxit.fv("Feature vector" infont defaultfont); |
32 |
boxit.ma("Matcher" infont defaultfont); |
boxit.ma("Matching" infont defaultfont); |
33 |
|
|
34 |
picture p; |
picture p; |
35 |
p := "Memorized textures" infont defaultfont; |
p := "Memorized vectors" infont defaultfont; |
36 |
pair v; |
pair v; |
37 |
v := (urcorner(p) - ulcorner(p)); |
v := (urcorner(p) - ulcorner(p)); |
38 |
for i = 0 upto 7: |
for i = 0 upto 7: |
45 |
|
|
46 |
xpart(mem.c) = xpart(fex.c) = xpart(fv.c) = 0; |
xpart(mem.c) = xpart(fex.c) = xpart(fv.c) = 0; |
47 |
ypart(fex.c) = yoffs; |
ypart(fex.c) = yoffs; |
48 |
ypart(fv.c) = 2 * yoffs; |
ypart(fv.c) = yoffs + ydist; |
49 |
ypart(mem.c) = 3.3 * yoffs; |
ypart(mem.c) = yoffs + 2.3 * ydist; |
50 |
fv.w-fv.e = fex.w-fex.e; |
fv.w-fv.e = fex.w-fex.e; |
51 |
|
|
52 |
fixpos(fex, fv, mem); |
fixpos(fex, fv, mem); |
65 |
|
|
66 |
drawunboxed(mem); |
drawunboxed(mem); |
67 |
|
|
68 |
|
drawarrow eyeright{right} .. tension 1 .. fex.n{down}; |
69 |
|
drawarrow fex.s{down} -- .3[fex.s, fv.n]; |
70 |
|
|
71 |
|
drawarrow ma.w{left} .. fv.s{up} dashed evenly; |
72 |
|
drawarrow ma.w{left} .. (mem.n+(0,-5)){down} dashed evenly; |
73 |
|
|
74 |
|
for i = 1 upto 9: |
75 |
|
addto currentpicture doublepath unitsquare shifted (-.5,0) |
76 |
|
yscaled uniformdeviate(35) |
77 |
|
xscaled (abs(fv.w-fv.e)/11) |
78 |
|
shifted ((i/10.0)[fv.ne, fv.nw]) |
79 |
|
withpen pencircle scaled .5pt |
80 |
|
; |
81 |
|
endfor; |
82 |
|
|
83 |
enddef; |
enddef; |
84 |
|
|