nearest point on box, - Graphics

This is a discussion on nearest point on box, - Graphics ; I have found an algorithm for determining the nearest point in an AABB to a given point. The problem is the algorithm treats the AABB as a solid, so if a point is inside the box, the nearest point is ...

+ Reply to Thread
Results 1 to 3 of 3

nearest point on box,

  1. Default nearest point on box,

    I have found an algorithm for determining the nearest point in an AABB to a
    given point. The problem is the algorithm treats the AABB as a solid, so if
    a point is inside the box, the nearest point is just that point.

    I would like the nearest point to the AABB boundary for both inside and
    outside points. Is there a way to do this other than 6 plane tests?



  2. Default Re: nearest point on box,

    > I would like the nearest point to the AABB boundary for both inside and
    > outside points. Is there a way to do this other than 6 plane tests?


    Why another way? Inside the box the smallest distance is measured
    orthogonally from the axis aligned bounding planes and as such are very
    fast to compute. Measure the distances, choose the plane to orthogonally
    project to, and do it (just an assignment to one coordinate). If some
    distances are equal, consistently prefer other planes over the other.

    Note the mapping is not continuous. Consider a unit cube [-2,2]^3 and
    your point in (1,1,1). A small change in each coordinate makes the
    nearest point jump to its corresponding plane on the positive axes.

    It is piecewise-continuous, however, continuous in each octant.

    --
    Kalle Rutanen
    http://kaba.hilvi.org

  3. Default Re: nearest point on box,

    vsgdp <hello@null.com> wrote:

    > I would like the nearest point to the AABB boundary for both inside and
    > outside points. Is there a way to do this other than 6 plane tests?


    That depends on how strictly you interpret the term "plane test". For
    an axis-aligned box, the plane tests simplify to single-coordinate
    tests.

    Next you can exploit the symmetry of an AABB to reduce the actual
    number of tests a bit. Move your coordinate's origin to the center of
    the box, and a pair of parallel planes can be tested in one shot. The
    comparisons to run will be between box dimensions divided by two, and
    the absolute difference between your point's coordinates and those of
    the center of the box, e.g.:

    abs(point.x - box.center.x) - box.size.x / 2

    If this is zero, the query point is already on one of the yz-planes of
    the box. If it's positive, the pointer is outside, so the closest
    point will be somewhere on it. If it's negative, delay the decision
    until you've seen all three comparisons.

    If none of the comparisons found the point outside, it's on the
    boundary or inside. If all returned negative values, it's inside. In
    this case, you have to compare the three negative numbers among
    themselves to find the smallest. That gives the direction to the
    nearest border point.

    --
    Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
    Even if all the snow were burnt, ashes would remain.

+ Reply to Thread

Similar Threads

  1. find nearest point
    By Application Development in forum Graphics
    Replies: 2
    Last Post: 11-20-2006, 03:07 AM
  2. nearest point to triangle,
    By Application Development in forum Graphics
    Replies: 1
    Last Post: 08-17-2006, 08:04 PM
  3. nearest neighbour of a point
    By Application Development in forum Theory
    Replies: 18
    Last Post: 05-03-2006, 11:11 AM
  4. Find the nearest point on GraphicsPath to a point ?
    By Application Development in forum DOTNET
    Replies: 4
    Last Post: 11-14-2005, 02:22 AM
  5. Nearest point on plane from point
    By Application Development in forum Java-Games
    Replies: 7
    Last Post: 07-25-2005, 12:41 AM