para empezar necesitas trigonometria basica, triangulos, angulos, seno, coseno, hipotenusa, medida del angulo en radianes y grados
una vez tengas eso tienes que plantearte que aspecto va a tener tu curva, pero oh, da igual, primero tienes que dibujarla y luego le das el aspecto
no te compliques haciendo un algoritmo que dibuje la curba aqui o alla, de esta manera o de aquella, mas o menos deforme
simplemente dibuja una cubra perfecta en los ejes X-Z, en el plano horizontal
te aconsejo LineStripArray, tu ya decides cuanta calidad tendra (puntos de flexion entre las lineas), o puedes hacer un algoritmo para calcularlo segun la distancia hipotenusa (recomendado)
una vez dibujes la curva, añade tus Geometry al Shape, y el Shape al TransformGroup, Create tu propia clase con ese TransformGroup para usar esa curva como paleta cada vez que quieras
ya tienes la curva perfecta para cada vez que quieras usarla, ahora solo queda si quieres hacer un ovalo, o cualquier otra deformidad
tenemos como resultado tu clase Curva extends TransformGroup, que inicialmente crea una curva en el plano XZ (horizontal) y solo tienes que usar los Transform3D para darle deformidad a tu antojo