如何从坐标中计算出直线的长度?

 

在知道两点坐标的情况下,如何得到任何单位的之字形线长(实质上是波长)?

需要比较两者的波长的百分比


===编辑====

尊敬的sergeev 在第9页给出了代码,我对其进行了调整以适应我的任务。

重要提示:当复卷、压缩/拉伸时,数值会发生变化

#import "user32.dll"
        int GetWindowDC(int dc);
        bool GetWindowRect(int h, int& pos[4]);
        int ReleaseDC(int h, int dc);

#import

// B1 и B2 - это номера баров
double GetLengthTrendLineInPixels(int B1, double P1, int B2, double P2)
{
    int hWnd = WindowHandle(Symbol(), Period());
    int hDC = GetWindowDC(hWnd); // получаем хендл окна
    int rect[4]; GetWindowRect(hWnd, rect); ReleaseDC(hWnd, hDC);   // берем его DC
    double wW = rect[2]-rect[0]; double wH = rect[3]-rect[1];           // получаем высоту и ширину в пикселях
    double H =(WindowPriceMax()-WindowPriceMin()); double W = WindowBarsPerChart(); // переводим на график
    double lengthW = wW / W * MathAbs(B1 - B2); // ширина в пикселях; wW / W = 1 бар в пикселях
    double lengthH = wH / H * MathAbs(P1 - P2); // высота в пикселях; wH / H = 1 пункт в пикселях
    return(MathSqrt(MathPow(lengthW, 2) + MathPow(lengthH, 2)));
}
 
AlexSTAL:

在知道两点坐标的情况下,如何得到任何单位的之字形线长(实质上是波长)?

需要比较两者的波长的百分比

不是一个好主意,你会把积分和时间加起来,这是不符合逻辑的)
 
那么,从纯粹的数学角度来看:平方之和的平方根(毕达哥拉斯定理)。
 
但是,如果你用长的减去短的,只是以点为单位的长度,那就不行了?
 
sanyooooook:
这不是一个好主意,你会把积分和时间加起来,所以你不能这么做(不符合逻辑) )
如果用条形数字*TF代替时间呢?例如,1:1.5413+48*15,2:1.5466+1*15。
 
Abzasc:
如果用条形数字*TF代替时间呢?例如,1:1.5413+48*15,2:1.5466+1*15。
我不在乎什么,如果它不是一个价格,就没有意义了 )
 
sanyooooook:
不管怎么样,如果不是价格,就没有意义了)

如果我们谈论的是一个相对的价值,这是有道理的。

毕达哥拉斯的意义在于计算斐波那契弧线的向量长度。

很简单,随着时间的推移,动能可以说是燃烧殆尽,如果在一定时间内没有实现运动,就会耗尽。

因此,作为一个脉冲测量,它很可能做到这一点,主要是时间的离散性应该在两个被比较的脉冲中是相等的。

因此,请随意将价格差异的平方(或更好的是,将其转化为旅行距离的点)和运动 的平方相加。

和根将为你提供所需的相对值进行比较。

 
sanyooooook:
无论如何,如果不是价格问题,那就没有意义了 )
重点是在旅程中 :)
 
Abzasc:
重点是旅程 :)

道路是为行走的人准备的,而千里之行始于足下。

伙计,我很快就会成为一个有数学数学的怀疑哲学家 :o)

 

实际上,我指的是斜边的长度:)你怎么看?;)

 
如果 "cathetuses "不仅仅是由不同的面团制成,而是在不同的空间,我们还能谈论什么斜边?更确切地说,它们是不可比拟的。