用timer控制PSET循环画正弦图

wxfx78 2019-02-17 10:18:33
vb超级菜鸟,请教各位大虾。帮下忙!
程序:使用pset函数在坐标画点,形成正弦画图,但我想用TIMER来控制每画一点停顿1秒,画函数图像的时候没有那么快了。
Dim x As Double
Dim y As Double
For x = -3.14 To 3.14 Step 0.001
y = Sin(x)
Picture1.PSet (x, y), RGB(255, 0, 0)

这里我加上
Timer1.Enabled = True
Timer1.Interval = 1000


timer控件
Private Sub Timer1_Timer()
Dim a As Long
a = 2000
Do
a = a - 1000
Loop While a = 0
Timer1.Enabled = False
End Sub


属性设计里我也设置了Timer1.Enabled = False interval=1000 可程序控制不了,依旧不到1秒画完图,期间也用了SLEEP函数,不好用,图像有时间快有时慢,请各位大虾指点。
...全文
286 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxfx78 2019-02-26
  • 打赏
  • 举报
回复
我是初学者,很高兴能有你这位大虾给我一点一滴,基本符合我的要求,但苦于我的水平,和您差距太大了,我的慢慢消化理解,我也不可能每有一点问题就来问,只能靠自己了 。看您写的程序,再看自己,学习再学习吧。再次说声谢谢。
脆皮大雪糕 2019-02-18
  • 打赏
  • 举报
回复


Option Explicit
Dim x As Double '逻辑X

Private Sub Command1_Click()

    '绘制坐标轴
    Picture1.Line (0, Picture1.ScaleHeight / 2)-(Picture1.ScaleWidth, Picture1.ScaleHeight / 2), vbBlue
    Picture1.Line (Picture1.ScaleWidth / 2, 0)-(Picture1.ScaleWidth / 2, Picture1.ScaleHeight), vbBlue
    
    '逻辑X起始值
    x = -3.14
    '设置画图起点坐标
    Picture1.CurrentX = 0
    Picture1.CurrentY = Picture1.ScaleHeight / 2
    
    Timer1.Enabled = True
    Timer1.Interval = 50 '50毫秒步进一次,你原来要求1秒一次太特么慢了,我受不了
End Sub

Private Sub Form_Load()
    Form1.ScaleMode = 3
    Picture1.Appearance = 0
    Picture1.ScaleMode = 3
    Picture1.AutoRedraw = True
End Sub

Private Sub Timer1_Timer()
    Dim PX As Long, PY As Long  '实际画图坐标X,Y
    PX = (x - -3.14) / (2 * 3.14) * Picture1.ScaleWidth  '计算实际画图坐标X
    PY = Picture1.ScaleHeight - (Sin(x) - -1) / 2 * Picture1.ScaleHeight '计算实际画图坐标Y
    Picture1.Line -(PX, PY), vbRed '用line 而不用pset,不会出现空点的情况
    x = x + 0.01 '逻辑X步进0.01 你的源代码0.001太特么小了,一秒一个0.001画一个2π要两个小时
End Sub

wxfx78 2019-02-18
  • 打赏
  • 举报
回复
能具体点吗?上面FOR循环,直接拿下来,停顿了1秒开始画图了,并不是,每画一点停一秒。
脆皮大雪糕 2019-02-18
  • 打赏
  • 举报
回复
你的画图代码要放在timer事件里,每一秒触发一次timer事件,画一个点。 你现在的代码是先把图画好了,然后再去开启timer,让timer每秒做了一个无意义的循环。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧