Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^4: Better maps with Math::Geometry::Voronoi, and a Challenge for Math Monks

by roboticus (Chancellor)
on Jul 03, 2008 at 23:01 UTC ( [id://695491]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Better maps with Math::Geometry::Voronoi, and a Challenge for Math Monks
in thread Better maps with Math::Geometry::Voronoi, and a Challenge for Math Monks

BrowserUk:

Sorry, I should've been more clear. I wasn't referring to the vertices, but the input points to the algorithm. So the diagonal line going through two of the points are the bisector for the other two corners. I put this case into the algorithm (just a few minutes ago):

my @points = ( [0,0], [2, 0], [0, 2], [2, 2] );

Yields the following lines:

[ [1, 0, 1, 0, 1], # X=1 for points 0, 1 [0, 1, 1, 0, 2], # Y=1 for points 0, 2 [0, 1, 1, 1, 3], # Y=1 for points 1, 3 [1, 1, 2, 0, 3], # X+Y=2 for points 0, 3 [1, 0, 1, 2, 3], # X=1 for points 2, 3 ]

That fourth entry is the diagonal I was talking about. It's clearly the bisector for points 0 and 3, but since it intersects at the same point as the first two, it's irrelevant. Looking at the edge list:

[ [3, 1, 0], # Edge from (1,1) to (1,1) [1, -1, 1], [4, -1, 1], [2, 0, -1], [0, 0, -1] ]

Other than the first edge, the rest are as you'd expect to see. I'm suspecting some odd comparison (or roundoff) in the C code to be generating that 0-length segment.

Just for completeness, here's the list of vertices:

[ [1, 1], [1, 1] ]

Looking at the results, I'm struck by a couple items:

  • Some lines are identical, except for the point pairs they were generated from.
  • Only one of the diagonal lines is generated, which is why I suspect roundoff or an odd conditional.
  • It might be worthwhile to add disallow duplicate vertices and/or edges of zero length.

...roboticus

Update: I just tried the cross that you suggested, and the data showed *absolutely no* anomalies....odd!

Update: Fixed HTML (missed closer for UL).

Replies are listed 'Best First'.
Re^5: Better maps with Math::Geometry::Voronoi, and a Challenge for Math Monks
by BrowserUk (Patriarch) on Jul 03, 2008 at 23:52 UTC
    I put this case into the algorithm...

    Hm. What do you mean by "put it into the algorithm"?

    Four points (o) in a square, gives six bisectors (.), but just four normals(n). (Four pairs of coincident normals.) But they produce just a single vertex (X) ('scuse the crudity):

    +-----------------------------------------------------+ | n n n | | n n n | | n n n | | n n n | | o.......................on | | . .n n .n. | | . .n n .n . | | . .n n .n . | | . .n n .n . | | . . n .n . | | nnnnnnnnnnn.nnnnnnnnnn Xnnnnnnnnnnn.nnnnnnnnnnnnnnnn| | . . n .n . | | . .n n .n . | | . .n n .n . | | . .n n .n . | | . .n n .n. | | o.......................o | | n n n | | n n n | | n n n | +-----------------------------------------------------+

    And you can't form any polygons from a single vertex!

    Unless you are using the boundaries of the coordinate space to form the missing edges of polygons?

    But if that was the case in Sam's problem, his boundary polygons would just always be a rectangle coincident with the boundaries of the coordinate space.


    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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://695491]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2024-03-19 02:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found