sDotToLineDist - MetaTrader 5 脚本

功能参数:

根据直线两点的坐标,我们得到直线公式:y=a+k*x。这k系数决定了直线的斜率,即y每变化一个单位的坐标x协调。这k系数计算如下:
双倍的K=(LY2-LY1)/(LX2-LX1);
这一个常数决定了线的值,如果x=0,即对应于线与 y 轴交叉的水平。知道斜率系数和线点之一的 X 坐标,我们计算一个:
双倍的LA=LY1-K*LX1;
从点到线的距离是根据与线绘制的垂直线确定的。如果将绘图逆时针旋转 90 度,d线的斜率与主线相同,但符号相反。知道一点的斜率和坐标,我们可以得到直线的方程,但在这种情况下,形式为x=a-ky。所以,一个持续的:
双倍的DA=DX+K*DY;
有了两条直线的公式,我们就可以找到它们的交点。为此,我们替换y将第一行的公式表示到第二行的公式,进行一些变换,得到x交点坐标:
双倍的CX=(DA-K*LA)/(1.0+K*K);
然后将得到的x代入第一行公式中,得到y线交点的坐标:
双倍的CY=LA+K*CX;
知道两点的坐标,我们可以计算它们之间沿 x 轴和 y 轴(轴上的投影)的距离。进一步,利用毕达哥拉斯定理,计算距离:
数学平方根(数学包(DX-CX,2)+数学包(DY-CY,2))
俄语讨论可在https://www.mql5.com/ru/forum/237198。您还可以在此处的评论中讨论这个想法。
附件下载
📎 sdottolinedist.mq5 (0.74 KB)
Source: MQL5 #20481
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
