利用ecGraph3D图表画出三维图
By
admin
at 2021-01-27 • 0人收藏 • 1922人看过

最近有个需求是画出数据三维图, 于是用到了之前写过的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+鼠标左键拖动 可以上下移动图表.
登录后方可回帖