Я бы определенно выбрал Безье для этой цели, и, в частности, я реализую кусочно-кубический Безье - его действительно легко реализовать и понять, и он широко используется в 3D Studio max и Photoshop.
Вот хороший источник для этого:
http://local.wasp.uwa.edu.au/~pbourke/surfaces_curves/bezier/cubicbezier.html
Предполагая, что у вас есть порядок между точками, чтобы установить четыре контрольные точки, вы должны сделать следующее:
Я определяю касательную между точкой P [i] и точкой P [i + 1]
- T1 = (P [i + 1] - P [i-1])
- T2 = (P [i + 2] - P [i])
И чтобы создать кусочно между двумя точками, я делаю следующее:
- Контрольная точка Q1: P [i]
- Контрольная точка Q2: точка, лежащая вдоль касательной от Q1 => Q1 + 0.3T1
- Контрольная точка Q3: точка, лежащая вдоль касательной к Q4 => Q4 - 0.3T2
- Контрольная точка Q4: P [i + 1]
Причина, по которой я выбрал 0.3T, является произвольной, чтобы придать ей достаточную «силу», но не слишком много, вы можете использовать более сложные методы, которые также позаботятся об ускорении (непрерывность C2).
Наслаждайтесь