I think I have found a calculation bug in the the Polyline Segmentor. The last segment seems to come out the wrong length for no apparent reason.
Fredo6's BezierSpline has been used by so many people for so long that I am hesitant to call what I am seeing a bug. But I suspect that it has been there all along. In exploring the manual, tutorials, etc. I have found phrases that take it for granted that this happens when I cannot see the reason for it.
I see descriptions of using the Polyline Divider that say the last segment will not be the same length as the others. That makes sense. The overall length is arbitrary and the segment length is fixed; of course there will be remainder.
But I see phrases that apply that same caveat to the Polyline Segmentor and that does not make sense. You are dividing a curve into a whole number of segments. There should be no remainder. If there is some calculation round off, it should be minuscule, down in the 9th or 10th decimal place. But what I am seeing is an error of nearly FIVE PERCENT.
I draw a Classic Bezier curve and I use Convert to Polyline Segmentor and I specify 32 segments. I would think those would be all the same length, or nearly, and so they are, except the imprecision of the last segment has me baffled about why it would be so different. 31 of the segments are 2.099221" in length and the final segment is 2.005871". That is a 4.65% difference.
Certainly SU Ruby is capable of more precise calculations than seem to be in use here.
That difference is barely noticeable in the curve, but these points will be the reference points for attaching more complicated structures that will come close to each other and I am afraid that when the final construction is done, there will be an aesthetic glitch, at the same level as bad kerning between typeset characters in a title. What is a 5% difference initially could become a much larger difference down the road. And 5% is itself a big enough a difference to see without measuring.
My design calls for repeating the same curve, attaching it to the previous copy, then attaching repeating elements at each curve point. I don't want the spacing of the larger elements to be visibly too tight at each and every inflection point. It will just look wrong.
I tried scaling everything up 10x before I used the Polyline Segmentor and the new numbers were 20.992211 and 20.058708, merely another decimal point of precision in my display. It's not the "too tiny" SU bug or the numbers would have changed a bit. I'm sure the underlying numbers are consistently inconsistent.
So is this a bug in Polyline Segmentor, or is this a necessity? And either way, is there a workaround? Any suggestions welcome.
Thanks,
August
P.S. I am using the very latest BezierSpline, downloaded two days ago, running on Windows 7, SU 8.0.14346, also the latest version.