Offset

 From:  Michael Gibson
5680.2 In reply to 5680.1 
Hi Pilou, at a tangent discontinuity (the sharp corner point), what happens is the offset generated at each segment does not naturally match up, the natural offset of such a thing is this discontinuous set of segments like so:



These offset segments are a constant distance away from the generator curves, like this:




However, most people are not happy when their curves become separated like this, much of the time they would like for the offset to be one continuous curve.

So then the question becomes what to do in this area here:



In MoI there is a "Corners" option to control the behavior for what to do to fill in this area between the natural offset pieces, you can set it to either Corners = Sharp or Corners = Round.




If you are primarily concerned with getting "the most accurate offset", then I guess you would want to switch this option to Corners = Round - that will make that area filled in with an arc segment:



That is the only kind of fill in shape that will result in equal distances at the closest point between the original curve and the generated curve. That's usually the strict definition of what it means to be an offset - "equal distance at every closest point". Here every line that you see between each curve is of the same length (within tolerance):




If you put anything other than an arc segment in the fill in area, it will not be a true offset anymore. However, often times people are more interested in maintaining the same general corner shape rather than having a strict "equal distance at every closest point" type result. That's what the other Corner = Sharp option is for, it works by extending the 2 shapes until they intersect one another. There are then different ways that it is possible to do the extension process. The way MoI will try to do it is it tries to extend the curve with curvature continuity (meaning for example an arc will extend as another arc piece rather than extending as a line) and if those G2 extensions meet up it uses that. If those do not meet up (it's possible for curvature continuous extensions to curl around and miss each other) it will try to do a line segment extension instead, that means though that the extension area is somewhat different in shape since a line is totally flat and devoid of curvature so the shape then has a curvature discontinuity with a little line piece in one area of it.

Anyway once you are talking about a sharp extension you have basically left the definition of the true offset behind at that point no matter which way you do it - the only way to maintain "equal distance at every closest point" is with the Corners = Round option with an arc being placed in the gap instead of any sharp piece.

So the "most accurate" offset I guess would either be something made up of 2 totally separate pieces with blank space between them, or with an arc between them.

I have not yet looked at the thread that you are referencing yet, but often times when people argue about what the "most accurate" result it, there may have been a failure to actually define what the precise desired result actually is, like what it precisely means to be an offset. Also it's not unusual for someone to not actually want to get the "most accurate" result, they may be looking for something else like "most resembles original curve structure in corner points". If people have different actual goals in mind then it will be easy for them to disagree about how good a particular result is.

- Michael