simon-git: tilings (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Fri Jun 14 12:44:54 BST 2024


TL;DR:
  5700b8c svg.py: missing bounds update in add_path().
  100282f Add a coordinate-finder module.
  49feccd Allow clients of draw.sage to request progress reports.
  78a5f54 Fix factor of 2 error in Polygon.area().

Repository:     https://git.tartarus.org/simon/tilings.git
On the web:     https://git.tartarus.org/?p=simon/tilings.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2024-06-14 12:44:54

commit 5700b8cb85c84b44793933e46820681eeba25b87
web diff https://git.tartarus.org/?p=simon/tilings.git;a=commitdiff;h=5700b8cb85c84b44793933e46820681eeba25b87;hp=7998ae3ea65610cc054386f7578cc7da9ee5c351
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Jun 13 18:19:26 2024 +0100

    svg.py: missing bounds update in add_path().

 svg.py | 2 ++
 1 file changed, 2 insertions(+)

commit 100282f03b0f334b170cffdaf47e2fb7ea9aca7c
web diff https://git.tartarus.org/?p=simon/tilings.git;a=commitdiff;h=100282f03b0f334b170cffdaf47e2fb7ea9aca7c;hp=5700b8cb85c84b44793933e46820681eeba25b87
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Jun 14 12:39:35 2024 +0100

    Add a coordinate-finder module.
    
    I mentioned this idea in one of the later sections of 'Beyond the
    Wall', but at the time, hadn't tried it. Now I have, and got it
    working. This allows you to take a patch of tiling without any labels
    or metadata relating it to a substitution system, and find a set of
    coordinates that describe it in relation to a system of your choice.
    
    Turns out it was much easier to do this with NFAs rather than (as I
    said in the article) DFAs.
    
    The current output methods are to dump the entire NFA, or to print out
    any low-order coordinates that are certain. I'd _like_ to also be able
    to find the 'simplest' eventually-periodic sequence consistent with
    the NFA (where 'simplest' has something to do with the initial segment
    and the repeating segment being short, but I haven't quite worked out
    which should take priority). But that's harder, because in practice I
    found that the NFA will often be 'unrolled' a bit, e.g. it might be
    consistent with an infinite sequence ABCDCDCDCD... but if you follow
    states through the NFA then you won't enter an actual cycle until
    several CDs after the repeating section started. So the 'find the
    simplest e.p. sequence' operation would have to roll the unrolled
    copies back up somehow in order to spot that AB(CD)* is a better
    answer than ABCDCDCDCD(something else)*. And I'm not sure what a good
    algorithm for that is.

 finder.py   |   4 ++
 finder.sage | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 218 insertions(+)

commit 49feccd4ae6c81f0a3f06d0d267133ef64ac52bc
web diff https://git.tartarus.org/?p=simon/tilings.git;a=commitdiff;h=49feccd4ae6c81f0a3f06d0d267133ef64ac52bc;hp=100282f03b0f334b170cffdaf47e2fb7ea9aca7c
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Jun 14 12:37:32 2024 +0100

    Allow clients of draw.sage to request progress reports.
    
    I did a huge plot this morning and wanted to know how nearly finished
    it was. toplevel.sage doesn't use this, but client code using this
    stuff as a library can get a callback for each tile placed.

 draw.sage | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 78a5f54d9a820114d5f98b0d42b51527689fdde8
web diff https://git.tartarus.org/?p=simon/tilings.git;a=commitdiff;h=78a5f54d9a820114d5f98b0d42b51527689fdde8;hp=49feccd4ae6c81f0a3f06d0d267133ef64ac52bc
Author: Simon Tatham <anakin at pobox.com>
Date:   Fri Jun 14 12:43:12 2024 +0100

    Fix factor of 2 error in Polygon.area().
    
    In my large plot this morning, I used that to estimate how many output
    tiles I expected, by dividing the rectangle's area by the area of a
    Spectre. Unfortunately the area was wrong!

 util.sage | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



More information about the tartarus-commits mailing list