資源簡介
個人原創。僅供參考學習。工具支持本地文件和接收網絡pcm音頻數據播放

代碼片段和文件信息
#include?“curveplot.h“
CurvePlot::CurvePlot(QWidget?*parent)?:
????QWidget(parent)
{
????Margin?=?QMargin(0);
????Background?=?QColor(255?255?255?2);
????Pen?=?QPen(QBrush(QColor(89?254?222))?1);
????PenSpect?=?QPen(QBrush(QColor(34?106?217))?15);
????iAdjustVal?=?0;
}
void?CurvePlot::outPut()
{
????int?w?=?width()?-?Margin.Left?-?Margin.Right;
????int?h?=?height()?-?Margin.Top?-?Margin.Bottom;
????pixmap?=?QPixmap(w?h);
????pixmap.fill(Background);
//????QPainter?painter(&pixmap);
//????painter.setPen(Pen);
//????painter.drawLine(QPoint(Margin.Left?height()/2)?QPoint(Margin.Left?+?w?height()/2));
????update();
}
void?CurvePlot::transformPointsSpect(QVector&data?int?w?int?h?QVector?&points)
{???//?獲取極值
????float?max?=?data[0]?min?=?data[0]?sec?=?data[0];
????for?(int?i=?1;?i????{
????????if?(max?????????????sec?=?max;
????????????max?=?data[i];
????????}
????????if?(sec?????????????sec?=?data[i];
????????if?(min?>?data[i])
????????????min?=?data[i];
????}
????//?轉化成當前屏幕的內的坐標大小
????max?=?sec;
????max?+=?iAdjustVal;
????min?-=?iAdjustVal;
????float?diffVal?=?max?-?min;
????for?(int?i=?0;?i????????if?(data[i]?*?20??>?diffVal)
????????????points.append(QPointF(i?*?w?/?data.size()?*?10?h?-?(data[i]?-?min)?/?diffVal?*?h));
????????else
????????????points.append(QPointF(i?*?w?/?data.size()?*?10?h?-?1));
????}
}
void?CurvePlot::transformPoints(QVector&data?int?w?int?h?QVector?&points)
{???//?獲取極值
????float?max?=?data[0]?min?=?data[0];
????for?(int?i=?1;?i????{
????????if?(max?????????????max?=?data[i];
????????if?(min?>?data[i])
????????????min?=?data[i];
????}
????//?轉化成當前屏幕的內的坐標大小
????max?+=?iAdjustVal;
????min?-=?iAdjustVal;
????float?diffVal?=?max?-?min;
????for?(int?i=?0;?i????????points.append(QPointF(i?*?w?/?data.size()?h?-?(data[i]?-?min)?/?diffVal?*?h));
}
void?CurvePlot::outPut(QVector&data)
{
????int?w?=?width()?-?Margin.Left?-?Margin.Right;
????int?h?=?height()?-?Margin.Top?-?Margin.Bottom;
????pixmap?=?QPixmap(w?h);
????pixmap.fill(Background);
????QPainter?painter(&pixmap);
????QVector?points;
????transformPoints(data?w?h?points);
????painter.setPen(Pen);
????int?step?=?points.size()*2/w;
????for?(int?i=?0;?i????????painter.drawLine(points[i]?points[i]?+?QPoint(0?h?-?points[i].y()*2));
????update();
}
void?CurvePlot::outPutSpect(QVector?&data)
{
????int?w?=?width()?-?Margin.Left?-?Margin.Right;
????int?h?=?height()?-?Margin.Top?-?Margin.Bottom;
????pixmap?=?QPixmap(w?h);
????pixmap.fill(Background);
????QPainter?painter(&pixmap);
????QVector?points;
????transformPointsSpect(data?w?h?points);
????painter.setPen(PenSpect);
????int?cnt?=?points.size()/10;
????for?(int?i=?0;?i????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????549??2017-01-08?11:30??audioTool\audioTool.pro
?????文件??????23704??2017-04-01?20:55??audioTool\audioTool.pro.user
?????文件??????13385??2017-01-07?12:04??audioTool\audioTool.pro.user.3.2-pre1
?????文件???????3603??2017-01-08?00:05??audioTool\curveplot.cpp
?????文件???????1200??2016-04-04?09:42??audioTool\curveplot.h
?????文件??????21662??2017-01-08?11:21??audioTool\icon\music.ico
?????文件?????????32??2017-01-08?11:31??audioTool\icon.rc
?????文件??????24182??2010-05-02?02:07??audioTool\lib\libzplay.lib
?????文件??????34716??2010-05-05?22:41??audioTool\libzplay.h
?????文件????????183??2017-01-07?15:14??audioTool\main.cpp
?????文件??????10943??2017-01-08?11:12??audioTool\mainwindow.cpp
?????文件???????2199??2017-01-07?22:21??audioTool\mainwindow.h
?????文件??????23420??2017-01-08?11:28??audioTool\mainwindow.ui
?????文件?????????98??2017-01-08?11:24??audioTool\res.qrc
?????目錄??????????0??2017-01-08?11:24??audioTool\icon
?????目錄??????????0??2017-01-07?19:17??audioTool\lib
?????目錄??????????0??2017-04-01?20:55??audioTool
-----------?---------??----------?-----??----
???????????????159876????????????????????17
- 上一篇:滿屏玫瑰花
- 下一篇:《支付信息保護技術規范》
評論
共有 條評論