Proxy писал(а):Т.е. значения определены изначально только на "границах", а в промежутках между границ не оределены? И мы предполагаем, что рельеф между границ имеет линейный характер. Так?
Тогда почему бы не найти сначала наиблизжайшую точку с известным значением, затем найти на прямой Искомая точка - Найденная точка ещё точку с известным значением, но лежащую по другую сторону от искомой. Ну а далее по моей же формуле. Вроде всё гладко и просто выглядит.
идея интересная ...
в принципе у меня сейчас в базе из оригинального файла 131420 точек (это те высоты в которых доподленно известны)
и чуть более 1.6 млн точек вычисления
можно попробовать -
по поводу линейности - да, линейна.
Если обратиться к картографии то есть такое понятие как 3D-линия - т.е. при ООООчень нелинейном рельефе указываются промежуточные точки например мужду линией в 50 и 60 метров ... проходит дополнительная линия которая указывает высоту в 55 м ... и проходит далеко не по середине ... тогда возможная пошаговая обработка.
т.е. сначала 50-55, а потом 55-60 ...
предложенный алгоритм подойдет ... тем более что здесь всего лишь потребуется взять координаты, сформировать запрос к БД на поиск наиближайшей точки получить её координаты и сформировать второй запрос по уровнению прямой для поиска точек с другой стороны ..
если есть - то хорошо, если нет - то значит берем точку в которой прямая ушла за пределы карты как искомую точку и вычисляем:)
тока вот представь если точка на выступ попадет, тогда вторая точка будет тойже высоты и чего делать ... строить перпендикуляр к прямой?
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)