From: Matt J on
Perhaps the following article can help. I haven't read it, though


R. Kimmel and N. Kiryati. Finding shortest paths on surfaces by fast global approximation and precise local refinement. International Journal of Pattern Recognition and Artificial Intelligence, 10(6):643-656, 1996.
From: Rune Allnor on
On 17 Mai, 22:45, "Meagan " <meagan.mussel...(a)l-3com.com> wrote:
> hi all,
>
> I am working on a project and I have hit a wall and could really use some help.
>
> I am trying to find the distance between two points on a shape that is defined by vertices and faces. I can't just use the distance formula because I need to make sure that the entire distance between the two points is in contact with the shape surface. I have no idea how to start doing this or if this task is even possible so any input would be greatly appreciated.

The *idea* is simple, assuming you already have a surface
consisting of edges and vertices, like in a triangulation:
Track the points where you cross edges, and compute the
distance between consecutive edge crossings (possibly also
accounting for path waypoints). The total distance along the
path will be the cumulant sum of all such edge-to-edge
distances.

*Implementing* this simple idea is not at all simple. If you
want this to be fast, you will need to have access to certain
awkward data structures internal to the triangulated surface.

A naive method might be to check the path for intersections
with all the edges in the triangulation. This method will
find all the edge crossings, and will also allow you to sort
the edge crossing points to the order in which they are traversed
along the path. However, this method will be very slow; maybe
intolerably slow.

Rune
From: Matt J on
Rune Allnor <allnor(a)tele.ntnu.no> wrote in message <99c70f0a-1227-4506-b3a1-ab85568616c8(a)l6g2000vbo.googlegroups.com>...

> The *idea* is simple, assuming you already have a surface
> consisting of edges and vertices, like in a triangulation:
> Track the points where you cross edges, and compute the
> distance between consecutive edge crossings (possibly also
> accounting for path waypoints). The total distance along the
> path will be the cumulant sum of all such edge-to-edge
> distances.
========

The difficulty though, Rune, is that you don't have the shortest-distance path a priori. It's finding the shortest path, not computing its length, which is the challenge.
From: Rune Allnor on
On 18 Mai, 19:51, "Matt J " <mattjacREM...(a)THISieee.spam> wrote:
> Rune Allnor <all...(a)tele.ntnu.no> wrote in message <99c70f0a-1227-4506-b3a1-ab8556861...(a)l6g2000vbo.googlegroups.com>...
> > The *idea* is simple, assuming you already have a surface
> > consisting of edges and vertices, like in a triangulation:
> > Track the points where you cross edges, and compute the
> > distance between consecutive edge crossings (possibly also
> > accounting for path waypoints). The total distance along the
> > path will be the cumulant sum of all such edge-to-edge
> > distances.
>
> ========
>
> The difficulty though, Rune, is that you don't have the shortest-distance path a priori. It's finding the shortest path, not computing its length, which is the challenge.

I can't see how being able to compute the distance along
a genrral path isn't helpful:

1) Select an initial path
2) Compute the distance along this path
3) Modify the path in a way that likely
might shorten the distance
4) Repeat from 2

until no significant improvements in path distance can be made.
Of course, one can only hope to find a local solution to this
problem.

Rune
From: ImageAnalyst on
On May 18, 1:51 pm, "Matt J " <mattjacREM...(a)THISieee.spam> wrote:
> The difficulty though, Rune, is that you don't have the shortest-distance path a priori. It's finding the shortest path, not computing its length, which is the challenge.
----------------------------------------------------------------------------------------------------------
Isn't that were dynamic programming, Djikstra, A*, or your other
favorite search-path/optimization routine comes in? They will
efficiently find the shortest path (given all the possible points
along the way) without searching through an infinite number of
possibilities. For example, if you're tracking a bright ridge (e.g. a
blood vessel in an angiogram) and you know two image columns that it
passes through, you can use dynamic programming to find the path
between the left column and the right column that has the highest
average brightness - without actually searching through all the
bazillion possible paths. (I know because I've done it, although it
was 24 years ago) In Meagan's case she could use the cumulative
length of the path for the criteria rather than the average path
brightness as in my example. However with my limited spare time, I'm
not about to tackle her airplane data, though I think it could be
done.