Inspired by the fantastic answers [here]( and [here](, I would like to ask a questions along similar lines.

I have 6 curve types

![enter image description here][1]

that follow these rules:
Type A: If point 1 is positive and point 2 is negative, the curve will not pass through the origin.</li><li>
Type B: If point 1 is negative and point 2 is positive, the curve will pass through the origin twice.</li><li>
Types C-F: If both points are positive or both points are negative, the curve will pass through the origin once.

The curves are basically partial (and skewed to some degree) [lima&ccedil;ons][2]:

![enter image description here][3]

What **is** known:

The coordinates of points 1 and 2.</li><li>
The gradient of tangents at points 1 and 2.</li><li>
The approximate curve type (lima&ccedil;on).

What **is not** known:

The arc length.</li><li>
The degree of skew.

Data for A-F:


    (* A *) {{0.000564367, 0.690525}, {-0.000689501, -0.984192}, 3.03065, -1.95699}
    (* B *) {{-0.000689501, -0.984192}, {0.000664785, 1.07289}, -1.95699, 1.82419}
    (* C *) {{0.000179304, 1.61576}, {0.0000936314, 0.852042}, 1.15014, 3.52804}
    (* D *) {{0.000116063, 0.431337}, {0.000443491, 1.70111}, 2.88997, 1.41834}
    (* E *) {{0.0000347276, 0.190688}, {0.000190634, 1.06651}, -3.77228, -2.08792}
    (* F *) {{-0.000432719, -1.90935}, {-0.000142565, -0.645011}, -1.36691, -1.927}

in format: `{{point 1}, {point 2}, gradient of tangent @ point 1, gradient of tangent at point 2}`

Is it possible to estimate a curve fit (and hence arc length & skew) with only the data given?


By adding a point onto the data (one roughly in the middle of the curve, between points 1 & 2), using ybeltukov's code from [here]( and adjusting the spline tolerance accordingly plots

![enter image description here][4]

for plot A. How would I adjust the red spline angles from points 1 & 2? I think this would make some headway into the problem.

Points on curves A-F (approximately half way around) are as follows:

    (* A *) {{2.84516, -0.00214226}}
    (* B *) {{0.925243, -0.000607748}}
    (* C *) {{2.74249, -0.000302848}}    
    (* D *) {{1.22693, -0.000324907}}
    (* E *) {{2.06, -0.0004197}}
    (* F *) {{1.30599, -0.000292263}}}


I apologise for the lack of clarity on this question. The limacon is only a guess really as to the approximate shape. I have approximated the curves with limacons, but only after much fiddling. Any other approach is welcomed.

I can try to rephrase a little as follows: The problem can also be thought of like this:

A circle is cut and the points are slid up and down a vertical axis as shown:

![enter image description here][10]

Imagine that the tangents and positions of the endpoints are controllable, but there are no other parameters other than the theoretical elasticity (and tendency to move back to a circular form) are known.

I posted this image on a [question]( on physics SE and [John Rennie]( gave a link to an interesting PDF [here]( on a similar subject.

It is essentially modelling a physical phenomenon. I have been playing around with Bezier curves, and have been getting fairly close, and even closer to the shapes doing it intuitively in Illustrator. I have even tried modelling it with wire - which gets the closest to the curves shown. Apart from this though, I am not having much success. As said previously, any approaches are welcome. I am looking for any insights into the problem.

Piecewise limacon example:

    Show[PolarPlot[{ θ^(1/12) 1.815 Re[E^( I ( θ + 0.075))] - 
    0.86}, {θ, 0.98, 2 Pi - 1.22}], 
    PolarPlot[{1.875 Re[E^( I ( θ - 0.015))] - 0.95}, {θ, -1.02, 1.05}]]

Apologies for using the same image on both sites, but I thought it might be allowed since I was asking something essentially different! ;)