当前位置:编程学习 > VB >>

如何用VB输出图形

我的程序如下
Const Pi = 3.1415926
Public Function FFT0(ar() As Double, ai() As Double, N As Integer, ni As Integer)
Dim i As Integer, j As Integer, k As Integer, L As Integer, M As Integer
Dim IP As Integer, LE As Integer
Dim L1 As Integer, N1 As Integer, N2 As Integer
Dim SN As Double, TR As Double, TI As Double, WR As Double, WI As Double
Dim UR As Double, UI As Double, US As Double
M = NTOM(N)
N2 = N / 2
N1 = N - 1
SN = ni
j = 1
For i = 1 To N1
If i < j Then
TR = ar(j - 1)
ar(j - 1) = ar(i - 1)
ar(i - 1) = TR
TI = ai(j - 1)
ai(j - 1) = ai(i - 1)
ai(i - 1) = TI
End If
k = N2
While (k < j)
j = j - k
k = k / 2
Wend
j = j + k
Next i
For L = 1 To M
LE = 2 ^ L
L1 = LE / 2
UR = 1#
UI = 0#
WR = Cos(Pi / L1)
WI = SN * Sin(Pi / L1)
For j = 1 To L1
For i = j To N Step LE
IP = i + L1
TR = ar(IP - 1) * UR - ai(IP - 1) * UI
TI = ai(IP - 1) * UR + ar(IP - 1) * UI
ar(IP - 1) = ar(i - 1) - TR
ai(IP - 1) = ai(i - 1) - TI
ar(i - 1) = ar(i - 1) + TR
ai(i - 1) = ai(i - 1) + TI
Next i
US = UR
UR = US * WR - UI * WI
UI = UI * WR + US * WI
Next j
Next L
If SN <> -1 Then
For i = 1 To N
ar(i - 1) = ar(i - 1) / N
ai(i - 1) = ai(i - 1) / N
Next i
End If
End Function
Private Function NTOM(N As Integer) As Integer
Dim ND As Double
ND = N
NTOM = 0
While (ND > 1)
ND = ND / 2
NTOM = NTOM + 1
Wend
End Function

Private Sub Command1_Click()
    Const fftIn = 1024
    Dim i As Integer
    Dim xr(1024) As Double ', a As Double
    Dim xi(1024) As Double ', b As Double
    For i = 1 To 1024
        xr(i) = 100 * Cos(2 * Pi * 0.001 * 10 * i) + 100 * Sin(2 * Pi * 0.001 * 5 * i)
        xi(i) = 100 * Sin(2 * Pi * 0.001 * 10 * i) + 100 * Cos(2 * Pi * 0.001 * 5 * i)
        'Picture1.Line (i, FFT0(xr(i), xi(i),1024, 1))-(i + 1, FFT0(xr(i + 1), xi(i + 1), 1024, 1))
    Next i
    Call FFT0(xr(), xi(), 1024, 1)
    For i = 1 To 1023
        Picture1.Line (i, xr(i))-(i, xr(i + 1)), vbRed
        Picture1.Line (i, xi(i))-(i, xi(i + 1)), vbBlue
    Next
End Sub


Private Sub Form_Load()
    Picture1.DrawWidth = 2
    Picture1.Scale (-50, 50)-(1024 - 1, -50)
    Picture1.AutoRedraw = True
End Sub
我想在Picture1中输出傅里叶变换后的图形 也就是调用FFT0后输出图形 不知道能不能得到结果 求大侠们帮忙看看 帮忙改一下 谢谢了  --------------------编程问答--------------------
得到的是这玩意儿~ --------------------编程问答-------------------- 看不了啊 呜呜 --------------------编程问答-------------------- 1楼给的图看不到 --------------------编程问答-------------------- 我申请的CSDN照片上传还没结果~~~效率~~~
http://hi.baidu.com/%CA%AE%C1%F9%D2%B9r/album
在这里面~ --------------------编程问答-------------------- 这是经过傅里叶变换的结果吗,搞不懂啊
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,