Движение путника по скошенному и нескошенному лугу




Скорость по лугу А
v1:
Скорость по лугу B
v2:
Координаты
x: -??-
y: -??-

Движение путника по скошенному и нескошенному лугу

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

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

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