画折线,总出现缺失的情况
程序有公共资源
extern CRITICAL_SECTION DrowLock; //在其他文件里初始化了
float fPointUD[100];
float fPointNS[100];
float fPointWE[100];
在系统的主线程里调用的画图方法
fmprex->imgUD->Picture = NULL;
EnterCriticalSection(&DrowLock);
//画折线
fmprex->DrowLine(fmprex->imgUD,fPointUD);
//画折线
fmprex->DrowLine(fmprex->imgNS,fPointNS);
//画折线
fmprex->DrowLine(fmprex->imgEW,fPointWE);
LeaveCriticalSection(&DrowLock);
这个是画图方法的实现
//画布大150*700;以(50,75)为原点,10个点,横坐标间隔为6,纵坐标
void __fastcall Tfmprex::DrowLine(TImage* ImageX, float fLineData[])
{
ImageX->Picture->Assign(NULL);
ImageX->Canvas->MoveTo(X0, Y0);
for (int i = 0; i < 100; i++)
{
ImageX->Canvas->LineTo(X0 + (i*XSpace) , Y0 - (fLineData[i]*YSpace));
}
}
原想是画出的图形是三条线同时画出.
可是实际上的结果是偶尔会正常,总会出现少线,或者某一根短缺的情况
求大神指教
[解决办法]
三条线在一个函数里同时画,而不是用函数画三次