永发信息网

用VB实现偏置式曲柄摇杆机构源码……

答案:1  悬赏:60  手机版
解决时间 2021-05-08 18:08
  • 提问者网友:且恨且铭记
  • 2021-05-08 09:05
我有源码但是不能让它运行起来 能否帮我完善下?

偏置式曲柄滑块机构~!真的很急的 ~!

Private Sub Form_Load()
Const pi = 3.1415926
Dim angle As Integer
Me.ScaleMode = 3
Me.Caption = "曲柄滑块机构的演示"
Me.Width = 10000
Me.Height = 6000
Picture1.ScaleMode = 2
Picture1.AutoRedraw = True
Picture1.Move 0, 0, Me.ScaleWidth, 300
Command1.Caption = "开始(&B)"
Command1.Move 20, 320, 70, 30
Label1.Caption = "速度:"
Label1.Move 280, 330, 100, 30
HScroll1.Min = 1
HScroll1.Max = 20
HScroll1.Move 320, 320, 200, 30
Timer1.Interval = 1
Timer1.Enabled = False
End Sub
Private Sub Command1_Click()
Timer1.Enabled = Not Timer1.Enabled
If Timer1.Enabled Then
Command1.Caption = "暂停(&S)"
Timer1.Enabled = True
Else
Command1.Caption = "开始(&B)"
Timer1.Enabled = False
End If
End Sub
Sub draw(ByVal ox As Integer, ByVal oy As Integer, ByVal orad As Integer) 'ox,oy圆心坐标,orad半径
orad = 42.36
angle = (angle + HScroll1.Value) Mod 360
xo = ox + orad * Cos(angle * pi / 180) '圆周上的铰链点坐标(xo,yo)
yo = oy + 89.32 + orad * Sin(angle * pi / 180)
xs = Sqr((3 * orad) ^ 2 - 10 ^ 2) + xo '滑块的左边界x坐标,连杆长度取3*orad,滑块高度取20(像素)
Picture1.BackColor = Picture1.BackColor
Picture1.DrawStyle = 0 '实线
Picture1.DrawWidth = 2 '线宽2
Picture1.Line (ox + 2 * orad, oy)-(ox + 6 * orad, oy) '壁面
Picture1.Line (ox, oy + 89.32)-(xo, yo), vbRed '连接圆心与圆周上的铰链点
Picture1.Line (xs, oy - 10)-(xo, yo), vbBlue '连接滑块与圆周上的铰链点
Picture1.FillStyle = 1 '透明填充
Picture1.Circle (ox, oy + 89.32), 42.36 '画圆
Picture1.FillStyle = 0 '实体填充
Picture1.FillColor = vbWhite '圆心
Picture1.Circle (ox, oy + 89.32), 5
Picture1.FillColor = vbGreen '圆周上的铰链点
Picture1.Circle (xo, yo), 4
Picture1.FillColor = vbYellow '滑块
Picture1.Line (xs, oy - 20)-(xs + 30, oy), , B
Picture1.DrawStyle = 2 '虚线
Picture1.DrawWidth = 1 '线宽1
For I = 0 To 9 '表示壁面的虚线
Picture1.Line (I * 4 * orad / 10 + ox + 2.2 * orad, oy)-(I * 4 * orad / 10 + ox + 1 * orad + 20, oy + 10)
Next
End Sub

Private Sub Picture1_Click()

End Sub

Private Sub Timer1_Timer() '画
draw 135, 60, 40
t = t + 1
ox = ox + orad * Sin(pi * t / 10) - orad '
oy = oy + 89.32 - orad * Cos(pi * t / 10) - orad
xo = ox + orad * Cos(angle * pi / 180) '
yo = oy + 89.32 + orad * Sin(angle * pi / 180)

End Sub

最佳答案
  • 五星知识达人网友:孤老序
  • 2021-05-08 10:00

在Private Sub Timer1_Timer()中定义t,ox,oy,xo,yo等为静态参数


static t


static ox


...

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯