请高手解答
窗体组件是一个picturebox和一个button
以下代码为绘制正方体,错误原因是未处理的"system.ArgumentNullException"类
异常出现在system.drawing.dll中,请大师指点
Public Class Form1
Inherits System.Windows.Forms.Form
Dim p As System.Drawing.Graphics
Dim pen1 As System.Drawing.Pen
Dim math1 As System.Math
Dim p1, p2 As System.Drawing.PointF
Dim nn, col, h, r, n, flag As Single
Dim thx, thy, thz As Double
Dim x, y, z As Single
Const pi = 3.14159
Public Sub hueitu()
Dim gx, gy As Single
gx = 250 + x
gy = 180 + y
If flag = 0 Then p1.x = gx : p1.y = gy
flag = 1
p2.x = gx : p2.y = gy
p = PictureBox1.CreateGraphics
p.DrawLine(pen1, p1, p2)
End Sub
Private Sub rot_x()
Dim yw, zw As Single
yw = y : zw = z
y = yw * math1.Cos(thx) - zw * math1.Sin(thx)
z = yw * math1.Sin(thx) + zw * math1.Cos(thx)
End Sub
Private Sub rot_y()
Dim zw, xw As Single
zw = z : xw = x
x = zw * math1.Cos(thy) - xw * math1.Sin(thy)
z = zw * math1.Sin(thy) + xw * math1.Cos(thy)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Static ax(9), ay(9), az(9)
Static bx(9), by(9), bz(9)
PictureBox1.Refresh()
Dim th As Single
h = 90 : thy = 0.2 : thz = 0.4
flag = 0 : col = 0 : nn = 1
r = 90
n = 4
thx = 0.4
For th = 0 To 2 * pi + 0.1 Step 2 * pi / n
x = r * math1.Cos(th) : y = h : z = r * math1.Sin(th)
Call rot_y() : Call rot_x() : Call rot_z()
ax(nn) = x : ay(nn) = y : az(nn) = z
nn = nn + 1
Next th
flag = 0 : nn = 1
For th = 0 To 2 * pi + 0.1 Step 2 * pi / n
x = r * math1.Cos(th) : y = -h : z = r * math1.Sin(th)
Call rot_y() : Call rot_x() : Call rot_z()
bx(nn) = x : by(nn) = y : bz(nn) = z
nn = nn + 1
Next th
For nn = 1 To n
flag = 0 : x = ax(nn) : y = ay(nn)
Call hueitu()
x = ax(nn + 1) : y = ay(nn + 1)
Call hueitu()
x = bx(nn + 1) : y = by(nn + 1)
Call hueitu()
x = bx(nn) : y = by(nn)
Call hueitu()
x = ax(nn) : y = ay(nn)
Call hueitu()
Next nn
flag = 0
For nn = 1 To n + 1
x = ax(nn) : y = ay(nn) : z = az(nn)
Call hueitu()
Next nn
flag = 0
For nn = 1 To n + 1
x = bx(nn) : y = by(nn) : z = bz(nn)
Next nn
End Sub
Private Sub rot_z()
Dim xw, yw As Single
xw = x : yw = y
y = xw * math1.Cos(thz) - yw * math1.Sin(thz)
x = xw * math1.Sin(thz) + yw * math1.Cos(thz)
End Sub
End Class