[NTG-context] Metapost: union test of two paths
Alan BRASLAU
alan.braslau at cea.fr
Sat Jul 3 12:33:31 CEST 2010
On Saturday 03 July 2010 10:03:32 Taco Hoekwater wrote:
> On 07/02/2010 07:01 PM, Marco wrote:
> > Hi,
> >
> > two arbitrary paths are given. A small path and a larger path, both
> > cycled. How to find out if the smaller path lies completely »inside« the
> > larger path?
>
> That is hard. The main problem is the word 'arbitrary'. An arbitrary
> path does not even have to enclose anything:
>
> path p; p = origin--(100,100)--cycle;
>
> > If this is too complicated, it might help if I can find out if a given
> > point lies inside a given cycled path.
>
> Even this is fairly tricky. Some important questions are:
>
> * do your arbitrary paths selfintersect?
> * are your arbitrary paths convex or concave?
> * is a point *on* the path in or out?
> * do you want to use nonzero or even-odd filling rules?
>
> Best wishes,
> Taco
OK, this is off-topic (and not very useful as an answer)...
but is something to think about:
``posito tendendum esse a puncto ad punctum, licet nihil ultra iter
determinat, via eligetur maxime facilis seu brevissima;''
Leibniz: De rerum originatione radicali, 1697
``suppose that we are to go from one point to another, without being directed
to follow a particular path, the path chosen will be the easiest or the
shortest one;''
So, in a Cartesian space, if the energy cost of a kink is low, than
> path p; p := origin--(100,100)--cycle;
should be a straight line running back on itself.
Indeed, this is what metapost produces.
Now try p := origin..(100,100)..cycle;
Alan
More information about the ntg-context
mailing list