Mostly intuition. I applied constraints which are geometric properties of a simple arc, just to see what the result is. No matter how I moved or oriented it, visually, it appears to match a simple arc exactly. I suspect this is a known property of splines and can be proved mathematically, but I can't prove it.microelly2 wrote: ↑Tue Apr 10, 2018 7:24 am it looks interesting. Do you have some theory behind or is it an experimentical result?
Anyway, breaking it down with a slightly enlarged image:
In terms of a simple arc, two key points are already established - the end points (PC / PT).
I need two other points to complete it, namely the center point and the point of intersection (PI).
Center point:
Consists of two line segments which are of equal length and orthogonal to the curve at it's end points.
I achieved this by applying an equal length constraint (#19) and two orthogonal constraints (#20 & #21). Because b-splines don't support ortho contraints, I had to constrain the radius lines to the adjacent tangent lines
PI:
Created by adding four line segments tangent to the curve, connecting the end pints to the spline control points, and then projecting to the PI itself.
I discovered by inspection that the spline control points appear to always fall on a line which projects tangentially from the end points. I added two line segments, each connecting an end point to it's nearby control point, and applied an equal-length constraint between them (#23). These constraints ensure the control points form a line segment that is always tangent to the midpoint of the curve. The last two line segments are simply constrained to the previous line segments tangentially (#14, #15) and meet at the point of intersection (PI).
Note that the last two line segments and three corresponding constraints (#14, #15, and the coincident constraint at the PI) are not really necessary. The same degree of control could be gained by connecting the control points with a line segment, thus reducing the constraint count by 3. However, the PI is a critical part of traditional curve design, so it's representation is essential.
Also, the equal length constraint #1 is unnecessary. I noticed it only as I was writing this up. I deleted it with no ill effect, reducing the total constraint count to 16. I'd like to think there's a way to optimize it further (apart from deleting the last two line segments that form the PI), but I'm not that good at geometry.