В настоящее время я работаю над инструментом рисования сплайна для нашего программного обеспечения, и нам нужна возможность добавлять новую контрольную точку к сплайну. Мы используем GDI + GraphicsPath для рисования сплайнов из набора контрольных точек. Определить, находится ли точка на пути сплайна, достаточно просто, но выяснить, в каком порядке добавить новую точку, чтобы существующий сплайн проходил через нее, - другое дело.
Мы не знаем, как рассчитывается сама кривая, и на данный момент имеем только существующий набор контрольных точек, новую точку и то, находится ли эта точка на пути кривой.
Единственное возможное решение, которое я мог придумать, - итеративно проверить, находится ли точка на кривой, составленной из первых 2, 3, 4… точек кривой, и по наблюдаемым результатам определить, между какими существующими точками она принадлежит. Это похоже на довольно грубый способ решения проблемы, поэтому мне было интересно, знает ли кто-нибудь о лучших подходах?
Спасибо