VLarin писал(а):
Красную можно включить в рассмотрение изменив условие - она должна быть правее левой границы или левее правой. А вот с черной - тут получается, она даже в такой постановке отбрасывается нами.
Эдак мы всю плоскость включим. На самом деле, пример моей (дефектной) логики - это дуга круга. Если у нас усть радиусы R1 и R2, то точки имеющие перпендикуляр расположены либо левее R1 и правее R2, либо правее R1 и левее R2. Логика, как и было сказано, ущербная, но мне кажется, все-таки можно добить.
Теоретически, если построить полином расстояния от точки до к.Б., продиффееренцировать его, то можно воспользоваться теоремами об отделении корней полинома. Вот только мороки тут.... И вычислений до хрена...
VLarin писал(а):
И для верхнего примера - там вообще ничего нельзя заранее сказать, может ли перпендикуляр быть на сплайне. Нужно вычислять.
Речь, видимо, идет объ этой кривой:
Цитата:
Ее следует резать на две к.Б. в точке перегиба (временно, в момент поиска перпендикуляров), и дальше каждая из половинок будет "хорошей".
VLarin писал(а):
И эти оценки касаются кривых Безье.
Сплайн суть совокупность кривых Безье со специальными правилами согласования. Посему вместо того, чтобы искать 5120 перпендикуляров к сплайну о 1024 сегментах, мы рассматривая кривые по отдельности (и выбрасывая бесперспективные) зело уменьшаем работу. Критериев выбраковки два - расстояние до
выпуклого охватывающего многоугольника (по сравнению с уже найденым) и перпендикуляры. После такой селекции 2-3 перспективных кривых остаться должно. Их уже можно анализировать детально...
[[ Сравните с поиском экстремума в одномерном случае. Сплайн распадается на набор кубических полиномов на отрезках. И каждый из них можно анализировать отдельно. Но если мы используем их представление через полиномы Берштейна
, и мы уже нашли
, то коли все
, мы можем
не анализировать... ]]