summaryrefslogtreecommitdiff
path: root/usergrps/uktug/baskervi/4_4/lisa.mf
blob: 5586d4cdb997fa8c65bcad2d937f5fc52745a26c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
% lisa.mf by Raymond Chen (rjc@math.princeton.edu) 
 
% Lisa Simpson. 
 
% Dependencies: 
% 
%       eye_right  dimple     tau 
%           |        |         | 
%         nose       |        vertical part of tau 
%           |  \     | 
%           |    mouth 
%  ear   eye_left    | 
% |   \  /  |       chin 
% neck hair lashes  / 
%    \            / 
%      \        / 
%        pearls 
% 
% The ordering is so that we draw the pearls as early as possible. 
 
pictureof(Lisa, 24u#, 24u#, 0); 
    pickup thinpen; 
 
    localpath eye_left, eye_right; 
    eye_right = superellipse( (16u, 10.1u), (14u, 12u), (11.5u, 10u), 
                (13.75u, 8u), .7); 
    draw eye_right; 
 
    localpath nose; 
    nose = preclip((14u, 10u).. (16.5u, 8.7u){right} ... 
                   (19.3u, 7.5u){down} ... (17u, 6.5u){left}, eye_right); 
    draw nose; 
 
    localpath dimple; dimple = dimplepath( (11.8u, 6u), (10.9u, 5.5u)); 
    draw dimple; 
 
    localpath mouth; 
    mouth = prepostclip( 
           (18.3u, 6.8u).. tension infinity and 3.. 
           (20u, 5.6u){down} .. tension 5 and 1 .. 
           (16u, 4.7u){left} .. 
           (11.5u, 5.8u), nose, dimple); 
    draw mouth; 
 
    localpath ear; 
    ear = (8.5u, 7.9u) .. (7u, 6.5u) ..(8.3u, 5.5u); 
    draw ear; 
 
    localpath chin; 
            z1c = (15.7u, 5.5u); 
            z2c = (15.5u, 4.1u); 
            z3c = (15u, 3.6u); 
            z4c = (13.5u, 0u); 
    chin = preclip(z1c{down}..z2c..z3c..{z4c-z3c}z4c, mouth); 
    draw chin; 
 
    localpath neck; 
    neck = preclip((8u, 5.8u){dir -60}..{-dir 60}(8u,3.2u)..(6.75u,u), ear); 
    draw neck; 
 
    % For efficiency, we draw the pearls as soon as it becomes possible. 
    if pearl > 0: 
    pickup lacepen; 
    overdraw fullcircle scaled .9pearl shifted (7.5u, 2.7u); % far left 
    overdraw fullcircle scaled .95pearl shifted (13.7u, 1.4u); % far right 
    overdraw fullcircle scaled .95pearl shifted (8.8u, 2.3u); % left of center 
    overdraw fullcircle scaled pearl shifted (12u, 1.5u);  % right of center 
    overdraw fullcircle scaled pearl shifted (10.3u, 1.7u); % center 
    pickup thinpen; 
    fi 
 
    drawtau( (7.5u, 6.8u), (8.5u, 7.2u), (8.1u, 6u), (8.1u, 7.3u) ); 
 
    eye_left = prepostclip( 
                (17.2u, 8.2u){right}.. 
                (19.25u, 10.5u){up}.. 
                (17u, 12.2u){left}.. 
                {down}(15.3u, 10.5u), nose, eye_right); 
    draw eye_left; 
 
    localpath hair; 
    hair = prepostclip((18u, 11.3u) :: (21u, 13u) :: 
           %(18.5u, 16u) :: 
           (18.7u, 15.5u) :: 
           %(19.25u, 19.25u) :: 
           (19.5u, 19u) :: 
           (16u, 18u) :: (14u, 21u) :: (11.6u, 18.7u) :: 
           (8u, 20u) ..tension 3..  (7u, 17.5u) ..tension 3..  (3u, 16u) :: 
           (4.75u, 13.75u) :: (2.5u, 11.5u) :: (4.5u, 9.5u) :: (3.3u, 7u) :: 
           (6u, 6.7u) :: (6.5u, 4.25u) :: (8u, 5.8u), eye_left, ear); 
    draw hair; 
 
    pickup lashpen; 
    localpath lash; 
 
    rlash((12u, 10.5u), (11u, 11.7u), 3); 
    rlash((12.75u, 11.25u), (12.2u, 12.8u), 3); 
    rlash((14u, 12u), (14.2u, 13.5u), -3); 
    rlash((15u, 11.7u), (15.5u, 12.9u), -3); 
 
    llash((17.0u, 12.0u), (17.6u, 13.1u), -3); 
    llash((18.2u, 11.8u), (18.9u, 13.1u), -2); 
    llash((18.9u, 11.4u), (19.8u, 12.1u), -2); 
    llash((19.0u, 10.4u), (20.3u, 11.1u), -2); 
 
    eyepos(Lisa, 12.5u#, 9.75u#, 16.8u#, 9.75u#); 
 
endpicture;