Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
sDotToLineDist:
Скрипт с функцией расчета расстояния от точки до линии.
Принцип расчета
По координатам двух точек линии получаем формулы линии вида y=a+k*x. Коэффициент k определят величину наклона линии, то есть изменение координаты y на единицу изменения координаты x. Рассчитывается коэффициент k следующим образом:
double K=(LY2-LY1)/(LX2-LX1);
Константа a определяет значение линии при x=0, то есть соответствует уровню, на котором линия пересекает ось y. Зная коэффициент наклона и координату x одной из точек линии, вычисляем а:
double LA=LY1-K*LX1;
Расстояние от точки до лини определяется по перпендикуляру, проведенному к линии. Если повернуть рисунок на 90 градусов против часовой стрелки, линия d будет иметь такой же коэффициент наклона как и основная линия, но с другим знаком. Зная коэффициент наклона и координаты одной точки, можно получить уравнение линии, но в данном случае в форме x=a-ky. Значит константа a:
double DA=DX+K*DY;
Располагая формулами двух линий, найдем точку их пересечения. Для этого выраженный формулой первой линии y подставляем в формулу второй линии, делаем небольшие преобразования и получаем координату x точки пересечения:
Полученный x подставляем в формулу первой линии и получаем координату y точки пересечения линий:
double CY=LA+K*CX;
Зная координаты двух точек, можно вычислить расстояние между ними по осям x и y (величины проекций на оси). Далее, при помощи теоремы Пифагора вычислить расстояние:
Желающие могут поучаствовать в обсуждение вопроса в теме на форуме https://www.mql5.com/ru/forum/237198 или ниже в комментариях.
Автор: Dmitry Fedoseev