Changeset 2115


Ignore:
Timestamp:
Dec 3, 2007, 6:48:56 PM (12 years ago)
Author:
Sam Hocevar
Message:
  • Slightly improved dithering examples. Added matrices and tiles.
Location:
www/study
Files:
7 added
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • www/study/fig2-3-2.svg

    r2011 r2115  
    3333     inkscape:pageshadow="2"
    3434     inkscape:zoom="1.979899"
    35      inkscape:cx="198.78351"
    36      inkscape:cy="951.83685"
     35     inkscape:cx="129.69022"
     36     inkscape:cy="937.97639"
    3737     inkscape:document-units="px"
    3838     inkscape:current-layer="layer1"
    3939     showgrid="true"
    40      inkscape:window-width="1048"
    41      inkscape:window-height="826"
    42      inkscape:window-x="93"
    43      inkscape:window-y="57"
     40     inkscape:window-width="1400"
     41     inkscape:window-height="1007"
     42     inkscape:window-x="0"
     43     inkscape:window-y="0"
    4444     inkscape:grid-points="true" />
    4545  <metadata
     
    5959     id="layer1">
    6060    <path
     61       style="fill:#dfffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
     62       d="M 125,3.36218 L 244,3.36218 L 244,122.36218 L 125,122.36218 L 125,3.36218 z "
     63       id="rect2423"
     64       sodipodi:nodetypes="ccccc" />
     65    <path
     66       style="fill:#dfffdf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
     67       d="M 125,122.36218 L 244,122.36218 L 244,241.36218 L 125,241.36218 L 125,122.36218 z "
     68       id="rect2425"
     69       sodipodi:nodetypes="ccccc" />
     70    <path
     71       style="fill:#ffffdf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
     72       d="M 6,122.36218 L 125,122.36218 L 125,241.36218 L 6,241.36218 L 6,122.36218 z "
     73       id="rect2427"
     74       sodipodi:nodetypes="ccccc" />
     75    <path
     76       style="fill:#ffdfff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
     77       d="M 6,3.36218 L 125,3.36218 L 125,122.36218 L 6,122.36218 L 6,3.36218 z "
     78       id="rect2421"
     79       sodipodi:nodetypes="ccccc" />
     80    <path
    6181       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
    6282       d="M 6,3.3621826 L 244,3.3621826 L 244,241.36218 L 6,241.36218 L 6,3.3621826 z "
  • www/study/fig2-3-2b.svg

    r2012 r2115  
    3232     inkscape:pageopacity="0.0"
    3333     inkscape:pageshadow="2"
    34      inkscape:zoom="1.4"
    35      inkscape:cx="268.06922"
    36      inkscape:cy="813.26542"
     34     inkscape:zoom="0.98994949"
     35     inkscape:cx="275.4204"
     36     inkscape:cy="884.20957"
    3737     inkscape:document-units="px"
    3838     inkscape:current-layer="layer1"
    3939     showgrid="true"
    40      inkscape:window-width="978"
    41      inkscape:window-height="972"
    42      inkscape:window-x="369"
    43      inkscape:window-y="19"
     40     inkscape:window-width="1400"
     41     inkscape:window-height="1007"
     42     inkscape:window-x="0"
     43     inkscape:window-y="0"
    4444     inkscape:grid-points="true" />
    4545  <metadata
     
    5858     inkscape:groupmode="layer"
    5959     id="layer1">
     60    <rect
     61       y="3.3621826"
     62       x="245"
     63       height="239"
     64       width="239"
     65       id="rect2423"
     66       style="opacity:1;fill:#dfffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
     67    <rect
     68       style="opacity:1;fill:#dfffdf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
     69       id="rect2425"
     70       width="239"
     71       height="239"
     72       x="245"
     73       y="242.36218" />
     74    <rect
     75       y="242.36218"
     76       x="6"
     77       height="239"
     78       width="239"
     79       id="rect2427"
     80       style="opacity:1;fill:#ffffdf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
     81    <rect
     82       style="opacity:1;fill:#ffdfff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
     83       id="rect2421"
     84       width="239"
     85       height="239"
     86       x="6"
     87       y="3.3621826" />
    6088    <path
    6189       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
  • www/study/fig2-5-3.svg

    r2114 r2115  
    1515   inkscape:version="0.45.1"
    1616   sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
    17    sodipodi:docname="fig2-3-2.svg"
     17   sodipodi:docname="fig2-5-3.svg"
    1818   inkscape:output_extension="org.inkscape.output.svg.inkscape"
    19    inkscape:export-filename="/home/sam/debian/pkg-misc/unstable/libcaca/www/study/fig2-3-2.png"
    20    inkscape:export-xdpi="60"
    21    inkscape:export-ydpi="60">
     19   inkscape:export-filename="/home/sam/debian/pkg-misc/unstable/libcaca/www/study/fig2-5-3.png"
     20   inkscape:export-xdpi="45"
     21   inkscape:export-ydpi="45">
    2222  <defs
    2323     id="defs4" />
     
    3232     inkscape:pageopacity="0.0"
    3333     inkscape:pageshadow="2"
    34      inkscape:zoom="1.979899"
    35      inkscape:cx="198.78351"
    36      inkscape:cy="951.83685"
     34     inkscape:zoom="1.2405303"
     35     inkscape:cx="373.96554"
     36     inkscape:cy="800.74412"
    3737     inkscape:document-units="px"
    3838     inkscape:current-layer="layer1"
    3939     showgrid="true"
    40      inkscape:window-width="1048"
    41      inkscape:window-height="826"
    42      inkscape:window-x="93"
    43      inkscape:window-y="57"
     40     inkscape:window-width="1400"
     41     inkscape:window-height="1007"
     42     inkscape:window-x="0"
     43     inkscape:window-y="0"
    4444     inkscape:grid-points="true" />
    4545  <metadata
     
    5959     id="layer1">
    6060    <path
     61       sodipodi:nodetypes="ccccccc"
     62       d="M 6,427.36218 L 65,427.36218 L 65,367.36218 L 125,367.36218 L 125,427.36218 L 185,427.36218 L 185,486.36218"
     63       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
     64       id="path2247" />
     65    <path
     66       style="opacity:1;fill:#dfffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
     67       d="M 65,67.36218 L 65,127.36218 L 6,127.36218 L 6,187.36218 L 65,187.36218 L 65,247.36218 L 125,247.36218 L 125,187.36218 L 185,187.36218 L 185,127.36218 L 125,127.36218 L 125,67.36218 L 65,67.36218 z "
     68       id="rect2267"
     69       sodipodi:nodetypes="ccccccccccccc" />
     70    <path
     71       sodipodi:nodetypes="ccccccccccccc"
     72       id="path2272"
     73       d="M 185,8.3621826 L 185,67.36218 L 125,67.36218 L 125,127.36218 L 185,127.36218 L 185,187.36218 L 245,187.36218 L 245,127.36218 L 305,127.36218 L 305,67.36218 L 245,67.36218 L 245,8.3621826 L 185,8.3621826 z "
     74       style="opacity:1;fill:#ffdfff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
     75    <path
     76       style="opacity:1;fill:#dfffdf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
     77       d="M 245,127.36218 L 245,187.36218 L 185,187.36218 L 185,247.36218 L 245,247.36218 L 245,307.36218 L 305,307.36218 L 305,247.36218 L 365,247.36218 L 365,187.36218 L 305,187.36218 L 305,127.36218 L 245,127.36218 z "
     78       id="path2274"
     79       sodipodi:nodetypes="ccccccccccccc" />
     80    <path
     81       sodipodi:nodetypes="ccccccccccccc"
     82       id="path2276"
     83       d="M 125,187.36218 L 125,247.36218 L 65,247.36218 L 65,307.36218 L 125,307.36218 L 125,367.36218 L 185,367.36218 L 185,307.36218 L 245,307.36218 L 245,247.36218 L 185,247.36218 L 185,187.36218 L 125,187.36218 z "
     84       style="opacity:1;fill:#ffffdf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
     85    <path
    6186       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
    62        d="M 6,3.3621826 L 244,3.3621826 L 244,241.36218 L 6,241.36218 L 6,3.3621826 z "
     87       d="M 66,247.36218 L 365,247.375 L 365,187.375 L 6,187.375 L 6,127.375 L 304,127.36218"
    6388       id="rect2160"
    64        sodipodi:nodetypes="ccccc" />
    65     <path
    66        style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
    67        d="M 7,62.362183 L 243,62.362183 M 65,4.3621826 L 65,240.36218"
    68        id="rect4103"
    69        sodipodi:nodetypes="cccc" />
    70     <text
    71        xml:space="preserve"
    72        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     89       sodipodi:nodetypes="cccccc" />
     90    <text
     91       xml:space="preserve"
     92       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     93       x="93.378632"
     94       y="209.62473"
     95       id="text3153"
     96       sodipodi:linespacing="125%"><tspan
     97         sodipodi:role="line"
     98         id="tspan3155"
     99         x="93.378632"
     100         y="209.62473">9</tspan><tspan
     101         sodipodi:role="line"
     102         x="93.378632"
     103         y="236.21727"
     104         id="tspan3157">21</tspan></text>
     105    <text
     106       sodipodi:linespacing="125%"
     107       id="text3159"
     108       y="89.624733"
     109       x="93.378632"
     110       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     111       xml:space="preserve"><tspan
     112         y="89.624733"
     113         x="93.378632"
     114         id="tspan3161"
     115         sodipodi:role="line">17</tspan><tspan
     116         id="tspan3163"
     117         y="116.21728"
     118         x="93.378632"
     119         sodipodi:role="line">21</tspan></text>
     120    <text
     121       sodipodi:linespacing="125%"
     122       id="text3177"
     123       y="149.62473"
    73124       x="33.378632"
    74        y="24.624727"
    75        id="text4106"
    76        sodipodi:linespacing="125%"><tspan
    77          sodipodi:role="line"
    78          id="tspan4108"
     125       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     126       xml:space="preserve"><tspan
     127         y="149.62473"
    79128         x="33.378632"
    80          y="24.624727">1</tspan><tspan
    81          sodipodi:role="line"
     129         id="tspan3179"
     130         sodipodi:role="line">13</tspan><tspan
     131         id="tspan3181"
     132         y="176.21727"
    82133         x="33.378632"
    83          y="51.217273"
    84          id="tspan3145">17</tspan></text>
    85     <path
    86        sodipodi:nodetypes="cccc"
    87        id="path3141"
    88        d="M 243,182.36218 L 7,182.36218 M 185,240.36218 L 185,4.3621826"
    89        style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
    90     <path
    91        style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
    92        d="M 243,122.36218 L 7,122.36218 M 125,240.36218 L 125,4.3621826"
    93        id="path3143"
    94        sodipodi:nodetypes="cccc" />
    95     <text
    96        sodipodi:linespacing="125%"
    97        id="text3147"
    98        y="24.624727"
     134         sodipodi:role="line">21</tspan></text>
     135    <text
     136       xml:space="preserve"
     137       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    99138       x="93.378632"
    100        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    101        xml:space="preserve"><tspan
    102          y="24.624727"
    103          x="93.378632"
    104          id="tspan3149"
    105          sodipodi:role="line">13</tspan><tspan
    106          id="tspan3151"
    107          y="51.217273"
    108          x="93.378632"
    109          sodipodi:role="line">17</tspan></text>
     139       y="149.62473"
     140       id="text3183"
     141       sodipodi:linespacing="125%"><tspan
     142         sodipodi:role="line"
     143         id="tspan3185"
     144         x="93.378632"
     145         y="149.62473">1</tspan><tspan
     146         sodipodi:role="line"
     147         x="93.378632"
     148         y="176.21727"
     149         id="tspan3187">21</tspan></text>
    110150    <text
    111151       xml:space="preserve"
    112152       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    113153       x="153.37863"
    114        y="24.624727"
    115        id="text3153"
    116        sodipodi:linespacing="125%"><tspan
    117          sodipodi:role="line"
    118          id="tspan3155"
    119          x="153.37863"
    120          y="24.624727">4</tspan><tspan
    121          sodipodi:role="line"
    122          x="153.37863"
    123          y="51.217273"
    124          id="tspan3157">17</tspan></text>
    125     <text
    126        sodipodi:linespacing="125%"
    127        id="text3159"
    128        y="24.624727"
     154       y="149.62473"
     155       id="text3219"
     156       sodipodi:linespacing="125%"><tspan
     157         sodipodi:role="line"
     158         id="tspan3221"
     159         x="153.37863"
     160         y="149.62473">5</tspan><tspan
     161         sodipodi:role="line"
     162         x="153.37863"
     163         y="176.21727"
     164         id="tspan3223">21</tspan></text>
     165    <path
     166       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     167       d="M 77.67857,215.36218 L 112.5,215.36218"
     168       id="path3241"
     169       sodipodi:nodetypes="cc" />
     170    <path
     171       sodipodi:nodetypes="cc"
     172       id="path3243"
     173       d="M 77.67857,95.36218 L 112.5,95.36218"
     174       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     175    <path
     176       sodipodi:nodetypes="cc"
     177       id="path3249"
     178       d="M 17.67857,155.36218 L 52.5,155.36218"
     179       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     180    <path
     181       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     182       d="M 77.67857,155.36218 L 112.5,155.36218"
     183       id="path3251"
     184       sodipodi:nodetypes="cc" />
     185    <path
     186       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     187       d="M 137.67857,155.36218 L 172.5,155.36218"
     188       id="path3263"
     189       sodipodi:nodetypes="cc" />
     190    <path
     191       sodipodi:nodetypes="ccccc"
     192       id="path2226"
     193       d="M 65,307.36218 L 305,307.36218 L 305,67.36218 L 65,67.36218 L 65,307.36218 z "
     194       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
     195    <path
     196       sodipodi:nodetypes="cccccc"
     197       id="path2187"
     198       d="M 125,68.36218 L 125,367.36218 L 185,367.36218 L 185,8.3621826 L 245,8.3621826 L 245,306.36218"
     199       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
     200    <text
     201       sodipodi:linespacing="125%"
     202       id="text2189"
     203       y="269.62473"
     204       x="273.37863"
     205       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     206       xml:space="preserve"><tspan
     207         y="269.62473"
     208         x="273.37863"
     209         id="tspan2191"
     210         sodipodi:role="line">10</tspan><tspan
     211         id="tspan2193"
     212         y="296.21727"
     213         x="273.37863"
     214         sodipodi:role="line">21</tspan></text>
     215    <text
     216       xml:space="preserve"
     217       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     218       x="273.37863"
     219       y="149.62473"
     220       id="text2195"
     221       sodipodi:linespacing="125%"><tspan
     222         sodipodi:role="line"
     223         id="tspan2197"
     224         x="273.37863"
     225         y="149.62473">18</tspan><tspan
     226         sodipodi:role="line"
     227         x="273.37863"
     228         y="176.21727"
     229         id="tspan2199">21</tspan></text>
     230    <text
     231       xml:space="preserve"
     232       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    129233       x="213.37863"
    130        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    131        xml:space="preserve"><tspan
    132          y="24.624727"
    133          x="213.37863"
    134          id="tspan3161"
     234       y="209.62473"
     235       id="text2201"
     236       sodipodi:linespacing="125%"><tspan
     237         sodipodi:role="line"
     238         id="tspan2203"
     239         x="213.37863"
     240         y="209.62473">14</tspan><tspan
     241         sodipodi:role="line"
     242         x="213.37863"
     243         y="236.21727"
     244         id="tspan2205">21</tspan></text>
     245    <text
     246       sodipodi:linespacing="125%"
     247       id="text2207"
     248       y="209.62473"
     249       x="273.37863"
     250       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     251       xml:space="preserve"><tspan
     252         y="209.62473"
     253         x="273.37863"
     254         id="tspan2209"
     255         sodipodi:role="line">2</tspan><tspan
     256         id="tspan2211"
     257         y="236.21727"
     258         x="273.37863"
     259         sodipodi:role="line">21</tspan></text>
     260    <text
     261       sodipodi:linespacing="125%"
     262       id="text2213"
     263       y="209.62473"
     264       x="333.37863"
     265       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     266       xml:space="preserve"><tspan
     267         y="209.62473"
     268         x="333.37863"
     269         id="tspan2215"
     270         sodipodi:role="line">6</tspan><tspan
     271         id="tspan2217"
     272         y="236.21727"
     273         x="333.37863"
     274         sodipodi:role="line">21</tspan></text>
     275    <path
     276       sodipodi:nodetypes="cc"
     277       id="path2219"
     278       d="M 257.67857,275.36218 L 292.5,275.36218"
     279       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     280    <path
     281       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     282       d="M 257.67857,155.36218 L 292.5,155.36218"
     283       id="path2221"
     284       sodipodi:nodetypes="cc" />
     285    <path
     286       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     287       d="M 197.67857,215.36218 L 232.5,215.36218"
     288       id="path2223"
     289       sodipodi:nodetypes="cc" />
     290    <path
     291       sodipodi:nodetypes="cc"
     292       id="path2225"
     293       d="M 257.67857,215.36218 L 292.5,215.36218"
     294       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     295    <path
     296       sodipodi:nodetypes="cc"
     297       id="path2227"
     298       d="M 317.67857,215.36218 L 352.5,215.36218"
     299       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     300    <text
     301       xml:space="preserve"
     302       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     303       x="153.37863"
     304       y="329.62473"
     305       id="text2229"
     306       sodipodi:linespacing="125%"><tspan
     307         sodipodi:role="line"
     308         id="tspan2231"
     309         x="153.37863"
     310         y="329.62473">12</tspan><tspan
     311         sodipodi:role="line"
     312         x="153.37863"
     313         y="356.21727"
     314         id="tspan2233">21</tspan></text>
     315    <text
     316       sodipodi:linespacing="125%"
     317       id="text2235"
     318       y="209.62473"
     319       x="153.37863"
     320       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     321       xml:space="preserve"><tspan
     322         y="209.62473"
     323         x="153.37863"
     324         id="tspan2237"
     325         sodipodi:role="line">20</tspan><tspan
     326         id="tspan2239"
     327         y="236.21727"
     328         x="153.37863"
     329         sodipodi:role="line">21</tspan></text>
     330    <text
     331       sodipodi:linespacing="125%"
     332       id="text2241"
     333       y="269.62473"
     334       x="93.378632"
     335       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     336       xml:space="preserve"><tspan
     337         y="269.62473"
     338         x="93.378632"
     339         id="tspan2243"
    135340         sodipodi:role="line">16</tspan><tspan
    136          id="tspan3163"
    137          y="51.217273"
    138          x="213.37863"
    139          sodipodi:role="line">17</tspan></text>
    140     <text
    141        sodipodi:linespacing="125%"
    142        id="text3165"
    143        y="84.624725"
    144        x="33.378632"
    145        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    146        xml:space="preserve"><tspan
    147          y="84.624725"
    148          x="33.378632"
    149          id="tspan3167"
    150          sodipodi:role="line">9</tspan><tspan
    151          id="tspan3169"
    152          y="111.21727"
    153          x="33.378632"
    154          sodipodi:role="line">17</tspan></text>
    155     <text
    156        xml:space="preserve"
    157        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    158        x="93.378632"
    159        y="84.624725"
    160        id="text3171"
    161        sodipodi:linespacing="125%"><tspan
    162          sodipodi:role="line"
    163          id="tspan3173"
    164          x="93.378632"
    165          y="84.624725">5</tspan><tspan
    166          sodipodi:role="line"
    167          x="93.378632"
    168          y="111.21727"
    169          id="tspan3175">17</tspan></text>
    170     <text
    171        sodipodi:linespacing="125%"
    172        id="text3177"
    173        y="84.624725"
     341         id="tspan2245"
     342         y="296.21727"
     343         x="93.378632"
     344         sodipodi:role="line">21</tspan></text>
     345    <text
     346       xml:space="preserve"
     347       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    174348       x="153.37863"
    175        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    176        xml:space="preserve"><tspan
    177          y="84.624725"
    178          x="153.37863"
    179          id="tspan3179"
     349       y="269.62473"
     350       id="text2247"
     351       sodipodi:linespacing="125%"><tspan
     352         sodipodi:role="line"
     353         id="tspan2249"
     354         x="153.37863"
     355         y="269.62473">4</tspan><tspan
     356         sodipodi:role="line"
     357         x="153.37863"
     358         y="296.21727"
     359         id="tspan2251">21</tspan></text>
     360    <text
     361       xml:space="preserve"
     362       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     363       x="213.37863"
     364       y="269.62473"
     365       id="text2253"
     366       sodipodi:linespacing="125%"><tspan
     367         sodipodi:role="line"
     368         id="tspan2255"
     369         x="213.37863"
     370         y="269.62473">8</tspan><tspan
     371         sodipodi:role="line"
     372         x="213.37863"
     373         y="296.21727"
     374         id="tspan2257">21</tspan></text>
     375    <path
     376       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     377       d="M 137.67857,335.36218 L 172.5,335.36218"
     378       id="path2259"
     379       sodipodi:nodetypes="cc" />
     380    <path
     381       sodipodi:nodetypes="cc"
     382       id="path2261"
     383       d="M 137.67857,215.36218 L 172.5,215.36218"
     384       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     385    <path
     386       sodipodi:nodetypes="cc"
     387       id="path2263"
     388       d="M 77.67857,275.36218 L 112.5,275.36218"
     389       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     390    <path
     391       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     392       d="M 137.67857,275.36218 L 172.5,275.36218"
     393       id="path2265"
     394       sodipodi:nodetypes="cc" />
     395    <path
     396       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     397       d="M 197.67857,275.36218 L 232.5,275.36218"
     398       id="path2267"
     399       sodipodi:nodetypes="cc" />
     400    <text
     401       sodipodi:linespacing="125%"
     402       id="text2269"
     403       y="149.62473"
     404       x="213.37863"
     405       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     406       xml:space="preserve"><tspan
     407         y="149.62473"
     408         x="213.37863"
     409         id="tspan2271"
    180410         sodipodi:role="line">12</tspan><tspan
    181          id="tspan3181"
    182          y="111.21727"
    183          x="153.37863"
    184          sodipodi:role="line">17</tspan></text>
     411         id="tspan2273"
     412         y="176.21727"
     413         x="213.37863"
     414         sodipodi:role="line">21</tspan></text>
    185415    <text
    186416       xml:space="preserve"
    187417       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    188418       x="213.37863"
    189        y="84.624725"
    190        id="text3183"
    191        sodipodi:linespacing="125%"><tspan
    192          sodipodi:role="line"
    193          id="tspan3185"
    194          x="213.37863"
    195          y="84.624725">8</tspan><tspan
    196          sodipodi:role="line"
    197          x="213.37863"
    198          y="111.21727"
    199          id="tspan3187">17</tspan></text>
    200     <text
    201        xml:space="preserve"
    202        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    203        x="33.378632"
    204        y="144.62473"
    205        id="text3189"
    206        sodipodi:linespacing="125%"><tspan
    207          sodipodi:role="line"
    208          id="tspan3191"
    209          x="33.378632"
    210          y="144.62473">3</tspan><tspan
    211          sodipodi:role="line"
    212          x="33.378632"
    213          y="171.21727"
    214          id="tspan3193">17</tspan></text>
    215     <text
    216        sodipodi:linespacing="125%"
    217        id="text3195"
    218        y="144.62473"
    219        x="93.378632"
    220        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    221        xml:space="preserve"><tspan
    222          y="144.62473"
    223          x="93.378632"
    224          id="tspan3197"
    225          sodipodi:role="line">15</tspan><tspan
    226          id="tspan3199"
    227          y="171.21727"
    228          x="93.378632"
    229          sodipodi:role="line">17</tspan></text>
     419       y="29.624733"
     420       id="text2275"
     421       sodipodi:linespacing="125%"><tspan
     422         sodipodi:role="line"
     423         id="tspan2277"
     424         x="213.37863"
     425         y="29.624733">20</tspan><tspan
     426         sodipodi:role="line"
     427         x="213.37863"
     428         y="56.217278"
     429         id="tspan2279">21</tspan></text>
    230430    <text
    231431       xml:space="preserve"
    232432       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    233433       x="153.37863"
    234        y="144.62473"
    235        id="text3201"
    236        sodipodi:linespacing="125%"><tspan
    237          sodipodi:role="line"
    238          id="tspan3203"
    239          x="153.37863"
    240          y="144.62473">2</tspan><tspan
    241          sodipodi:role="line"
    242          x="153.37863"
    243          y="171.21727"
    244          id="tspan3205">17</tspan></text>
    245     <text
    246        sodipodi:linespacing="125%"
    247        id="text3207"
    248        y="144.62473"
     434       y="89.624733"
     435       id="text2281"
     436       sodipodi:linespacing="125%"><tspan
     437         sodipodi:role="line"
     438         id="tspan2283"
     439         x="153.37863"
     440         y="89.624733">16</tspan><tspan
     441         sodipodi:role="line"
     442         x="153.37863"
     443         y="116.21728"
     444         id="tspan2285">21</tspan></text>
     445    <text
     446       sodipodi:linespacing="125%"
     447       id="text2287"
     448       y="89.624733"
    249449       x="213.37863"
    250450       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    251451       xml:space="preserve"><tspan
    252          y="144.62473"
    253          x="213.37863"
    254          id="tspan3209"
    255          sodipodi:role="line">14</tspan><tspan
    256          id="tspan3211"
    257          y="171.21727"
    258          x="213.37863"
    259          sodipodi:role="line">17</tspan></text>
    260     <text
    261        sodipodi:linespacing="125%"
    262        id="text3213"
    263        y="204.62473"
    264        x="33.378632"
    265        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    266        xml:space="preserve"><tspan
    267          y="204.62473"
    268          x="33.378632"
    269          id="tspan3215"
    270          sodipodi:role="line">11</tspan><tspan
    271          id="tspan3217"
    272          y="231.21727"
    273          x="33.378632"
    274          sodipodi:role="line">17</tspan></text>
    275     <text
    276        xml:space="preserve"
    277        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    278        x="93.378632"
    279        y="204.62473"
    280        id="text3219"
    281        sodipodi:linespacing="125%"><tspan
    282          sodipodi:role="line"
    283          id="tspan3221"
    284          x="93.378632"
    285          y="204.62473">7</tspan><tspan
    286          sodipodi:role="line"
    287          x="93.378632"
    288          y="231.21727"
    289          id="tspan3223">17</tspan></text>
    290     <text
    291        sodipodi:linespacing="125%"
    292        id="text3225"
    293        y="204.62473"
    294        x="153.37863"
    295        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    296        xml:space="preserve"><tspan
    297          y="204.62473"
    298          x="153.37863"
    299          id="tspan3227"
    300          sodipodi:role="line">10</tspan><tspan
    301          id="tspan3229"
    302          y="231.21727"
    303          x="153.37863"
    304          sodipodi:role="line">17</tspan></text>
    305     <text
    306        xml:space="preserve"
    307        style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
    308        x="213.37863"
    309        y="204.62473"
    310        id="text3231"
    311        sodipodi:linespacing="125%"><tspan
    312          sodipodi:role="line"
    313          id="tspan3233"
    314          x="213.37863"
    315          y="204.62473">6</tspan><tspan
    316          sodipodi:role="line"
    317          x="213.37863"
    318          y="231.21727"
    319          id="tspan3235">17</tspan></text>
    320     <path
    321        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    322        d="M 17.67857,30.362183 L 52.5,30.362183"
    323        id="path3237"
    324        sodipodi:nodetypes="cc" />
    325     <path
    326        sodipodi:nodetypes="cc"
    327        id="path3239"
    328        d="M 77.67857,30.362183 L 112.5,30.362183"
    329        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    330     <path
    331        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    332        d="M 137.67857,30.362183 L 172.5,30.362183"
    333        id="path3241"
    334        sodipodi:nodetypes="cc" />
    335     <path
    336        sodipodi:nodetypes="cc"
    337        id="path3243"
    338        d="M 197.67857,30.362183 L 232.5,30.362183"
    339        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    340     <path
    341        sodipodi:nodetypes="cc"
    342        id="path3245"
    343        d="M 17.67857,90.362183 L 52.5,90.362183"
    344        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    345     <path
    346        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    347        d="M 77.67857,90.362183 L 112.5,90.362183"
    348        id="path3247"
    349        sodipodi:nodetypes="cc" />
    350     <path
    351        sodipodi:nodetypes="cc"
    352        id="path3249"
    353        d="M 137.67857,90.362183 L 172.5,90.362183"
    354        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    355     <path
    356        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    357        d="M 197.67857,90.362183 L 232.5,90.362183"
    358        id="path3251"
    359        sodipodi:nodetypes="cc" />
    360     <path
    361        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    362        d="M 17.67857,150.36218 L 52.5,150.36218"
    363        id="path3253"
    364        sodipodi:nodetypes="cc" />
    365     <path
    366        sodipodi:nodetypes="cc"
    367        id="path3255"
    368        d="M 77.67857,150.36218 L 112.5,150.36218"
    369        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    370     <path
    371        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    372        d="M 137.67857,150.36218 L 172.5,150.36218"
    373        id="path3257"
    374        sodipodi:nodetypes="cc" />
    375     <path
    376        sodipodi:nodetypes="cc"
    377        id="path3259"
    378        d="M 197.67857,150.36218 L 232.5,150.36218"
    379        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    380     <path
    381        sodipodi:nodetypes="cc"
    382        id="path3261"
    383        d="M 17.67857,210.36218 L 52.5,210.36218"
    384        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    385     <path
    386        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    387        d="M 77.67857,210.36218 L 112.5,210.36218"
    388        id="path3263"
    389        sodipodi:nodetypes="cc" />
    390     <path
    391        sodipodi:nodetypes="cc"
    392        id="path3265"
    393        d="M 137.67857,210.36218 L 172.5,210.36218"
    394        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
    395     <path
    396        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
    397        d="M 197.67857,210.36218 L 232.5,210.36218"
    398        id="path3267"
    399        sodipodi:nodetypes="cc" />
     452         y="89.624733"
     453         x="213.37863"
     454         id="tspan2289"
     455         sodipodi:role="line">4</tspan><tspan
     456         id="tspan2291"
     457         y="116.21728"
     458         x="213.37863"
     459         sodipodi:role="line">21</tspan></text>
     460    <text
     461       sodipodi:linespacing="125%"
     462       id="text2293"
     463       y="89.624733"
     464       x="273.37863"
     465       style="font-size:21.27403641px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
     466       xml:space="preserve"><tspan
     467         y="89.624733"
     468         x="273.37863"
     469         id="tspan2295"
     470         sodipodi:role="line">8</tspan><tspan
     471         id="tspan2297"
     472         y="116.21728"
     473         x="273.37863"
     474         sodipodi:role="line">21</tspan></text>
     475    <path
     476       sodipodi:nodetypes="cc"
     477       id="path2299"
     478       d="M 197.67857,155.36218 L 232.5,155.36218"
     479       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     480    <path
     481       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     482       d="M 197.67857,35.36218 L 232.5,35.36218"
     483       id="path2301"
     484       sodipodi:nodetypes="cc" />
     485    <path
     486       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
     487       d="M 137.67857,95.36218 L 172.5,95.36218"
     488       id="path2303"
     489       sodipodi:nodetypes="cc" />
     490    <path
     491       sodipodi:nodetypes="cc"
     492       id="path2305"
     493       d="M 197.67857,95.36218 L 232.5,95.36218"
     494       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     495    <path
     496       sodipodi:nodetypes="cc"
     497       id="path2307"
     498       d="M 257.67857,95.36218 L 292.5,95.36218"
     499       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
     500    <path
     501       id="path2228"
     502       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
     503       d="M 485,486.36218 L 485,427.36218 L 425,427.36218 L 425,307.36218 L 365,307.36218 L 365,247.36218 L 425,247.36218 L 425,187.36218 L 544,187.36218"
     504       sodipodi:nodetypes="ccccccccc" />
    400505  </g>
    401506</svg>
  • www/study/part2.html

    r2113 r2115  
    117117
    118118<p> Different matrices can give very different results. This is a 4×4
    119 <b>Bayer ordered dither matrix</b>: </p>
     119<b>Bayer ordered dither matrix</b>, recursively created from the previous
     1202×2 dither matrix: </p>
    120121
    121122<p style="text-align: center;">
     
    238239</p>
    239240
    240 <h3> 2.5. Non-rectangular matrices </h3>
     241<h3> 2.5. Non-rectangular dither tiles </h3>
    241242
    242243<p> Another way to avoid disturbing pattern artifacts is to use non-rectangular
    243 matrices. </p>
    244 
    245 <p style="text-align: center;">
     244dither tiles. Here are two examples, one generating slanted, square patterns,
     245and the other generating hexagonal patterns. The artifacts caused by Bayer
     246dithering are far less visible: </p>
     247
     248<p style="text-align: center;">
     249  <img src="fig2-5-1.png" width="240" height="240"
     250       class="matrix" alt="cross dither tile" />
    246251  <img src="out2-5-1.png" width="256" height="256"
    247        class="inline" alt="cross matrix dithering" />
     252       class="inline" alt="cross dithering" />
    248253  <img src="grad2-5-1.png" width="32" height="256"
    249        class="inline" alt="cross matrix dithering gradient" />
    250 </p>
    251 
    252 <p style="text-align: center;">
     254       class="inline" alt="cross dithering gradient" />
     255</p>
     256
     257<p style="text-align: center;">
     258  <img src="fig2-5-2.png" width="270" height="180"
     259       class="matrix" alt="hex dither tile" />
    253260  <img src="out2-5-2.png" width="256" height="256"
    254        class="inline" alt="hex matrix dithering" />
     261       class="inline" alt="hex dithering" />
    255262  <img src="grad2-5-2.png" width="32" height="256"
    256        class="inline" alt="hex matrix dithering gradient" />
    257 </p>
    258 
    259 <p style="text-align: center;">
     263       class="inline" alt="hex dithering gradient" />
     264</p>
     265
     266<p> Just like Bayer matrices, these tiles can be used to recursively create
     267bigger patterns: </p>
     268
     269<p style="text-align: center;">
     270  <img src="fig2-5-3.png" width="270" height="240"
     271       class="matrix" alt="4-wise cross dither tile" />
    260272  <img src="out2-5-3.png" width="256" height="256"
    261        class="inline" alt="4-wise cross matrix dithering" />
     273       class="inline" alt="4-wise cross dithering" />
    262274  <img src="grad2-5-3.png" width="32" height="256"
    263        class="inline" alt="4-wise cross matrix dithering gradient" />
    264 </p>
    265 
    266 <p style="text-align: center;">
     275       class="inline" alt="4-wise cross dithering gradient" />
     276</p>
     277
     278<p style="text-align: center;">
     279  <img src="fig2-5-4.png" width="270" height="240"
     280       class="matrix" alt="3-wise hex dither tile" />
    267281  <img src="out2-5-4.png" width="256" height="256"
    268        class="inline" alt="3-wise hex matrix dithering" />
     282       class="inline" alt="3-wise hex dithering" />
    269283  <img src="grad2-5-4.png" width="32" height="256"
    270        class="inline" alt="3-wise hex matrix dithering gradient" />
     284       class="inline" alt="3-wise hex dithering gradient" />
    271285</p>
    272286
  • www/study/study.py

    r2114 r2115  
    477477    test244(gradient256bw, mlist).save("grad2-4-4.png")
    478478
    479 # Output 2.5.1: cross matrix
    480 # Output 2.5.2: hex matrix
    481 # Output 2.5.3: 4-wise cross matrix
    482 # Output 2.5.4: 3-wise hex matrix
    483 def test25x(src, mat, v1, v2):
     479# Output 2.5.1: cross pattern
     480# Output 2.5.2: hex pattern
     481# Output 2.5.3: 4-wise cross pattern
     482# Output 2.5.4: 3-wise hex pattern
     483def test25x(src, mat, vec):
    484484    # 1. count non-zero pixels
    485485    n = 0
     
    493493    while (x, y) not in l:
    494494        l.append((x, y))
    495         (x, y) = ((x + v1[0]) % n, (y + v1[1]) % n)
     495        (x, y) = ((x + vec[0][0]) % n, (y + vec[0][1]) % n)
    496496        if (x, y) in l:
    497             (x, y) = ((x + v2[0]) % n, (y + v2[1]) % n)
     497            (x, y) = ((x + vec[1][0]) % n, (y + vec[1][1]) % n)
    498498    # 3. create big matrix
    499499    m = [[0] * n for i in range(n)]
     
    504504                    continue
    505505                m[(v[1] + y + n) % n][(v[0] + x + n) % n] = mat[y][x]
     506    # 4. dither image
    506507    (w, h) = src.size()
    507508    dest = Image((w, h))
     
    518519           [4, 1, 2],
    519520           [0, 3, 0]]
    520     v1 = (2, -1)
    521     v2 = (1, 2)
    522     test25x(lenna256bw, mat, v1, v2).save("out2-5-1.png")
    523     test25x(gradient256bw, mat, v1, v2).save("grad2-5-1.png")
     521    vec = [(2, -1), (1, 2)]
     522    test25x(lenna256bw, mat, vec).save("out2-5-1.png")
     523    test25x(gradient256bw, mat, vec).save("grad2-5-1.png")
    524524    mat = [[0, 5, 3, 0],
    525525           [7, 1, 6, 4],
    526526           [0, 8, 2, 0]]
    527     v1 = (2, -2)
    528     v2 = (3, 1)
    529     test25x(lenna256bw, mat, v1, v2).save("out2-5-2.png")
    530     test25x(gradient256bw, mat, v1, v2).save("grad2-5-2.png")
     527    vec = [(2, -2), (3, 1)]
     528    test25x(lenna256bw, mat, vec).save("out2-5-2.png")
     529    test25x(gradient256bw, mat, vec).save("grad2-5-2.png")
    531530    mat = [[ 0,  0,  0, 19,  0,  0],
    532531           [ 0, 17, 15,  3,  7,  0],
     
    535534           [ 0, 16,  4,  8, 10,  0],
    536535           [ 0,  0, 12,  0,  0,  0]]
    537     v1 = (4, -2)
    538     v2 = (2, 4)
    539     test25x(lenna256bw, mat, v1, v2).save("out2-5-3.png")
    540     test25x(gradient256bw, mat, v1, v2).save("grad2-5-3.png")
     536    vec = [(4, -2), (2, 4)]
     537    test25x(lenna256bw, mat, vec).save("out2-5-3.png")
     538    test25x(gradient256bw, mat, vec).save("grad2-5-3.png")
    541539    mat = [[ 0, 13,  7,  0,  0,  0,  0],
    542540           [19,  1, 16, 10, 15,  9,  0],
     
    545543           [ 0, 20,  2, 17, 11,  0,  0],
    546544           [ 0,  0, 23,  5,  0,  0,  0]]
    547     v1 = (5, -1)
    548     v2 = (-1, 5)
    549     test25x(lenna256bw, mat, v1, v2).save("out2-5-4.png")
    550     test25x(gradient256bw, mat, v1, v2).save("grad2-5-4.png")
     545    vec = [(5, -1), (-1, 5)]
     546    test25x(lenna256bw, mat, vec).save("out2-5-4.png")
     547    test25x(gradient256bw, mat, vec).save("grad2-5-4.png")
    551548
    552549##############################################################################
Note: See TracChangeset for help on using the changeset viewer.