Добрался наконец-то до SVG. Давно хотел, да все откладывалось. Сухая теория усваивалась плохо. Пришлось размочить её несложной задачкой. По счастью та не стремилась затаиться в глубинах памяти и сама послушно прыгнула в руки.
Когда на курсах по управлению маломерными судами нас обучали основам навигации, то рассказывали о поправках на ветер, течение, девиацию и склонение. И давали формулы расчета.
Очень простые.
Но лектор сказал, что если градусы в голову лезут плохо, никто не запрещает взять лист бумаги и нарисовать на нем вводные. Тогда сразу всё видно. Получалось примерно так:
Идея визуализировать это дело пришла при подготовке к экзаменам в ГИМС. Уже сдав и получив удостоверение, попытался сварганить на HTML+CSS (в основном, из спортивного интересу).
Справедливости ради, получилось все, кроме «красивой стрелки». Возможно, и она бы получилась, но привалило работой, затем грянул отпуск, потом второй. И задача была поставлена на полку. Чтобы однажды...
... которое наконец наступило. В результате трехнедельных ковыряний в свободное от прочих занятий время, родилась
такая гуёвина.
Занудам и педантам поясняю, что, конечно же, степень точности вычислений тут, прямо скажем, не на высоте. Так, к примеру, для расчета угла дрейфа не хватает одной величины.
Любителям посетовать на бесконтрольное размножение велосипедистов напоминаю, что основной задачей было научиться пользоваться SVG, а не написать мегатул для навигации. А в публичный доступ сие баловство выкладывается затем, чтобы другие «начинающие» могли покопаться в исходниках, если у них возникнет такое желание.
Кстати, если возникнет, там все по модулям и обозвано максимально человеческим английским. С комментариями в JS Doc. Думаю, не заблудитесь. Скоро выложу на GitHub.
А пока балуйтесь.