求大神帮忙解释一下这个程序每一句都是什么意思 万分感谢!

OptionExplicitPrivateL(7)AsIntegerPrivateJd(7)AsDoublePrivatezjAsDoublePrivateSubForm... Option Explicit
Private L(7) As Integer
Private Jd(7) As Double
Private zj As Double

Private Sub Form_Load()
Dim i As Integer

For i = 1 To 7
Me.Circle (4000, 4000), i * 500
Shape1(i - 1).Top = 4000 - 90
Shape1(i - 1).Left = 4000 + i * 500 - 90
L(i) = i * 500
Jd(i) = 0
HScroll1(i - 1).Max = 1000
HScroll1(i - 1).Min = 100
HScroll1(i - 1).Value = 100
HScroll1(i - 1).SmallChange = 5
HScroll1(i - 1).LargeChange = 100
Next i

zj = 10 / 180 * 3.141592654

End Sub

Private Sub HScroll1_Change(Index As Integer)

Timer1(Index).Interval = 1100 - HScroll1(Index).Value

End Sub

Private Sub Timer1_Timer(Index As Integer)
Jd(Index + 1) = Jd(Index + 1) + zj
Shape1(Index).Left = 4000 + L(Index + 1) * Cos(Jd(Index + 1)) - 90
Shape1(Index).Top = 4000 - L(Index + 1) * Sin(Jd(Index + 1)) - 90
End Sub
展开
 我来答
未来融合V5
2016-10-20
知道答主
回答量:1
采纳率:0%
帮助的人:1069
展开全部
这是VB5或者6的代码目测。
VB的代码需要两部分,一部分是界面的frm文件,另外一部分就是你看到的代码

目前没有界面的设计,单看代码是很难看明白的
大致理解就是

Option Explicit '变量不定义不许用
Private L(7) As Integer '定义一个整型数组L,下标从1~7
Private Jd(7) As Double '定义一个双精度类型数组,下标1~7
Private zj As Double '定义一个双精度变量
'以上都是全局变量

Private Sub Form_Load() '程序入口
Dim i As Integer '定义一个整型局部变量i

For i = 1 To 7 '循环7次,每次i的值对应1~7
Me.Circle (4000, 4000), i * 500 '在界面上画一个圆,圆心是4000,4000,半径是i*500,也就是说,循环之后,目测会有7个同心圆
Shape1(i - 1).Top = 4000 - 90 '这个显然是shape控件,而且做了控件数组,由于没有frm文件,所以只能猜测了,这个意思是说把对应的这个控件的高度变成4000-90
Shape1(i - 1).Left = 4000 + i * 500 - 90 '同上,把对应的控件的左上角的x坐标变成后面这个运算出来的结果,这两句结合起来,目测就是有7个同一高度但是横着排列的形状,具体啥形状要看frm,这里无法猜测,总之这些形状基本就是左上角贴着上面的那些同心圆沿着圆心向右打出的射线和这些圆的交点
L(i) = i * 500 'L这个全局变量对应的值就是500,1000,1500等等
Jd(i) = 0 'Jd所有7个下标都是0
HScroll1(i - 1).Max = 1000 '这是一个横向的滚动条控件,和之前的Shape一样,是个控件数组,这样看来目测也是有7个,每个的最大值是1000
HScroll1(i - 1).Min = 100 '最小值是100
HScroll1(i - 1).Value = 100 '初始值是100
HScroll1(i - 1).SmallChange = 5 '如果点了滚动条两侧的箭头,一次滚5
HScroll1(i - 1).LargeChange = 100 '如果点了滚动条的块和箭头中间的区域,一次性滚100
Next i '循环结束

zj = 10 / 180 * 3.141592654 '这个应该是10度(角度)对应的弧度,目测是备用

End Sub

Private Sub HScroll1_Change(Index As Integer) '当滚动条的值发生变化的时候(用户滚动)
Timer1(Index).Interval = 1100 - HScroll1(Index).Value '当滚动条滚动的时候,对应的计数器的触发频率会发生变化,简单来说,滚动条越拉满,频率越高,最快1秒10次,最慢1秒1次。而且从这里可以看出,计数器控件也是个控件数组,可能form_load的时候这些计数器会被默认触发,十几年没有玩VB了,有点忘记了,汗
End Sub

Private Sub Timer1_Timer(Index As Integer) '当计数器时间到(每多少毫秒执行一次)
Jd(Index + 1) = Jd(Index + 1) + zj 'Jd数组对应的值增加10度角
Shape1(Index).Left = 4000 + L(Index + 1) * Cos(Jd(Index + 1)) - 90 '对应的形状的x坐标变成L数组对应的值然后运算
Shape1(Index).Top = 4000 - L(Index + 1) * Sin(Jd(Index + 1)) - 90 'y坐标也相对角度进行运算
End Sub

'看完以上代码,基本就明白这个程序干嘛的了,虽然没有frm,但是也看个七七八八,就是,画了9个同心圆,然后九个形状,不知道是啥具体的样子,反正就是9个,围绕着这9个圆转动,然后有9个滚动条,控制这些形状的转动速度,说到这里你明白了吗?感觉就像是模拟了太阳系九个行星的运动(虽然我也知道现在就算8个,而且也不是标准的同心圆),基本就是这个意思了

'求大量打赏
匿名用户
2015-05-11
展开全部
吓尿了,这么多代码。。。
追问
帮个忙呗~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式