Sub drawit(ByVal a As Double, ByVal k As Double, ByVal color As Long)
Picture1.Scale (0, 0.0005)-(100000, 0)
Picture1.PSet (10, (a / 10 + k)), color
For i = 20 To 100000 Step 10
Picture1.Line -(i, (a / i + k)), color
'Picture1.PSet (i, (a / i + k)), color
Next
End Sub
Private Sub Form_Load()
Me.WindowState = 2
Me.Show
Picture1.Left = 0
Picture1.Top = 0
Picture1.Width = Me.Width
Picture1.Height = Me.Height
Picture1.AutoRedraw = True
End Sub
Private Sub Picture1_Click()
'Dim a As Double
'Dim k As Double
a = InputBox("请输入a的值:")
k = InputBox("请输入k的值:")
If IsNumeric(a) And IsNumeric(k) Then
drawit a, k, QBColor(a Mod 15)
End If
End Sub
如果你要同时输入a和k的值,上面的代码可能要注意a和k的取值,例如,如果a=4,那么在我的机子里k要到0.00005才见到效果,k=0.0005时在屏幕上就看不到效果了,因为画了到屏幕外面去了。。。如果不要这么小的值可以改上面的为:
Sub drawit(ByVal a As Double, ByVal k As Double, ByVal color As Long)
Picture1.Scale (0, 0.05)-(1000, 0)
Picture1.PSet (10, (a / 10 + k)), color
For i = 20 To 1000 Step 10
Picture1.Line -(i, (a / i + k)), color
'Picture1.PSet (i, (a / i + k)), color
Next
End Sub
但是图像不能保存啊!也就是说当窗体间进行切换后,图像就不在了!或者当把picturebox的一半移出电脑屏幕后再移回来,移出去的部分所绘出的图形也就不在了!我是想在窗体切换之后图像还保留在picturebox中!这怎么解决啊??
==============================
不是吧,连这个也问。。。最重要地是你满不满意上面代码的效果,如果勉强可以接受那么就加几句:
Dim s As Long
Sub drawit(ByVal a As Double, ByVal k As Double, ByVal color As Long)
Picture1.Scale (0, 0.0005)-(100000, 0)
Picture1.PSet (10, (a / 10 + k)), color
For i = 10 To 100000 Step 10
Picture1.Line -(i, (a / i + k)), color
'Picture1.PSet (i, (a / i + k)), color
Next
End Sub
Private Sub Form_Load()
Me.WindowState = 2
Me.Show
Picture1.Left = 0
Picture1.Top = 0
Picture1.Width = Me.Width
Picture1.Height = Me.Height
Picture1.AutoRedraw = True
End Sub
Private Sub Picture1_Click()
s = s + 1
drawit s, 0, QBColor(s Mod 15)
End Sub
要做到平滑不容易啊。。。修改了一下 northwolves(野性的呼唤)的程序,看看行不行:
Dim s As Long
Private Sub Command1_Click()
s = s + 1
drawit s, 0, QBColor(s Mod 15)
End Sub
Sub drawit(ByVal a As Double, ByVal k As Double, ByVal color As Long)
Picture1.Scale (0, 0.0005)-(100000, 0)
Picture1.PSet (10, (a / 10 + k)), color
For i = 10 To 100000 Step 10
Picture1.Line -(i, (a / i + k)), color
'Picture1.PSet (i, (a / i + k)), color
Next
End Sub
Private Sub Command1_Click()
s = s + 1
drawit s, 0, QBColor(s Mod 15)
End Sub
Sub drawit(ByVal a As Double, ByVal k As Double, ByVal color As Long)
Picture1.Scale (0, 0.05)-(1000, 0)
For i = 10 To 1000 Step 10
Picture1.PSet (i, (a / i + k)), color
Next
End Sub