cchart波形图表在aardio中的简单调用示例

By admin at 2020-03-08 • 0人收藏 • 227人看过

首先介绍下这个图表:

CChart可以绘制多种二维、三维曲线,包括折线图、等高线图、云图、饼图、柱图、散点图、面积图、直方图、极线图、甘特图、雷达图、瀑布图、K线图,频谱图等,功能非常全面。 而且,CChart内部选项极为丰富,无论是曲线本身,还是标题、坐标轴、图例、背景、图像注释等部分,都有大量的选项可供设置,甚至消息响应、右键菜单等元素,都提供了自定义的方法。

CChart最大的优势,还是在于其对用户的友好性。在追求功能的同时,CChart在简化调用方面,做到了极致,一般只用几句代码就可以画出精致的图像。这一点可以说不仅胜过绝大部分非商业的图表软件,甚至不输于大部分商业图表软件。

官方:http://www.cchart.net/

image.png


注意: 使用下面的代码,请升级aardio到 v27 版本以上 , 因为下面的tocdecl函数,需要新增的功能支持.


下面的代码中, 主要看下dll中的回调函数在 aardio中怎么定义

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="创建";left=0;top=420;right=160;bottom=470;db=1;dl=1;z=2};
button2={cls="button";text="画图";left=183;top=420;right=343;bottom=470;db=1;dl=1;z=3};
static={cls="static";text="Static";left=0;top=0;right=760;bottom=407;db=1;dl=1;dr=1;dt=1;notify=1;transparent=1;z=1}
)
/*}}*/

var dll = ..raw.loadDll("\res\CChartu.dll","ccshare","cdecl");
Attach = dll.api("?Attach@Classless@@YAHPAUHWND__@@@Z", "int(addr hwnd)");//int __cdecl Attach(struct HWND__ *)
CreateChart = dll.api("?CreateChart@Classless@@YAXXZ", "void(void)");
DestroyChart = dll.api("?DestroyChart@Classless@@YAXXZ", "void(void)");
SetType = dll.api("?SetType@Classless@@YA_NH@Z", "byte(int)");//bool __cdecl SetType(int)
//静态回调函数
SetFieldFcn = dll.api("?SetFieldFcn@Classless@@YAXP6ANNN@Z@Z", "void(pointer fun)");//void __cdecl SetFieldFcn(double (__cdecl*)(double,double))
SetPlotRange = dll.api("?SetPlotRange@Classless@@YAXNNNN@Z", "void(double, double, double, double)");//(void __cdecl SetPlotRange(double,double,double,double))
ReDraw = dll.api("?ReDraw@Classless@@YAXXZ", "void(void)");//void __cdecl ReDraw(void)
SetTitle = dll.api("?SetTitle@Classless@@YAXPB_W@Z", "void(ustring title)");//void __cdecl SetTitle(wchar_t const *)
SimpleMsgLoop = dll.api("?SimpleMsgLoop@NsCChart@@YAHXZ", "void(void)");
       
winform.static.onEraseBkgnd  = function(hwnd,message,wParam,lParam){
    return 0;//禁止擦除背景
};
winform.button.oncommand = function(id,event){
	CreateChart();
	Attach(winform.static.hwnd);
	ReDraw();
}


import console
console.open()

//定义静态回调函数
func = function(x,y){
	var ret = 1.0/(x*x+y*y+1.0);
	return ret;
}
//dll中在别的线程中调用,所以这里用thread
func_c = thread.tocdecl(func,"double(double,double)");

winform.button2.oncommand = function(id,event){
	SetType(6)
	//主要看这个: 静态回调
	SetFieldFcn(func_c);
	SetPlotRange(-3.0, 3.0, -2.0, 2.0);
	SetTitle("GCC标题");
	ReDraw();
	//SimpleMsgLoop();
}

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

下面是cchart.dll文件

CChartu.7z

函数H头文件

CChartu_H.zip


2 个回复 | 最后更新于 29 天前
29 天前   #1

老大,js api控制安卓手机,能用aardio写个例子吗?

http://tc.sigma-rt.com.cn/script/index.php官网

29 天前   #2

回复#1 @ccbwx :

控制手机为啥不用adb?这个好在哪?

process.adb库校长都已经封装好了,可以拿来直接用

aar官网论坛里有好几个adb控制手机的帖子

登录后方可回帖

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