小弟初学VB,碰到一题目不解,求各位大哥大姐指导,请把代码回我参考一下(题目肯定简单,不花多少时间的,先在这里谢了)
题目:
程序启动后,一个蓝色的小圆围绕红色大圆沿椭圆轨迹运行(红色大圆须在屏幕中心),椭圆的参数方程为x=x1+HR*cos(a),y=y1+VR*sin(a),其中x1,y1为椭圆圆心坐标,HR,VR为水平和垂直半径,a为圆心角;
在窗体加入形状控件Shape1,Shape2分别作为红色大圆和蓝色小圆;
将定时器Timer1的时间间隔设置为1秒。 再次感谢
过几天就要交了急啊
题目:
程序启动后,一个蓝色的小圆围绕红色大圆沿椭圆轨迹运行(红色大圆须在屏幕中心),椭圆的参数方程为x=x1+HR*cos(a),y=y1+VR*sin(a),其中x1,y1为椭圆圆心坐标,HR,VR为水平和垂直半径,a为圆心角;
在窗体加入形状控件Shape1,Shape2分别作为红色大圆和蓝色小圆;
将定时器Timer1的时间间隔设置为1秒。 再次感谢
过几天就要交了急啊
理清楚各个量之间的关系就Ok了
Const PI = 3.1415926
Const Aspect = 0.5
Dim JiaoDu As SinglePrivate Sub Form_Load()
JiaoDu = 0
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Me.Cls
If JiaoDu > (180 / PI) * 360 Then
JiaoDu = 0
Else
JiaoDu = JiaoDu + 5 / (180 / PI)
End If
Circle (Me.ScaleWidth / 2, Me.ScaleHeight / 2), 1500, vbRed, , , Aspect
Circle (Me.ScaleWidth / 2 + 1500 * Cos(JiaoDu), Me.ScaleHeight / 2 + 1500 * Aspect * Sin(JiaoDu)), 200, vbBlue
End Sub
Dim HR, VR As Integer
Dim X1, Y1 As Double
Dim A As DoublePrivate Sub Form_Click()
Timer1.Enabled = True
End SubPrivate Sub Form_Load()
'窗口占全屏
Me.Width = Screen.Width
Me.Height = Screen.Height
Me.Left = 0
Me.Top = 0
'椭圆处于中心
Shape1.Height = Me.ScaleHeight
Shape1.Width = Me.ScaleWidth
Shape1.Left = 0
Shape1.Top = 0
'让二成为圆
Shape2.Width = Shape2.Height
'放置到椭圆上。
Shape2.Left = Me.ScaleWidth - Shape2.Width / 2
Shape2.Top = Me.ScaleHeight / 2 - Shape2.Height / 2
Y1 = Me.ScaleHeight / 2
X1 = Me.ScaleWidth / 2
HR = X1
VR = Y1
End SubPrivate Sub Timer1_Timer()
'绕行代码
x = X1 + HR * Cos(A)
y = Y1 + VR * Sin(A)
A = A + PI/ 10 '步长,可以自己修改,
If A > 2 * PI Then A = 0
Shape2.Left = x - Shape2.Width / 2
Shape2.Top = y - Shape2.Height / 2
End Sub
可能是理解错误
不是 蓝色小球 沿 红色椭圆轨迹 运行,
而应该是 一个蓝色的小圆 围绕 红色大圆 沿 椭圆轨迹 运行Fashionxu() 朋友的我设了颜色后还是看不到两个球,
请你直接把程序发给我吧
邮箱:[email protected]非常感谢两位的帮忙