三维图表控件ecGraph3D的使用

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

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

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

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

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

GIF.gif


image.png

image.png

image.png


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

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

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

 

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

ecGraph3D破解版控件.zip

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


3 个回复 | 最后更新于 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

够小,还不丑。不错!

要是能支持中文就更好。

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

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...