DrawLine画线问题(与波形有关的)
我读出wave里的数据,存放在m_Data[]里的!
short val = m_Data[ 0 ];
int prevX = 0;
int prevY =(int)(( (val + 32768) * y.Height ) / 65536 ); //一种变换!
for ( int i = 0; i < m_Data.NumSamples; i++ ) //m_Data.NumSamples波形数据长度!
{
val = m_Data[ i ];
int scaledVal = (int) (( (val + 32768) * y.Height ) / 65536 );
grfx.DrawLine( pen, prevX, prevY, i, scaledVal ); //画线!!!
prevX = i; //使波形连续画,第一条线的结尾是
prevY = scaledVal; 第二条线的开始
i++;
}
我不明白,我用DrawLine画的是直线,画出来的也应该是齿状的形状!
可是结果画出的是像正弦波形!
short val = m_Data[ 0 ];
int prevX = 0;
int prevY =(int)(( (val + 32768) * y.Height ) / 65536 ); //一种变换!
for ( int i = 0; i < m_Data.NumSamples; i++ ) //m_Data.NumSamples波形数据长度!
{
val = m_Data[ i ];
int scaledVal = (int) (( (val + 32768) * y.Height ) / 65536 );
grfx.DrawLine( pen, prevX, prevY, i, scaledVal ); //画线!!!
prevX = i; //使波形连续画,第一条线的结尾是
prevY = scaledVal; 第二条线的开始
i++;
}
我不明白,我用DrawLine画的是直线,画出来的也应该是齿状的形状!
可是结果画出的是像正弦波形!
...全文
相关推荐
QT,用Qpainter实现绘制心电波形图
每秒触发一次void PWidget::paintEvent(QPaintEvent *) { painter.setRenderHint(QPainter::Antialiasing); painter.drawLine
QT实现动态波形的实时显示
在实际项目中,你可能需要连接到硬件设备,实时接收数据,或者与其他模块进行通信,这时可以利用QT的信号和槽机制来实现。总之,QT为实现动态波形的实时显示提供了强大的工具和支持。
C# GDI+画移动波形图
new Random(); int prevX = 0; for (int x = 0; x < canvas.Width; x++) { int y = rand.Next(-100, 100); g.DrawLine
Android波形绘制
Canvas提供了多种绘图方法,如drawLine()用于绘制线条,drawRect()用于绘制矩形,这对于构建基本的波形形状至关重要。
C# WAV波形图
在C#中,我们可以使用`Graphics.DrawLine()`或`Graphics.DrawCurve()`方法来绘制波形。通常,我们将样本值映射到屏幕的Y坐标,而时间(样本索引)映射到X坐标。


