DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gimpprint.info.gz) Perfect weaving

Info Catalog (gimpprint.info.gz) Simple weaving algorithms (gimpprint.info.gz) Weaving algorithms (gimpprint.info.gz) Weaving collisions
 
 Perfect weaving
 ---------------
 
    This simple weave pattern prints every row, but will give conspicuous
 banding patterns for the reasons discussed above.
 
    Let's start improving this for our simple case.  We can reduce
 banding by making sure that any given jet never prints a row too close
 to another row printed by the same jet.  This means we want to space the
 rows printed by a given jet evenly down the page.  In turn, this
 implies we want to advance the paper by as nearly an equal amount after
 each pass as possible.
 
    Each pass block prints S*J lines in S passes.  The first line
 printed in each pass block is S*J rows lower on the page than the first
 line printed in the previous pass block.  Therefore, if we advance the
 paper by J rows between each pass, we can print the right number of
 passes in each block and advance the paper perfectly evenly.
 
    Here's what this "perfect" weave looks like:
 
                          start of full weave
                          |
      0 *---*---*---*---*---*---*
      1        *---*---*---*---*---*---*
      2               *---*---*---*---*---*---*
      3                      *---*---*---*---*---*---*
      4                             *---*---*---*---*---*---*
      5                                    *---*---*---*---*---*---*
      6                                           *---*---*---*---*---*---*
      7                                                  *---*---*---*---*---*---*
      8                                                         *---*---*---*---*---*-
      9                                                                *---*---*---*--
      10                                                                      *---*---
      11                                                                             *
 
    You'll notice that, for the first few rows, this weave is too sparse.
 It is not until the row marked "start of full weave" that every
 subsequent row is printed.  We can calculate this start position as
 follows:
 
      start = (S-1) * (J-1)
 
    For the moment, we will ignore this problem with the weave.  We'll
 consider later how to fill in the missing rows.
 
    Let's look at a few more examples of perfect weaves:
 
 S=2,  J=7,  start=(2-1)*(7-1)=6:
 
              starting row of full weave
              |
      0 *-*-*-*-*-*-*
      1        *-*-*-*-*-*-*
      2               *-*-*-*-*-*-*
      3                      *-*-*-*-*-*-*
      4                             *-*-*-*-*-*-*
      5                                    *-*-*-*-*-*-*
      6                                           *-*-*-*-*-*-*
      7                                                  *-*-*-*-*-*-*
 
 S=7,  J=2,  start=6:
 
              start
              |
      0 *------*
      1   *------*
      2     *------*
      3       *------*
      4         *------*
      5           *------*
      6             *------*
      7               *------*
      8                 *------*
      9                   *------*
 
 S=4,  J=13,  start=36:
 
                                            start
                                            |
      0 *---*---*---*---*---*---*---*---*---*---*---*---*
      1              *---*---*---*---*---*---*---*---*---*---*---*---*
      2                           *---*---*---*---*---*---*---*---*---*---*---*---*
      3                                        *---*---*---*---*---*---*---*---*---*--
      4                                                     *---*---*---*---*---*---*-
      5                                                                  *---*---*---*
 
 S=13,  J=4,  start=36:
 
                                            start
                                            |
      0 *------------*------------*------------*
      1     *------------*------------*------------*
      2         *------------*------------*------------*
      3             *------------*------------*------------*
      4                 *------------*------------*------------*
      5                     *------------*------------*------------*
      6                         *------------*------------*------------*
      7                             *------------*------------*------------*
      8                                 *------------*------------*------------*
      9                                     *------------*------------*------------*
      10                                        *------------*------------*-----------
      11                                            *------------*------------*-------
      12                                                *------------*------------*---
      13                                                    *------------*------------
      14                                                        *------------*--------
      15                                                            *------------*----
      16                                                                *------------*
      17                                                                    *---------
      18                                                                        *-----
      19                                                                            *-
 
 S=8,  J=5,  start=28:
 
                                    start
                                    |
      0 *-------*-------*-------*-------*
      1      *-------*-------*-------*-------*
      2           *-------*-------*-------*-------*
      3                *-------*-------*-------*-------*
      4                     *-------*-------*-------*-------*
      5                          *-------*-------*-------*-------*
      6                               *-------*-------*-------*-------*
      7                                    *-------*-------*-------*-------*
      8                                         *-------*-------*-------*-------*
      9                                              *-------*-------*-------*-------*
      10                                                  *-------*-------*-------*---
      11                                                       *-------*-------*------
      12                                                            *-------*-------*-
      13                                                                 *-------*----
      14                                                                      *-------
      15                                                                           *--
 
 S=9,  J=5,  start=32:
 
                                        start
                                        |
      0 *--------*--------*--------*--------*
      1      *--------*--------*--------*--------*
      2           *--------*--------*--------*--------*
      3                *--------*--------*--------*--------*
      4                     *--------*--------*--------*--------*
      5                          *--------*--------*--------*--------*
      6                               *--------*--------*--------*--------*
      7                                    *--------*--------*--------*--------*
      8                                         *--------*--------*--------*--------*
      9                                              *--------*--------*--------*-----
      10                                                  *--------*--------*--------*
      11                                                       *--------*--------*----
      12                                                            *--------*--------
      13                                                                 *--------*---
      14                                                                      *-------
      15                                                                           *--
 
 S=6,  J=7,  start=30:
 
                                      start
                                      |
      0 *-----*-----*-----*-----*-----*-----*
      1        *-----*-----*-----*-----*-----*-----*
      2               *-----*-----*-----*-----*-----*-----*
      3                      *-----*-----*-----*-----*-----*-----*
      4                             *-----*-----*-----*-----*-----*-----*
      5                                    *-----*-----*-----*-----*-----*-----*
      6                                           *-----*-----*-----*-----*-----*-----
      7                                                  *-----*-----*-----*-----*----
      8                                                         *-----*-----*-----*---
      9                                                                *-----*-----*--
      10                                                                      *-----*-
      11                                                                             *
 
Info Catalog (gimpprint.info.gz) Simple weaving algorithms (gimpprint.info.gz) Weaving algorithms (gimpprint.info.gz) Weaving collisions
automatically generated byinfo2html