<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>> The problem isn't "find where on the curve the radius is less than the pen<BR>> radius" but "find a cubic spline that approximates the ideal envelope."</DIV>
<DIV> </DIV>
<DIV>Understood. But the approximation process should not be applied to the loop</DIV>
<DIV>areas, so we have to eliminate those first, right ? Once that is done, well-known</DIV>
<DIV>approximation techniques can be applied to what remains.</DIV>
<DIV><BR>> We're already in Heuristics Land as soon as we want the result to be a<BR>> cubic spline, because the ideal envelope is a higher-order curve.</DIV>
<DIV> </DIV>
<DIV>I would say we're in "approximation land". That's different from "heuristics</DIV>
<DIV>land" (in my view).</DIV>
<DIV> </DIV>
<DIV>Anyway, my main point was that numerical (rrot-finding) methods seem</DIV>
<DIV>like the right approach, to me, and, from personal experience, I know that</DIV>
<DIV>this is how these problems are solved in CAD systems.<BR><BR><BR>--- On <B>Mon, 10/22/12, mskala@ansuz.sooke.bc.ca <I><mskala@ansuz.sooke.bc.ca></I></B> wrote:<BR></DIV>
<BLOCKQUOTE style="BORDER-LEFT: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px"><BR>From: mskala@ansuz.sooke.bc.ca <mskala@ansuz.sooke.bc.ca><BR>Subject: Re: [metapost] Pen stroking and tight curves<BR>To: "xiolyxioly" <xiolyxioly@yahoo.com><BR>Cc: metapost@tug.org<BR>Date: Monday, October 22, 2012, 10:39 AM<BR><BR>
<DIV class=plainMail>On Sun, 21 Oct 2012, xiolyxioly wrote:<BR>> It seems to me that the methods being proposed are all somewhat heuiristic.<BR>> I don't think it's very difficult to do this "rigorously".<BR><BR>> The curvature of a Bezier cubic curve R(t) is a continuous function. We are<BR>> looking for "tight" regions where it's value is less than the pen radius<BR><BR>The problem isn't "find where on the curve the radius is less than the pen<BR>radius" but "find a cubic spline that approximates the ideal envelope."<BR>We're already in Heuristics Land as soon as we want the result to be a<BR>cubic spline, because the ideal envelope is a higher-order curve.<BR><BR>> I have similar thoughts on the problem of detecting inflexions. Again, it's<BR>> just a problem of finding the zeros of a real-valued function. I think there<BR>> can be no more than 2 inflexions on a Bezier cubic. Again, CAD systems<BR>> frequently do this
 computation, so code exists.<BR><BR>Indeed, Metapost code for it is in this commit:<BR>   <A href="http://sourceforge.jp/projects/tsukurimashou/svn/view/trunk/mp/intro.mp?root=tsukurimashou&r1=332&r2=333" target=_blank>http://sourceforge.jp/projects/tsukurimashou/svn/view/trunk/mp/intro.mp?root=tsukurimashou&r1=332&r2=333</A><BR><BR>A few tricky numerical cases have been tweaked since that version, but<BR>the linked page contains an interface through which the current version is<BR>available, and looking at the file as a whole would make it harder to see<BR>the relevant bits.<BR>-- <BR>Matthew Skala<BR><A href="http://us.mc1134.mail.yahoo.com/mc/compose?to=mskala@ansuz.sooke.bc.ca" ymailto="mailto:mskala@ansuz.sooke.bc.ca">mskala@ansuz.sooke.bc.ca</A>                 People before principles.<BR><A href="http://ansuz.sooke.bc.ca/"
 target=_blank>http://ansuz.sooke.bc.ca/</A><BR></DIV></BLOCKQUOTE></td></tr></table>