Yes. That sounds very similar to the conceptual algorithm we used. We started with the lowest point (GDDM uses "ass-back'ds coordinates" with (0,0) being bottom left) and then move around the thing in one direction until you get back to where you started from.

There are various optimisations that can be applied. For example, when you look for the second point, you can start sweeping (in either direction) from the horizontal in that direction because you know that there is no point lower. You can also apply the same optimisation to each of the left-most, right-most and top-most points, which allows you to start in four places and progress them all (moving in the same direction) until they connect up with one of the other three. You can also set out in both directions from each of the ordinal points and progress 8 moves concurrently, theough the terminating conditions are more complex.

Because you're starting (say) lowest and moving right (anticlockwise) you can constrain the points you look at, and also look at them in a defined order of probability--though I don't remember the details of the sorting criteria.

There was also this thing about using vector math which I recall not properly understanding the principles of even though I coded it and made it work. Needless to say, whatever understanding I did have has long since vacated my head.

The hardest part as I remember was preventing picking up spurious outlying points. The low-pass filter removed a lot of them but still occasional hotspots made it through. The mechanism for excluding those was a statistical thing that eliminated points that weren't part of a localised cluster. Darn it I wish I could remember more.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

In reply to Re^5: Better maps with Math::Geometry::Voronoi, and a Challenge for Math Monks (locally convex) by BrowserUk
in thread Better maps with Math::Geometry::Voronoi, and a Challenge for Math Monks by samtregar

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.