GeneralPath.curveTo()
использует кривые Безье , для которых контрольные точки НЕ должны быть частью самой кривой, но здесь для определения перегиба кривой в конечных точках (как видно в кривой, нарисованной на бывшей ссылке в Википедии).
Кажется, вы ищете сплайн-кривую , которая пересекает все указанные точки. К сожалению, этот тип кривой не поддерживается Java2D. Но вы, вероятно, могли бы реализовать это, если у вас есть хорошие знания геометрии (и с помощью Википедии), и вы можете потратить некоторое время.
Другой способ, может быть (хотя я не пробовал), для данной пары точек Pi & Pi + 1 соединиться с кривой, чтобы определить контрольные точки на основе предыдущих и следующих точек Pi-1 и Pi +2; возможно, стоит провести расследование.