如何做一个vb小球沿余弦曲线运动

(1)一个实心小红球沿cos(x)的曲线匀速运动(2)速度和曲线区间可以由用户自行设置(3)运动过程可随时停止和启动(4)能够将图片以图片形式保存... (1)一个实心小红球沿cos(x)的曲线匀速运动
(2)速度和曲线区间可以由用户自行设置
(3)运动过程可随时停止和启动
(4)能够将图片以图片形式保存
展开
 我来答
志在必得6642
2018-07-03 · 超过28用户采纳过TA的回答
知道答主
回答量:37
采纳率:70%
帮助的人:23.2万
展开全部

你这里面,在复制代码的时候没法进行格式化,凑合看吧,按照下面的程序设计,把下面的代码赋值过去应该就能用了。

界面设计如下:

一个Picturebox,两个textbox,一个Timer,三个command按钮 

运行效果: 

代码如下:

Dim a() As String '存放区间的值


Dim b As Single '存放圆球的实时x坐标


Dim n As Boolean    '区间改变时从起点开始移动

Private Sub Command1_Click()


Timer1.Interval = Val(Text1.Text) * 1000    '设置移动速度


Timer1.Enabled = True


a = Split(Text2.Text, ",")


n = True


If n Then


b = Val(a(0))


End If


Call DrawTheXY


Picture1.Circle (b, Cos(b)), (a(1) - a(0)) / 50, RGB(255, 0, 0)

End Sub

Private Sub Command2_Click()


Timer1.Enabled = False


Picture1.Circle (b, Cos(b)), (a(1) - a(0)) / 50, RGB(255, 0, 0)


End Sub

Private Sub Command3_Click() '保存图片


SavePicture Picture1.Image, "D:\1.jpg"


End Sub

Private Sub Form_Load()


Picture1.AutoRedraw = True


Picture1.FillStyle = 0


Picture1.FillColor = RGB(255, 0, 0)


End Sub

Function DrawTheXY()    '自定义函数,根据给定的区间画出余弦曲线


Picture1.Cls



If Val(a(0)) < 0 And Val(a(1)) > 0 Then


Picture1.AutoRedraw = True


Picture1.Scale (Val(a(0)) * 1.1, 2)-(Val(a(1)) * 1.1, -2)


Picture1.Line (Val(a(0)) * 1.05, 0)-(Val(a(1)) * 1.05, 0)


Picture1.Line (0, 1.5)-(0, -1.5)


Picture1.Line (Val(a(1)) * 1.05, 0)-(Val(a(1)) * 1, 0.1)


Picture1.Line (Val(a(1)) * 1.05, 0)-(Val(a(1)) * 1, -0.1)


Picture1.Line (0, 1.5)-(-Val(a(1)) * 0.03, 1.3)


Picture1.Line (0, 1.5)-(Val(a(1)) * 0.04, 1.3)


Picture1.CurrentX = -Val(a(1)) * 0.1


Picture1.CurrentY = 1.5


Picture1.Print "Y"


Picture1.CurrentX = Val(a(1)) * 1.05


Picture1.CurrentY = -0.1


Picture1.Print "X"


Picture1.CurrentX = Val(a(1)) * 0.03


Picture1.CurrentY = -0.05


Picture1.Print "0"


For i = Val(a(0)) To Val(a(1)) Step 0.001


Picture1.PSet (i, Cos(i))


Next i



Else


If Val(a(1)) <= 0 Then


Picture1.AutoRedraw = True


Picture1.Scale (Val(a(0)) * 1.1, 2)-(Val(a(1)) * 0.9, -2)


Picture1.Line (Val(a(0)) * 1.05, 0)-(Val(a(1)) * 0.95, 0)


For i = Val(a(0)) To Val(a(1)) Step 0.001


Picture1.PSet (i, Cos(i))


Next i


End If


If Val(a(0)) >= 0 Then


Picture1.AutoRedraw = True


Picture1.Scale (Val(a(0)) * 0.9, 2)-(Val(a(1)) * 1.1, -2)


Picture1.Line (Val(a(0)) * 0.95, 0)-(Val(a(1)) * 1.05, 0)

For i = Val(a(0)) To Val(a(1)) Step 0.001


Picture1.PSet (i, Cos(i))


Next i


End If

End If


End Function

Private Sub Text2_Change()


n = True


End Sub

Private Sub Timer1_Timer() '控制小球的移动


b = b + (Val(a(1)) - Val(a(0))) * 0.001


If b >= Val(a(1)) Then


b = Val(a(0))


End If


n = False


Picture1.Cls


Call DrawTheXY


Picture1.Circle (b, Cos(b)), (a(1) - a(0)) / 50, RGB(255, 0, 0)


End Sub

富港检测技术(东莞)有限公司_
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式