Thread Previous • Date Previous • Date Next • Thread Next |
On 7/10/19 2:20 PM, Seth Hillbrand wrote:
I'm not sure I'm convinced that start-mid-end is any more or less immune to invalidity than start-center-end. Either can be specified in such a way as to represent an invalid geometry -- both are susceptible to one constraining point not being on the same arc (that is, the same distance from a specified or implied center point) as another. In either case, KiCad would need to be able to handle this situation, either by applying some rounding factor to bring errant points in line, or by emitting an error (or not) and discarding the invalid geometry.On 2019-07-10 14:08, Brian wrote:On 7/10/19 2:02 PM, Seth Hillbrand wrote:Start-center-end is under constrained and requires the additional knowledge of which direction the arc is going.On the contrary. Start-center-end is fully constrained. Arc direction is implied and unambiguous.Ah yes, you are right. We can assume a CW or CCW direction and swap start/end to match.The only remaining concern would be robustness. You can create a start-center-end combination that is invalid, so we'd need to define a governing parameter.The start-midpoint-end triplet can also be invalid but only if you assume the midpoint is exactly midway. The three-point conversion I listed previously allows the third point to exist anywhere on the arc and avoids this issue.
As an aside, geometrically speaking, there's no requirement that "mid" be actually equidistant from start and end; the only requirement is that it be between them and on the same arc (co-arcear? is there a word for the curved version of colinear?). Though not relevant for the concern of fully-constrained-ness, I think start-center-end actually leaves less room for invalidity, as it is easily validated by comparing the linear distance between both endpoints and the centerpoint (i.e. test for constant radius). With start-mid-end, the centerpoint must first be derived in order to find out if the geometry is valid (and if it isn't, deriving a centerpoint is ambiguous itself).
My $0.02, -Brian
Thread Previous • Date Previous • Date Next • Thread Next |