.版本 2 [/size ][/font ][/color ][/p ].支持库 spec 变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | x | 变体类型 | | | y | 变体类型 | | | t | 整数型 | | | qx | 变体型 | | | vx | 变体型 | | | vy | 变体型 | | | px | 整数型 | | | py | 整数型 | | | bx | 变体类型 | | | by | 变体类型 | | | n | 整数型 | | |
t = 取启动时间 ()n = 200000 vx. 创建数组 ( #变体类型 .数值型, n )vy. 创建数组 ( #变体类型 .数值型, n )计次循环首 (n, i )vx. 赋值 (i ÷ 10, i )vy. 赋值 (求正弦 (i ÷ 10 ), i )计次循环尾 ()py = 取变量地址 (vy )px = 取变量地址 (vx )TChart1. Series (0 ). AddArray (n, py, px )
上面是用变体型 数据试了下,有延时,说明程序在调用,但,数据类型不对,还是怎么着最后没成;
【下面是找到的参考】
不知道,怎么转换了;大司命给撤销了,发了威客悬赏,可悬赏没人啊,半天没人接;
由于需要添加大量数据(10000以上),因此,用AddXY一个一个加感到速度乏力。但在网上找了N久都没找到过原型为AddArray(long ArraySize, VARIANT &YArray, VARIANT &XArray)的用法例程,其实关键在于不知怎样将一个数组转化为VARIANT。 1:添加成员变量 VARIANT vAX,vAY;
VARIANT &AX;
VARIANT &AY; SAFEARRAY *psax;
SAFEARRAY *psay; vAX,vAY为变体的实体,AX,AY为引用变量,AddArray函数格式要求。 其中AX,AY需要在构造函数中初始化,如下: CteetestDlg::CteetestDlg(CWnd* pParent )
: CDialog(CteetestDlg::IDD, pParent)
,AX(vAX),AY(vAY)
2:初始化 SAFEARRAYBOUND rgsabound; rgsabound.cElements=10000; rgsabound.lLbound=0; psax=SafeArrayCreate(VT_R8,1,&rgsabound); psay=SafeArrayCreate(VT_R8,1,&rgsabound); AX.vt=VT_ARRAY|VT_R8; AX.parray=psax; AY.vt=VT_ARRAY|VT_R8; AY.parray=psay;
3:添加数据,画图 以下是在一个按键的响应函数中实现的 int index=0; void CteetestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
((CSeries)m_chart.Series(0)).Clear();
long i;
double j,t;
for(i=0;i<10000;i++)
{
j=i;
t=index*0.1*j;
SafeArrayPutElement(psax,&i,&j);
SafeArrayPutElement(psay,&i,&t);
}
index++;
((CSeries)m_chart.Series(0)).AddArray(10000,AY,AX);
}
|