vb实例菜单中的SIN曲线上面还有个小球沿着运动 谁把程序发给我 邮箱925521287@qq.com 高分悬赏

 我来答
yiyiarrow
2012-06-14 · TA获得超过391个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:425万
展开全部
private sub form_load()
Me.ScaleMode = 0

Me.Scale (-8, 2.2)-(8, -2.2)

Me.DrawWidth = 1

Me.Line (-7.5, 0)-(7.5, 0), vbBlack

Me.Line (0, -2)-(0, 2), vbBlack

Me.CurrentX = 7.6

Me.CurrentY = 0

Print "X"

Me.CurrentX = 0.1

Me.CurrentY = 2

Print "Y"

'绘制X轴刻度线

For i = -7 To 7

Me.Line (i, 0)-(i, 0.1)

Me.CurrentX = i - 0.2

Me.CurrentY = -0.1

Print i

Next i

'绘制Y轴刻度线

For i = -1 To 1

Me.Line (0, i)-(0.2, i)

Me.CurrentX = -0.5

Me.CurrentY = i + 0.1

If i <> 0 Then Print i

Next i

'绘制Sin曲线

For j = -2 * PI To 2 * PI Step PI / 500

Me.PSet (j, Sin(j)), vbRed

Next j

这里,我设置将一个周期之间描500个点,这样就比较平滑了。如果愿意,你可以调到更高,当然,太高了也没什么意义,因为屏幕分辨率有限,再者还可能出现卡顿现象。

重点是小球的滚动了。显然是不能围绕各个点直接绘制一个个圆的,根本就不能擦除。我想到的办法就是建立一个picturebox控件,在里面画一个圆形,把它填充成示例程序要求的样子,代码如下:

'绘制小球为白色背景,并以交叉直线填充之

DynamicBall.Scale (-1.1, 1.1)-(1.1, -1.1) ‘设置坐标系

DynamicBall.FillStyle = 0

DynamicBall.FillColor = vbWhite

DynamicBall.Circle (0, 0), 1 ‘画一个白色背景的圆形

DynamicBall.FillStyle = vbCross ‘画方格线

DynamicBall.FillColor = vbRed ‘画红色

DynamicBall.Circle (0, 0), 1, vbRed ‘实现方格线填充

这里需要注意,应该将picturebox的外观修改下,让它的3D凹陷效果去掉,并让它的默认背景色和窗体一样,这样才能看起来只有一个球而不是一个方块。同时,窗体的AutoDraw属性要设置为true,否则小球滑动一遍,那么绘制好的sin曲线就被擦除了。

小球的滑动动作当然要依赖于定时器了,速度取决于两个方面:定时器的interval和你设定的滑动距离。所谓滑动,实际上就是一个点一个点的跳动,不过跳动的距离比较小,感觉像是在滑动。Interval越小,滑动越快,因为一秒内执行的调动函数次数越多,但是也越平滑。滑动距离越大,速度也会加快,但是却越不平滑。可以根据自己的需要调节。具体代码如下:

Private Sub Timer1_Timer()

Dim loca_x As Double, loca_y As Double

circle_x = circle_x + PI / 30 '除号后面的值越大,小球滑动越平滑,但是速度也会越慢

loca_x = circle_x - DynamicBall.Width / 2

loca_y = Sin(circle_x) + DynamicBall.Height / 2

DynamicBall.Move loca_x, loca_y

If circle_x >= 2 * PI Then

circle_x = 2 * PI

loca_x = circle_x - DynamicBall.Width / 2

loca_y = Sin(circle_x) + DynamicBall.Height / 2

DynamicBall.Move loca_x, loca_y

Timer1.Enabled = False

End If

End Sub
追问
麻烦你做出来把程序发给我邮箱里行吗
追答
已发 yiyifal@163.com
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式