
如何在VB.NET中画.wave文件的波形图
在VB.NET中画直线好像是要用代码实现了吧,原来在VB6是直接用控件就可以实现了,有没有人知道在.NET里面画波形图的代码应该如何写?
__________________________________________________________________________
http://www.wave12.com/web/MulCon.asp?ID=17
__________________________________________________________________________
添加一个PictureBox1 As PictureBox,然后声明一个b As New Bitmap(PictureBox1.Width, PictureBox1.Height),声明一个g As Drawing.Graphics = Drawing.Graphics.FromImage(b)。再令PictureBox1.Image = b。
最后你可以对g调用Drawing.Graphics的各种绘图函数。绘图完了之后调用
PictureBox1.Invalidate()
PictureBox1.Update()
强制PictureBox1重绘。
这样就可以了。
相信你应该知道.wave文件的波形图的画法,仅仅是不知道其在VB.Net中的写法。
__________________________________________________________________________
不好意思,我是新手,不会画波形图,能不能再顺便告诉我下该怎么画波形图呢?
__________________________________________________________________________
我这儿有个绘制曲线的,不知对你有没有用?
http://blog.youkuaiyun.com/wzuomin/archive/2006/12/13/1441127.aspx
__________________________________________________________________________
如果有数据的话,用ZedGraph很简单
__________________________________________________________________________
不会 支持
__________________________________________________________________________
还是不行啊 ,不怎么会,谁能给个例子我看看就好了,完全不知道应该怎么去画。。。
__________________________________________________________________________
代码,你用你读得的Wave文件的点替代这里面的Points就行了。
不要再问我Wave文件怎么读,因为我也不知道。
Imports System.Math
Public Class Form1
Private g As Drawing.Graphics
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)
''初始化绘图对象
g = Drawing.Graphics.FromImage(PictureBox1.Image)
''设置光滑模式为反锯齿
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
''使用一个List来存储曲线上的点
Dim Points As New List(Of Point)
For n As Integer = 0 To 180
Dim theta As Integer = n * 2
Points.Add(Transform(n - 90, Sin(theta / 180 * PI) * 100))
Next
''用贝塞尔曲线连接来绘制曲线
g.DrawBeziers(Pens.Black, Points.ToArray)
''强制更新PictureBox
PictureBox1.Invalidate()
PictureBox1.Update()
End Sub
'' '' ''
Public Function Transform(ByVal x As Integer, ByVal y As Integer) As Point
Return New Point(x + PictureBox1.Width / 2, -y + PictureBox1.Height / 2)
End Function
End Class
__________________________________________________________________________
这个代码要先添加一个足够大小的PictureBox
__________________________________________________________________________
JF UP 学习
__________________________________________________________________________
学习中
__________________________________________________________________________
向r0ex(地狱门神)学习!!
__________________________________________________________________________
还是不太明白。。但还是给分了。。
__________________________________________________________________________
多试试应该就明白了。把波形图上的点算出来,存到数组或者列表里面,用那个方法就可以画出来。
可能你需要把实际画的那些步骤放在一个按钮点击之类的事件处理器中。
__________________________________________________________________________