7,763
社区成员
发帖
与我相关
我的任务
分享
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