三维图表控件ecGraph3D的使用

By admin at 2019-12-22 • 0人收藏 • 785人看过

昨天偶然发现一个3d的控件, 蛮不错的, 国外的, 需要注册, 下面连接分享了破解版

有需要的可以下载使用, 官方自带的例子是vb写的. 文档很全.

该ocx控件支持与鼠标交互, 放大缩小,拖拽,旋转

下面的动态图,因为gif录制软件的问题产生的绿底(这个不是控件产生的)

GIF.gif


image.png

image.png

image.png


谁对这个控件感兴趣的给封装下(能在下面分享下您的封装库更好),哈

我这两天有事, 实在没人封装就等我过两天自己封装分享下了.

链接:https://pan.baidu.com/s/1cpuowoSgyWfLQMdnnAnHiA 
提取码:9ukj

 

方便有些人没有百度网盘, 本地下载:

ecGraph3D破解版控件.zip

原版安装软件(安装后包含使用文档和vb示例).zip


5 个回复 | 最后更新于 2019-12-24
2019-12-22   #1

第一个示例:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio工程13";right=959;bottom=591)
mainForm.add(
picturebox={cls="picturebox";left=0;top=0;right=960;bottom=448;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

var ec3dG = mainForm.picturebox.createEmbed("{0EA4ABD6-7D38-4C8F-B976-D1CFDDA4525C}");
var ec3dObj = ec3dG._object;
ec3dObj.RegisterecGraph3D("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX");

var demo1 = function(){
    with ec3dObj{
    	Reset();
	AddText("Demo 1. Simple 3D math function as bar graph, colored by height.", 20, 2);
	AddFunction("2*(sin(x)+sin(y))", 8, 1, 4, 8, 1, 4, -4);
	Refresh();	
    }
}

demo1();

mainForm.show();
return win.loopMessage();

image.png

2019-12-22   #2

示例二

这个控件可以免注册调用

import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio工程13";right=959;bottom=591)
mainForm.add(
button={cls="button";text="demo1";left=0;top=538;right=103;bottom=592;db=1;dl=1;z=2};
button2={cls="button";text="demo2";left=122;top=538;right=225;bottom=592;db=1;dl=1;z=3};
button3={cls="button";text="demo3";left=251;top=538;right=354;bottom=592;db=1;dl=1;z=4};
picturebox={cls="picturebox";left=0;top=0;right=960;bottom=492;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

import console
console.open()

//免注册调用
import fsys;
import com.lite;
var dll = com.lite(fsys.appdata("aardio\ecGraph3D.ocx",$"\res\ecGraph3D.ocx"))
var ec3dG = dll.createEmbed(mainForm.picturebox,"{0EA4ABD6-7D38-4C8F-B976-D1CFDDA4525C}");
var ec3dObj = ec3dG._object;
ec3dObj.RegisterecGraph3D("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX");

var demo2 = function(){
    var nx,ny=8,8;
    var i,j,x,y,z;
    var zData = {};
    var BarTooltips = {};
    for(i=1;nx;1){
		zData[i]={};
		x = i/2;
		for(j=1;ny;1){
			y=j/2;
			z = 2 * (math.sin(x) + math.sin(y) + math.random() - 0.5)
			zData[i][j]=z
		}
	}
    with ec3dObj{
    	Reset();
		AddText("Demo 2. 3D bar graph, individual bar heights, legend table, custom tooltips & color scale.", 2, 2)
		ClearColorBands();
		AddColorBand(-4, 255, 255, "-4")
		AddColorBand(0, 255, 65535, "0")
		AddColorBand(5, 65535, 65280, "4")
		AddLegendEntry("Positive", 3329330)
		AddLegendEntry("Negative", 17919)
		BarWidthX = 0.6
		BarWidthY = 0.6
	
		AddDataArray(nx-1, -4, 4, ny-1, -4, 4, zData)
		Refresh();	
    }
}

/*示例1{{*/
var demo1 = function(){
    with ec3dObj{
    	Reset();
		AddText("Demo 1. Simple 3D math function as bar graph, colored by height.", 20, 2);
		AddFunction("2*(sin(x)+sin(y))", 8, 1, 4, 8, 1, 4, -4);
		Refresh();	
    }
}
/*}}*/

/*示例3{{*/
var demo3 = function(){
	ec3dObj.Reset();
	ec3dObj.AddText("Demo 7  -  3D surface function, mesh style, 60x60 resolution", 50, 2, , "bold", 1)
	ec3dObj.PlotStyle = 3 //'PlotStyle: 0=waterfall, 1=slabs, 2=ribbons, 3=mesh, 4=columns
    ec3dObj.RenderStyle = 1 //'RenderStyle: 0=Gradient, 1=solid, 2=wireframe, 3=axes only
    ec3dObj.Skirt = 0 //'
    ec3dObj.SetzColorTableStyle(93, 40, 1.4, 50, 0, "", 0)
    ec3dObj.AddFunction("2*(sin(x)+sin(y))", 60, 1, 6, 60, 1, 6, -4)
	ec3dObj.Refresh();
}
/*}}*/


demo1();

mainForm.button.oncommand = function(id,event){
	demo1();
}

mainForm.button2.oncommand = function(id,event){
	demo2();
}

mainForm.button3.oncommand = function(id,event){
	demo3();
}

mainForm.show();
return win.loopMessage();

image.png

以上

三个示例完整工程代码如下:

3D图表控件示例.zip



2019-12-24   #3

aardio中调用VB编写的控件非常方便,

以上面的3D控件为例,只要一句代码就可以嵌入:

var ec3dG = com.lite("\res\ecGraph3D.ocx").createEmbed(mainForm.picturebox);

不需要注册控件、不需要管理权限,直接就可调用VB控件的所有方法。
现在COM类名参数都不用写了,aardio会自动检测到这个参数。


这些VB控件通常不支持内存加载,
但是 aardio新版提供一个 com.lite.appData函数可以方便生成自带OCX的独立EXE文件,
以ecGraph3d例:

var dll = com.lite.appdata("aardio\ecGraph3D.ocx",$"\res\ecGraph3D.ocx")
var ec3dG = dll.createEmbed(mainForm.picturebox);
var ec3dObj = ec3dG._object;


另外在新版中上面这些代码不用自己写了,
打开新增的:aardio工具/编码/COM控件调用代码生成工具”,
只要简单的将控件往该工具窗口上一拖,就可以自动生成嵌入该控件的aardio代码。

2019-12-24   #4

够小,还不丑。不错!

要是能支持中文就更好。

这个网站学到不少东西,谢谢。

2019-12-24   #5

看来手头那个查com组件GUID码的工具可以完美卸任了,哈哈


@guoke

分享出来大家有用到的就可以不用浪费时间找了。

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...