文章 "可视化!类似于 R 语言 "plot (绘图)" 的 MQL5 图形库" - 页 4 1234567 新评论 -vallen- 2020.03.10 11:50 #31 Roman Konopelko:下午好,您究竟是如何尝试重新绘制图表的?如果您只需要更改特定曲线的数据,这里有一个示例: #include <Graphics\Graphic.mqh>//+------------------------------------------------------------------+//| 脚本程序启动功能|//+------------------------------------------------------------------+voidOnStart() {//--- 数据 1 double x1[]={-10,-4,-1,2,3,4,5,6,7,8}; double y1[]={-5,4,-10,23,17,18,-9,13,17,4};//--- 数据 2 double x2[]={-10,-10,10,10}; double y2[]={-10,10,-10,10};//--- 图形 CGraphic graph; graph.HistoryNameWidth(80); graph.Create(0,"Graph",0,30,30,830,430);//--- 点数 CCurve *curve=graph.CurveAdd(x1,y1,CURVE_LINES); graph.CurvePlot(0); graph.Update(); Sleep(1000); curve.Update(x2,y2); graph.Redraw(true); graph.Update(); Sleep(1000); } 附注:论坛上有一个关于图形库的主题,这个问题已经在那里提出过了。 例如,这里有一段代码,可以在每个刻度线上创建一个随机图表: #include <Graphics\Graphic.mqh> double Xg[10]={0,1,2,3,4,5,6,7,8,9}; double Yg[10]={0,0,0,0,0,0,0,0,0,0}; //------------------------------------------ int OnInit() { graf(); //绘制图表 //--- return(INIT_SUCCEEDED); } //------------------------------------------ void OnTick() { for(int i=0; i<=9; i++){ Yg[i]=(int)MathRand()/1000; } ObjectDelete(0,"Graph");//删除图表,我意识到这不是正确的方法,但我别无他法。 graf(); //绘制新图表 } //------------------------------------------------------------- void graf(){ CGraphic graph; graph.HistoryNameWidth(80); graph.Create(0,"Graph",0,30,30,830,430); CCurve *curve=graph.CurveAdd(Xg,Yg,CURVE_LINES); graph.CurvePlotAll(); graph.Update(true); } //------------------------------------------------------------- 我不知道如何在不删除图表的情况下更新数据。请告诉我谁知道怎么做。 הטרנסצנדנטלי בעל-חזון 2021.05.08 17:40 #32 如果有人知道如何更改该库中签名的字体大小和样式,请告诉我。- 我试过 FontSet - 但不起作用.....。 fxsaber 2021.05.08 17:52 #33 transcendreamer:如果有人知道如何更改该库中签名的字体大小和样式,请告诉我。- 我试过 FontSet - 但不起作用.....。 打开程序库的源代码,在搜索栏中输入字体。 הטרנסצנדנטלי בעל-חזון 2021.05.08 19:39 #34 fxsaber:打开 bibla 的源文件,在搜索中输入字体。 直接在那里编码?😁 我只是觉得有一些现成的方法。 事实上,通过搜索字体,我找到了 FontSet,但它拒绝合作。 Aleksey Vyazmikin 2021.05.10 23:26 #35 transcendreamer:如果有人知道如何更改该库中签名的字体大小和样式,请告诉我。- 我试过 FontSet - 但不起作用.....。 对于图例中的标题? graphicL.HistorySymbolSize(Point_K);//获取/设置符号的符号大小 הטרנסצנדנטלי בעל-חזון 2021.05.10 23:51 #36 Aleksey Vyazmikin:在图例中签名? 谢谢。 事实上,轴也是如此。 Vladimir Pastushak 2022.10.17 17:22 #37 -vallen- #:这在脚本中很清楚,但如何在 Expert Advisor 中更新呢? 例如,这里有一段代码,可以在每个 tick 上创建随机图表:我不知道如何在不删除图表的情况下更新数据。请告诉我谁知道怎么做。 有答案吗? Anatoli Kazharski 2023.07.31 11:08 #38 Изначально класс CCanvas содержал только два режима отрисовки графических примитивов — со сглаживанием (antialiasing, AA) и без него. Затем были добавлены новые функции для создания примитивов на основе алгоритма Ву: LineWu - 直线 PolylineWu- 折线 PolygonWu- 多边形 TriangleWu- 三角形 CircleWu- 圆 EllipseWu-椭圆 缺少Arc() 和Pie() 的平滑方法。 Документация по MQL5: Стандартная библиотека / Пользовательская графика / CCanvas / Arc www.mql5.com Arc(int,int,int,int,int,int,int,int,const uint) - CCanvas - Пользовательская графика - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Anatoli Kazharski 2023.07.31 12:20 #39 还需要这些边缘平滑的填充方法: void FillTriangle(int x1,int y1,int x2,int y2,int x3,int y3,const uint clr); void FillPolygon(int &x[],int &y[],const uint clr); void FillCircle(int x,int y,int r,const uint clr); void FillEllipse(int x1,int y1,int x2,int y2,const uint clr); void Fill(int x,int y,const uint clr); void Fill(int x,int y,const uint clr,const uint threshould); //--- 目前,即使首先使用FillCircle() 方法绘制一个带填充的圆,然后使用CircleWu() 方法在其周围进行跟踪,也会部分失去平滑效果。 Документация по MQL5: Стандартная библиотека / Пользовательская графика / CCanvas / FillCircle www.mql5.com FillCircle(int,int,int,const uint) - CCanvas - Пользовательская графика - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Artyom Trishkin 2023.07.31 12:39 #40 Anatoli Kazharski #:您还需要这些平滑边缘填充方法://---目前,即使你首先使用FillCircle() 方法绘制一个填充圆,然后使用CircleWu() 方法在其周围进行跟踪,也会部分失去平滑效果。 所有平滑方法都在很大程度上取决于线条的不透明度。当不透明度达到 50%左右时,一切都会变成无锯齿,并产生人工痕迹。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好,您究竟是如何尝试重新绘制图表的?
如果您只需要更改特定曲线的数据,这里有一个示例:
//+------------------------------------------------------------------+
//| 脚本程序启动功能|
//+------------------------------------------------------------------+
voidOnStart()
{
//--- 数据 1
double x1[]={-10,-4,-1,2,3,4,5,6,7,8};
double y1[]={-5,4,-10,23,17,18,-9,13,17,4};
//--- 数据 2
double x2[]={-10,-10,10,10};
double y2[]={-10,10,-10,10};
//--- 图形
CGraphic graph;
graph.HistoryNameWidth(80);
graph.Create(0,"Graph",0,30,30,830,430);
//--- 点数
CCurve *curve=graph.CurveAdd(x1,y1,CURVE_LINES);
graph.CurvePlot(0);
graph.Update();
Sleep(1000);
curve.Update(x2,y2);
graph.Redraw(true);
graph.Update();
Sleep(1000);
}
例如,这里有一段代码,可以在每个刻度线上创建一个随机图表:
我不知道如何在不删除图表的情况下更新数据。请告诉我谁知道怎么做。
如果有人知道如何更改该库中签名的字体大小和样式,请告诉我。- 我试过 FontSet - 但不起作用.....。
如果有人知道如何更改该库中签名的字体大小和样式,请告诉我。- 我试过 FontSet - 但不起作用.....。
打开程序库的源代码,在搜索栏中输入字体。
打开 bibla 的源文件,在搜索中输入字体。
直接在那里编码?😁
我只是觉得有一些现成的方法。
事实上,通过搜索字体,我找到了 FontSet,但它拒绝合作。
如果有人知道如何更改该库中签名的字体大小和样式,请告诉我。- 我试过 FontSet - 但不起作用.....。
对于图例中的标题?
graphicL.HistorySymbolSize(Point_K);//获取/设置符号的符号大小在图例中签名?
谢谢。
事实上,轴也是如此。
这在脚本中很清楚,但如何在 Expert Advisor 中更新呢? 例如,这里有一段代码,可以在每个 tick 上创建随机图表:
我不知道如何在不删除图表的情况下更新数据。请告诉我谁知道怎么做。
有答案吗?
Изначально класс CCanvas содержал только два режима отрисовки графических примитивов — со сглаживанием (antialiasing, AA) и без него. Затем были добавлены новые функции для создания примитивов на основе алгоритма Ву:
缺少Arc() 和Pie() 的平滑方法。
还需要这些边缘平滑的填充方法:
//---
目前,即使首先使用FillCircle() 方法绘制一个带填充的圆,然后使用CircleWu() 方法在其周围进行跟踪,也会部分失去平滑效果。
您还需要这些平滑边缘填充方法:
//---
目前,即使你首先使用FillCircle() 方法绘制一个填充圆,然后使用CircleWu() 方法在其周围进行跟踪,也会部分失去平滑效果。
所有平滑方法都在很大程度上取决于线条的不透明度。当不透明度达到 50%左右时,一切都会变成无锯齿,并产生人工痕迹。