三视图+正轴测投影(图形学)-vb

来源:互联网 发布:淘宝床大件退货拒签 编辑:程序博客网 时间:2024/06/04 01:37

 三视图+正轴测投影(图形学)-vb

Option Explicit
Dim x, y, z, s, e
Dim i As Integer
Dim x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer
Dim ax As Integer, ay As Integer, bx As Integer, by As Integer, cx As Integer, cy As Integer

Private Sub Command1_Click()  '正视图
Label3.Visible = True
ax = Val(Text1.Text)
ay = Val(Text2.Text)
For i = 0 To 11
    x1 = x(s(i)): y1 = y(s(i))
    x2 = x(e(i)): y2 = y(e(i))
    Picture1.Line ((x1 + ax), (y1 + ay))-((x2 + ax), (y2 + ay)), vbRed
Next i
For i = 11 To 23
    x1 = x(s(i)): y1 = y(s(i))
    x2 = x(e(i)): y2 = y(e(i))
    Picture1.Line ((x1 + ax), (y1 + ay))-((x2 + ax), (y2 + ay)), vbRed
Next i
End Sub

Private Sub Command2_Click()  '侧视图
Label4.Visible = True
bx = Val(Text3.Text)
by = Val(Text4.Text)
For i = 0 To 11
    x1 = z(s(i)) + bx: y1 = y(s(i)) + by
    x2 = z(e(i)) + bx: y2 = y(e(i)) + by
    Picture1.Line (x1, y1)-(x2, y2), vbGreen
Next i
For i = 11 To 23
    x1 = z(s(i)) + bx: y1 = y(s(i)) + by
    x2 = z(e(i)) + bx: y2 = y(e(i)) + by
    Picture1.Line (x1, y1)-(x2, y2), vbGreen
Next i
End Sub

Private Sub Command3_Click()  '俯视图
Label5.Visible = True
cx = Val(Text5.Text)
cy = Val(Text6.Text)
For i = 0 To 11
    x1 = x(s(i)) + cx: y1 = -z(s(i)) + cy
    x2 = x(e(i)) + cx: y2 = -z(e(i)) + cy
    Picture1.Line (x1, y1)-(x2, y2), vbBlue
Next i
For i = 12 To 23
    x1 = x(s(i)) + cx: y1 = -z(s(i)) + cy
    x2 = x(e(i)) + cx: y2 = -z(e(i)) + cy
    Picture1.Line (x1, y1)-(x2, y2), vbBlue
Next i
End Sub

Private Sub Command4_Click()
Picture1.Cls
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
End Sub

Private Sub Command5_Click()
End
End Sub

Private Sub Command6_Click()  '正轴测投影
Label6.Visible = True
Dim f As Single
Dim c As Single
Dim dx As Integer, dy As Integer
dx = Val(Text7.Text): dy = Val(Text8.Text)
f = 45 * 3.14 / 180
c = f
For i = 0 To 11
    x1 = x(s(i)) * Cos(f) + z(s(i)) * Sin(f) + dx
    y1 = x(s(i)) * Sin(f) * Sin(c) + y(s(i)) * Cos(c) - z(s(i)) * Cos(f) * Sin(c) + dy
    x2 = x(e(i)) * Cos(f) + z(e(i)) * Sin(f) + dx
    y2 = x(e(i)) * Sin(f) * Sin(c) + y(e(i)) * Cos(c) - z(e(i)) * Cos(f) * Sin(c) + dy
    Picture1.Line (x1, y1)-(x2, y2), vbRed
Next i
For i = 12 To 23
    x1 = x(s(i)) * Cos(f) + z(s(i)) * Sin(f) + dx
    y1 = x(s(i)) * Sin(f) * Sin(c) + y(s(i)) * Cos(c) - z(s(i)) * Cos(f) * Sin(c) + dy
    x2 = x(e(i)) * Cos(f) + z(e(i)) * Sin(f) + dx
    y2 = x(e(i)) * Sin(f) * Sin(c) + y(e(i)) * Cos(c) - z(e(i)) * Cos(f) * Sin(c) + dy
    Picture1.Line (x1, y1)-(x2, y2), vbRed
Next i
End Sub

Private Sub Form_Load()
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
x = Array(0, 1000, 1000, 0, 0, 1000, 1000, 0, 0, 500, 500, 0, 0, 500, 500, 0)
y = Array(0, 0, 2000, 2000, 0, 0, 2000, 2000, 2000, 2000, 3000, 3000, 2000, 2000, 3000, 3000)
z = Array(0, 0, 0, 0, 3000, 3000, 3000, 3000, 0, 0, 0, 0, 1500, 1500, 1500, 1500)
s = Array(0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11)
e = Array(1, 2, 3, 0, 5, 6, 7, 4, 4, 5, 6, 7, 8, 10, 11, 8, 13, 14, 15, 12, 12, 13, 14, 15)
End Sub

原创粉丝点击