You should use Bezier Curves.
If you to have a y-value for each x-value on your curve, then you could take a look at the apache commons implementation. What you get here is a PolynomialSplineFunction, which you can use to calculate any point on your curve.
SplineInterpolator interpolator = new SplineInterpolator();
PolynomialSplineFunction f
= interpolator.interpolate(xValues, yValues); //red and blue dots
f.value(4.0); //gets y-value for x = 4.0