
如上圖,我自己畫的類似控制元件的一個波形圖,可以多個并存,每個波形圖都有一個執行緒在記憶體中畫圖,然后UI以固定頻率從記憶體復制出來顯示。
可以看出第一個波形圖,LINE4和SIN3 有一條的例外線,但是我的每條線資料是獨立的不可能相交,相應代碼如下,請各位大佬給予指點。
for (int i = 0; i < showLine.size(); i++)
{
string line_name = showLine[i];
//判定是否畫完,畫完則退出,重新進入遍歷
if (mPointsIndex[line_name] >= mPoints[line_name].size() - 1)
{
showLine.erase(showLine.begin() + i);
break;
}
//線的點位進行歸一化
MemCDCWaveform.SelectObject(&mPointsColor[line_name]);
POINTF PointF1 = mPoints[line_name][mPointsIndex[line_name]];
POINTF PointF2 = mPoints[line_name][mPointsIndex[line_name] + 1];
POINT Point1 = NormalizationPoint(PointF1);
POINT Point2 = NormalizationPoint(PointF2);
//判定是否相同點位,相同點位不畫
if (Point1.x == Point2.x && Point1.y == Point2.y)
{
mPointsIndex[line_name] ++;
}
else
{
//執行緒中劃線有失敗幾率,一定要進行判定
if (MoveToEx(MemCDCWaveform, Point1.x, Point1.y, NULL) && LineTo(MemCDCWaveform, Point2.x, Point2.y))
{
mPointsIndex[line_name] ++;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/12029.html
標籤:界面
上一篇:visual assist x安裝成功但在vs的工具列中沒有顯示
下一篇:關于影像的奇偶行錯位校正問題
