利用ecGraph3D图表画出三维图
By
admin
at 2021-01-27 • 0人收藏 • 1691人看过
最近有个需求是画出数据三维图, 于是用到了之前写过的ecgraph3d这个控件
数据从excel中获取, 然后写入到这个控件里, 这里利用aardio的string.database来处理csv格式的excel , 比较简单.
这个界面是我集成在另外一个软件上面的, 这里只分享下这个界面里面的数据处理.
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio工程13";right=959;bottom=591) winform.add( picturebox={cls="picturebox";left=0;top=0;right=960;bottom=592;db=1;dl=1;dr=1;dt=1;z=1} ) /*}}*/ import fsys.dlg; path = fsys.dlg.open("csv文件|*.csv","请选择CSV文件"); if(!#path) return; var ec3dG = winform.picturebox.createEmbed("{0EA4ABD6-7D38-4C8F-B976-D1CFDDA4525C}"); var ec3dObj = ec3dG._object; ec3dObj.RegisterecGraph3D("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"); import string.database; var strDb = string.database(","); var zData = strDb.parse(string.load(path)); //解析数据 //table.remove(zData,#zData); var nx,ny=#zData,#zData[1]; with ec3dObj{ Reset(); ClearColorBands(); SimpleColorBand(-80, 0, 0xD01212, 0x0000FF) PlotStyle = 3 //'PlotStyle: 0=waterfall, 1=slabs, 2=ribbons, 3=mesh, 4=columns RenderStyle = 1 //'RenderStyle: 0=Gradient, 1=solid, 2=wireframe, 3=axes only Skirt = 0 // AddDataArray(nx-1, 0, nx, ny-1, 0, ny, zData) Refresh(); } winform.show(); win.loopMessage(); return winform;
如果你需要测试上面的代码的话, 就下载下面这个csv文件吧.
这个三维控件, 自己去找我之前发的链接吧.
提示: 按住ctrl+鼠标左键拖动 可以放大三维图查看细节, 按住shift+鼠标左键拖动 可以上下移动图表.
登录后方可回帖