Энергосберегающее движениие судна из р1 в р2,
часть пути двигаемся по течению: р1->р11



Скорость воды(ветра)
v1:
Скорость судна
v2:

Оптимальное движение судна (часть по течению воды)

Вид 1 - движения (перебор точек) по течению воды.
ЦФ 1 - график ЦФ - зависимости времени от точки поворота к пункту назначения.
ЦФ 2 - график ЦФ - до оптимальной точки поворота.
Оптимальный путь - двумя лучами дается оптимальный путь движения.
Щелкая мышкой по полю, вы будете фиксировать (задавать) точку. От точки будут также идти лучи к р1 и р2.

Упражнение. Мышкой показать оптимальную точку на линии движения воды, через которую путь судна является оптимальным.

Алгоритм решения задачи
Дано скорости воды - v1 и судна - v2.
Цель: время, затрачиваемое на прохождение от р1 к р2, стремиться к минимуму: t1+t2 -> min
t1 = s1/(v1+v2)
t2 = s2/v2
I. Перебор точек на прямой р1-р11 от параметра u вычисляется в векторной форме:
p=(1-u)*p1+u*p11
или покомпонентно:
x=(1-u)*x1+u*x11
y=(1-u)*y1+u*y11
0 <= u <= 1 - для получения точек внутри отрезка р1-р2
II. Вычисляем расстояния от т. р1 и р2 до Р
s1 = Math.sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y))
s2 = Math.sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y))
III. Вычисляем время
t = s1/(v1+v2) + s2/v2
IV. Сравнить и выбрать (минимальное время и координаты точек оптимума)
if (t < tmin) {
xmin = x
ymin = y
tmin = t
}
Примечание. Данный скрипт не завязан на PNG-графику и может быть запущен на ПК пользователя. Для этого надо скопировать текст файла (Вид -> В виде HTML) в какую-либо директорию. Также сохранить картинку (щелкнуть правой кнопкой по картинке -> сохранить) с именем и расширением Opt5.jpg. Потом щекнуть по имени сохраненного файла, и сценарий должен запуститься в Internet Explorer автоматически.