看看四杆机构将VB程序改成C语言
我这里有一个关于四杆机构的VB程序请将它改成VC语言
Private Sub FANGZHEN_Click()
'确定绘图比例尺及运动时钟
jlsgjg.Cls
X = 6600
Y = 2300
CurrentX = X
CurrentY = Y
'寻找最长杆
XBMax = Abs(XB(0))
XCMax = Abs(XC(0))
XDMax = Abs(XD)
XMMax = Abs(XM(0))
YBMax = Abs(YB(0))
YCMax = Abs(YC(0))
YDMax = Abs(YD)
YMMax = Abs(YM(0))
For j = 1 To N - 1
If Abs(XB(j)) > XBMax Then XBMax = Abs(XB(j))
If Abs(XC(j)) > XCMax Then XCMax = Abs(XC(j))
If Abs(XM(j)) > XMMax Then XMMax = Abs(XM(j))
If Abs(YB(j)) > YBMax Then YBMax = Abs(YB(j))
If Abs(YC(j)) > YCMax Then YCMax = Abs(YC(j))
If Abs(YM(j)) > YMMax Then YMMax = Abs(YM(j))
Next j
XMax = XBMax
YMax = YBMax
If XCMax > XMax Then XMax = XCMax
If XDMax > XMax Then XMax = XDMax
If XMMax > XMax Then XMax = XMMax
If YCMax > YMax Then YMax = YCMax
If YDMax > YMax Then YMax = YDMax
If YMMax > YMax Then YMax = YMMax
'确定比例及运动时钟
XBL = X / XMax
YBL = Y / YMax
BL = XBL
If YBL < XBL Then BL = YBL
BL = BL * 0.9
TI = 1
If N <= 180 Then TI = 0.05
If N > 180 And N <= 360 Then TI = 0.5
'开始绘图
For j = 0 To N
'绘制机构最初位置图
ForeColor = RGB(0, 255, 0)
DrawWidth = 2
Line (X, Y)-(XB(j) * BL + X, Y - YB(j) * BL)
ForeColor = RGB(0, 100, 255)
Line (XB(j) * BL + X, Y - YB(j) * BL)-(XC(j) * BL + X, Y - YC(j) * BL)
ForeColor = RGB(100, 0, 255)
Line (XB(j) * BL + X, Y - YB(j) * BL)-(XM(j) * BL + X, Y - YM(j) * BL)
ForeColor = RGB(255, 100, 0)
Line (XC(j) * BL + X, Y - YC(j) * BL)-(XD * BL + X, Y - YD * BL)
ForeColor = RGB(100, 100, 100)
Line (X, Y)-(XD * BL + X, Y - YD * BL)
ForeColor = RGB(0, 0, 0)
DrawWidth = 1
Circle (X, Y), 60
Circle (XB(j) * BL + X, Y - YB(j) * BL), 60
Circle (XC(j) * BL + X, Y - YC(j) * BL), 60
Circle (XD * BL + X, Y - YD * BL), 60
'绘制机构运动图
For k = 0 To j - 1
XMM1 = XM(k) * BL + X
YMM1 = Y - YM(k) * BL
XMM2 = XM(k + 1) * BL + X
YMM2 = Y - YM(k + 1) * BL
If k = N - 1 Then XMM2 = XM(0) * BL + X: YMM2 = Y - YM(0) * BL
DrawWidth = 1
ForeColor = RGB(255, 0, 0)
Line (XMM1, YMM1)-(XMM2, YMM2)
Next k
'利用空循环来控制运动速度
For WAITE = 1 To 50000 Step TI
Next WAITE
'擦去原机构图
ForeColor = &H8000000F
DrawWidth = 2
Line (X, Y)-(XB(j) * BL + X, Y - YB(j) * BL)
Line (XB(j) * BL + X, Y - YB(j) * BL)-(XC(j) * BL + X, Y - YC(j) * BL)
Line (XB(j) * BL + X, Y - YB(j) * BL)-(XM(j) * BL + X, Y - YM(j) * BL)
Line (XC(j) * BL + X, Y - YC(j) * BL)-(XD * BL + X, Y - YD * BL)
DrawWidth = 1
Circle (X, Y), 60
Circle (XB(j) * BL + X, Y - YB(j) * BL), 60
Circle (XC(j) * BL + X, Y - YC(j) * BL), 60
Circle (XD * BL + X, Y - YD * BL), 60
Next j
'绘制最后位置机构图
ForeColor = RGB(0, 255, 0)
DrawWidth = 2
Line (X, Y)-(XB(j) * BL + X, Y - YB(j) * BL)
ForeColor = RGB(0, 100, 255)
Line (XB(0) * BL + X, Y - YB(0) * BL)-(XC(0) * BL + X, Y - YC(0) * BL)
ForeColor = RGB(100, 0, 255)
Line (XB(0) * BL + X, Y - YB(0) * BL)-(XM(0) * BL + X, Y - YM(0) * BL)
ForeColor = RGB(255, 100, 0)
Line (XC(0) * BL + X, Y - YC(0) * BL)-(XD * BL + X, Y - YD * BL)
ForeColor = RGB(100, 100, 100)
Line (X, Y)-(XD * BL + X, Y - YD * BL)
ForeColor = RGB(0, 0, 0)
DrawWidth = 1
Circle (X, Y), 60
Circle (XB(0) * BL + X, Y - YB(0) * BL), 60
Circle (XC(0) * BL + X, Y - YC(0) * BL), 60
Circle (XD * BL + X, Y - YD * BL), 60
End Sub
Private Sub Form_Load()
FANGZHEN.Enabled = False
TUICHU.Enabled = False
JISUAN.Enabled = False
End Sub
Private Sub JISUAN_Click()
'确定数据输出表格名称
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "FI1"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "FI2"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "FI3"
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "W2"
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "W3"
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "E2"
MSFlexGrid1.Col = 6
MSFlexGrid1.Text = "E3"
MSFlexGrid1.Col = 7
MSFlexGrid1.Text = "XM"
MSFlexGrid1.Col = 8
MSFlexGrid1.Text = "YM"
MSFlexGrid1.Col = 9
MSFlexGrid1.Text = "VM"
MSFlexGrid1.Col = 10
MSFlexGrid1.Text = "BV"
MSFlexGrid1.Col = 11
MSFlexGrid1.Text = "AM"
MSFlexGrid1.Col = 12
MSFlexGrid1.Text = "BA"