Расстояние между параллельными линиями - страница 5

 
Alexey Volchanskiy:
Новый вброс
как найти точку пересечения прямых на чарте?
прямые заданы, как трендовые линии, ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)

сравниваешь значения линий на 2-х барах i+1 и i-1, текущий i

одно д.б. больше, другое д.б. меньше

тогда пересечение на i-ом баре

 
Alexey Volchanskiy:
Новый вброс
как найти точку пересечения прямых на чарте?
прямые заданы, как трендовые линии, ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)

Точка пересечения редко может попасть на бар. Я определял только пересечение до или после указанного бара. Большая точность в той задаче мне была не нужна.

 
Alexey Viktorov:

Примерно такие

И вот решение этой задачи с помощью вами указанного сайта

Визуально не соответствует, но ведь шкала не одинаковая. Именно это похоже на изменение масштаба.

Вот, смотри.

Наклон у линии получается 0,13888....

То есть, при X=2 значение линии получаем 1,861111...

Дана точка с Y = 3.75

И значит, имеем расстояние по вертикали 1,888...

Все. 

 
Georgiy Merts:

Вот, смотри.

Наклон у линии получается 0,13888....

То есть, при X=2 значение линии получаем 1,861111...

Дана точка с Y = 3.75

И значит, имеем расстояние по вертикали 1,888...

Все. 

При таких мелких числах может и похоже на правду. Тут ошибка почти на 2/100, а при других ценах, например RTS-6.18 текущая цена 110370 то получится недопустимая ошибка.

Вот задача по другим координатам

точка x=-25 y=110380

Прямая проходит через точки x=-9 y=110170 и x=0 y=110440

Что получится по твоим формулам.

 
Alexey Viktorov:

Извиняюсь, ошибочка вышла по моей невнимательности в связи со спешкой.

Вот правильное решение.


ну раз вы так здорово умеете вычислять расстояния от точки до прямой,
то знаете в чём оно измеряется и наверняка
можете нарисовать круг и посчитать его площадь ?
 
Maxim Kuznetsov:
ну раз вы так здорово умеете вычислять расстояния от точки до прямой,
то знаете в чём оно измеряется и наверняка
можете нарисовать круг и посчитать его площадь ?

Это что? Контрольная по математике? Или это уже дипломное задание?

 
Maxim Kuznetsov:
ну раз вы так здорово умеете вычислять расстояния от точки до прямой,
то знаете в чём оно измеряется и наверняка
можете нарисовать круг и посчитать его площадь ?
К чему вы клоните ?
 
Alexey Viktorov:

При таких мелких числах может и похоже на правду. Тут ошибка почти на 2/100, а при других ценах, например RTS-6.18 текущая цена 110370 то получится недопустимая ошибка.

Вот задача по другим координатам

точка x=-25 y=110380

Прямая проходит через точки x=-9 y=110170 и x=0 y=110440

Что получится по твоим формулам.

Считаем.

Наклон прямой (110440 - 110170)/(0-(-9))=30 (+30 единиц по оси ординат на каждую единицу оси абсцисс)

Значит, на абсциссе -25 наша прямая будет иметь ординату 110440+(-25x30) = 109690

То есть, если провести параллельную прямую через точку x=-25 y=110380, то она пройдет на 690 единиц выше нашей прямой (выше по вертикали).

 
Itum:
Я не делаю никаких расчетов в MT (mql) я только беру из терминала значение трех точек в виде время/цена


Далее эти значения я переношу в другую среду где у меня нарисована своя система координат статическая(масштаб фиксирован) ... Поэтому никакое изменение в МТ графике на меня не будет влиять.

Мне нужно только знать как подставить значения в формулу для расчетов на моей системе координат. Такой расчет сделал Georgiy Merts но у него почему-то другой результат вышел 

Дано: на миллиметровке три различные точки pi = (xi, yi)  1 <= i <= 3; x растет вправо, y растет вверх.
Найти: расстояние от прямой 1, наложенной на отрезок из p1 в p2, до параллельной ей прямой 2, проходящей через p3.
Для справки: орт - вектор единичной длины, задает только направление.

   1.  Орт направления прямых O. Определяем по отрезку p1-p2. Пусть dx = x2 - x1, dy = y2 - y1.
Длина отрезка L = (dx^2 + dy^2)^0.5. Тогда орт O имеет координаты O = (Ox, Oy) = (dx/L, dy/L).

   2. Сдвиг между линиями равен проекции любого отрезка от точки линии 1 до точки линии 2 на орт нормали к линии 1 (он
же по параллельности линий орт нормали и к линии 2). Орт нормали определяем поворотом O на 90 градусов против часовой
стрелки. Такое направление можно задавать, так как направления осей x и y вместе с осью z, идущей от бумаги на зрителя,
образуют правую тройку осей координат.
                   N = (-Oy, Ox)  (проверяется путем рисования любой точки и ее повернутого положения)   = (-dy/L, dx/L) 

   3. Проекция отрезка p1-p3 на орт нормали N равна скалярному произведению этих двух векторов, сдвиг
                    S = (x3 - x1) * Nx + (y3 - y1) * Ny =  (x3 - x1) * (-dy/L) + (y3 - y1) * (dx/L).
Искомое расстояние равно абсолютной величине S. Сдвиг S положительный, если, глядя из точки p1, мы будем видеть точку
p3 левее точки p2.

Итого вычисления:

dx = x2 - x1, dy = y2 - y1

L = (dx^2 + dy^2)^0.5

S = (x3 - x1) * (-dy/L) + (y3 - y1) * (dx/L)

 
Georgiy Merts:

Считаем.

Наклон прямой (110440 - 110170)/(0-(-9))=30 (+30 единиц по оси ординат на каждую единицу оси абсцисс)

Значит, на абсциссе -25 наша прямая будет иметь ординату 110440+(-25x30) = 109690

То есть, если провести параллельную прямую через точку x=-25 y=110380, то она пройдет на 690 единиц выше нашей прямой (выше по вертикали).

Но ведь прямая бесконечна... У меня получилось 22.99

Причина обращения: