11 of 17 added 1174 characters in body

# Curve fit based on minimal data

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

I have 6 curve types

that follow these rules:

• Type A: If point 1 is positive and point 2 is negative, the curve will not pass through the origin.
• Type B: If point 1 is negative and point 2 is positive, the curve will pass through the origin twice.
• 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çons:

What is known:

• The coordinates of points 1 and 2.
• The gradient of tangents at points 1 and 2.
• The approximate curve type (limaçon).

What is not known:

• The arc length.
• 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?

# Update

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

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}}}


# Notes

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:

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.

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

 asked Sep 29 '14 at 12:24 martin 7,36322 gold badges1515 silver badges5252 bronze badges