-
UID:76780
-
- 注册时间2009-03-26
- 最后登录2012-06-14
- 在线时间121小时
-
- 发帖125
- 搜Ta的帖子
- 精华0
- 金钱1258
- 威望135
- 贡献值0
- 好评度125
-
访问TA的空间加好友用道具
|
- for (short j=0; j<2; ++j)
- {
- tempX[j] = m_LastPosX[j] * fXInterval;
- tempY[j] = m_LastPosY[j];
- pen.setColor(m_colorGraphic[j]);
- pCanvas.setPen(pen);
- i = 0;
- paintPath.moveTo(tempX[j], tempY[j]);
- while(i < nStep)
- {
- ++m_LastPosX[j];
- nowX[j] = m_LastPosX[j] * fXInterval;
- if (nowX[j] >= fWidth)
- {
- m_LastPosX[j] = 0;
- tempX[j] = m_LastPosX[j];
- beforeX = 0;
- nowX[j] = (++m_LastPosX[j]) * fXInterval;
- paintPath.moveTo(tempX[j], tempY[j]);
- pCanvas.fillRect(0, 0, (int)nStep*fXInterval+15, halfHeight*2, brush);
- }
- m_LastPosY[j] = ((halfHeight/2) - CalculateVaule(m_pGraphicData[j][i])) + j*halfHeight+j;
- if (m_LastPosY[j] < 0)
- m_LastPosY[j] = 0 + j*halfHeight+j;
- else if (m_LastPosY[j] > (halfHeight + j*halfHeight+j))
- m_LastPosY[j] = halfHeight + j*halfHeight+j;
- paintPath.lineTo(nowX[j], m_LastPosY[j]);
- tempX[j] = nowX[j];
- tempY[j] = m_LastPosY[j];
- ++i;
- }
- pCanvas.drawText(16, 16 + j*halfHeight, m_strTitle[j]);
- if(m_bDrawmV[j])
- {
- float fPosX = width()*7;
- int lineHeight = (480*10*gain[j])/135;
- fPosX /= 8.0;
- pCanvas.drawLine(fPosX, (halfHeight/2) -(lineHeight/2) + j*halfHeight,
- fPosX, (halfHeight/2) +(lineHeight/2) + j*halfHeight);
- pCanvas.drawText(fPosX+2, (halfHeight/2) +(lineHeight/2) + j*halfHeight, "1mV");
- }
- //在此处增加保存波形数据的代码,不然部分数据就要被删除了
- memcpy(m_pGraphicData[j], &m_pGraphicData[j][nStep], //把缓冲区中的数据向左移X位, 即会把前面的X位给覆盖
- (*m_pGraphicDataCount[j]-nStep)*sizeof(unsigned short));
- *m_pGraphicDataCount[j] = *m_pGraphicDataCount[j]-nStep; //把缓冲区中数据个数减少
- }
- pCanvas.drawPath(paintPath);
- update((beforeX >= 5)?(beforeX-5):beforeX, 0, (int)nStep*fXInterval+15, halfHeight*2);
此段代码的目的是画出两个波形及与波形相关的名字, 且波形与波形名字的 颜色是一样的. 但现在画出来的结果颜色不对, 波形1的名字 显示的颜色是正确的, 但波形1波的颜色与波形2的相同(奇怪), 从代码来看, 我们是先画波形1, 且设置相应的颜色值, 此时波形2还在波形1的后面, 不知哪里影响了波形1, 我自己做了测试, 当只画波形1时波形的颜色与波形名字的颜色是对的, 只画波形2时也是对的, 但不知为什么同时画时会出这样的 问题, 请高手帮帮忙哦, 谢了.
|