Today I fixed the arc constraint solve problem: as the solver only modifies the minimum number of values needed to find a solution, only one of the arc points was modified and updated, leaving the end point of the arc unchanged. I've added a fix that projects the end point on the new arc, obtaining the correct end point. The changes are here.
I started investigating the 'soft constraints' that would allow the shapes keep their main attributes (line length, circle and arc radius, arc start and end angle) after the solver is called. There are some constraints for line length and circle radius, but they're using the old structure and can't be used by the current solver, so the next step is porting these to the new structure.
I also recorded the constraints videos for the last two shapes:
The current constraints for circles are:
- concentric circles
- circles with equal radius
- point on circle (shown in the point video)
- line tangent to circle
The current constraints for arcs are:
- concentric arcs
- arcswith equal radius
- point on arc (shown in the point video)
- line tangent to arc
The current constraints for arcs and circles are:
- concentric arc and circle
- arc and circle with equal radius