Friend cartsystem As New CoordinateSystem.Cartesian(250, 250, 0, Operations.Angles.Radians(0), Operations.Angles.Radians(45), Operations.Angles.Radians(45), 1)
Friend cartorig As New Coordinate.Cartesian(cartsystem, -50, -50, -50)
Friend cartx As New Coordinate.Cartesian(cartsystem, 50, -50, -50)
Friend carty As New Coordinate.Cartesian(cartsystem, -50, 50, -50)
Friend cartz As New Coordinate.Cartesian(cartsystem, -50, -50, 50)
Friend cartxy As New Coordinate.Cartesian(cartsystem, 50, 50, -50)
Friend cartxz As New Coordinate.Cartesian(cartsystem, 50, -50, 50)
Friend cartyz As New Coordinate.Cartesian(cartsystem, -50, 50, 50)
Friend cartxyz As New Coordinate.Cartesian(cartsystem, 50, 50, 50)
Friend myview As New CoordinateSystem.Cartesian(250, 250)
Friend Sub drawcube()
Dim graphics As System.Drawing.Graphics = PictureBox1.CreateGraphics
Dim coordorig As Coordinate.Cartesian
Dim coordx As Coordinate.Cartesian
Dim coordy As Coordinate.Cartesian
Dim coordz As Coordinate.Cartesian
Dim coordxy As Coordinate.Cartesian
Dim coordxz As Coordinate.Cartesian
Dim coordyz As Coordinate.Cartesian
Dim coordxyz As Coordinate.Cartesian
coordorig = cartorig
coordorig = Operations.Transform.Coordinate(cartorig, myview)
coordx = Operations.Transform.Coordinate(cartx, myview)
coordy = Operations.Transform.Coordinate(carty, myview)
coordz = Operations.Transform.Coordinate(cartz, myview)
coordxy = Operations.Transform.Coordinate(cartxy, myview)
coordxz = Operations.Transform.Coordinate(cartxz, myview)
coordyz = Operations.Transform.Coordinate(cartyz, myview)
coordxyz = Operations.Transform.Coordinate(cartxyz, myview)
Dim wpen As New System.Drawing.Pen(System.Drawing.Color.LemonChiffon)
Dim xpen As New System.Drawing.Pen(System.Drawing.Color.Green)
Dim ypen As New System.Drawing.Pen(System.Drawing.Color.DodgerBlue)
Dim zpen As New System.Drawing.Pen(System.Drawing.Color.Red)
graphics.DrawLine(wpen, CInt(cartsystem.XOffset + coordorig.X), CInt(cartsystem.YOffset - coordorig.Y), CInt(cartsystem.XOffset + coordx.X), CInt(cartsystem.YOffset - coordx.Y))
graphics.DrawLine(wpen, CInt(cartsystem.XOffset + coordorig.X), CInt(cartsystem.YOffset - coordorig.Y), CInt(cartsystem.XOffset + coordy.X), CInt(cartsystem.YOffset - coordy.Y))
graphics.DrawLine(wpen, CInt(cartsystem.XOffset + coordorig.X), CInt(cartsystem.YOffset - coordorig.Y), CInt(cartsystem.XOffset + coordz.X), CInt(cartsystem.YOffset - coordz.Y))
graphics.DrawLine(xpen, CInt(cartsystem.XOffset + coordxy.X), CInt(cartsystem.YOffset - coordxy.Y), CInt(cartsystem.XOffset + coordy.X), CInt(cartsystem.YOffset - coordy.Y))
graphics.DrawLine(xpen, CInt(cartsystem.XOffset + coordxy.X), CInt(cartsystem.YOffset - coordxy.Y), CInt(cartsystem.XOffset + coordx.X), CInt(cartsystem.YOffset - coordx.Y))
graphics.DrawLine(xpen, CInt(cartsystem.XOffset + coordxy.X), CInt(cartsystem.YOffset - coordxy.Y), CInt(cartsystem.XOffset + coordxyz.X), CInt(cartsystem.YOffset - coordxyz.Y))
graphics.DrawLine(ypen, CInt(cartsystem.XOffset + coordyz.X), CInt(cartsystem.YOffset - coordyz.Y), CInt(cartsystem.XOffset + coordy.X), CInt(cartsystem.YOffset - coordy.Y))
graphics.DrawLine(ypen, CInt(cartsystem.XOffset + coordyz.X), CInt(cartsystem.YOffset - coordyz.Y), CInt(cartsystem.XOffset + coordz.X), CInt(cartsystem.YOffset - coordz.Y))
graphics.DrawLine(ypen, CInt(cartsystem.XOffset + coordyz.X), CInt(cartsystem.YOffset - coordyz.Y), CInt(cartsystem.XOffset + coordxyz.X), CInt(cartsystem.YOffset - coordxyz.Y))
graphics.DrawLine(zpen, CInt(cartsystem.XOffset + coordxz.X), CInt(cartsystem.YOffset - coordxz.Y), CInt(cartsystem.XOffset + coordx.X), CInt(cartsystem.YOffset - coordx.Y))
graphics.DrawLine(zpen, CInt(cartsystem.XOffset + coordxz.X), CInt(cartsystem.YOffset - coordxz.Y), CInt(cartsystem.XOffset + coordz.X), CInt(cartsystem.YOffset - coordz.Y))
graphics.DrawLine(zpen, CInt(cartsystem.XOffset + coordxz.X), CInt(cartsystem.YOffset - coordxz.Y), CInt(cartsystem.XOffset + coordxyz.X), CInt(cartsystem.YOffset - coordxyz.Y))
xpen.Dispose()
ypen.Dispose()
zpen.Dispose()
End Sub
Friend Sub drawaxes()
Dim graphics As System.Drawing.Graphics = PictureBox1.CreateGraphics
Dim axispen As New System.Drawing.Pen(System.Drawing.Color.Black)
Dim xaxis As New Coordinate.Cartesian(cartsystem, 200, 0, 0)
Dim yaxis As New Coordinate.Cartesian(cartsystem, 0, 200, 0)
Dim zaxis As New Coordinate.Cartesian(cartsystem, 0, 0, 200)
PictureBox1.CreateGraphics.Clear(PictureBox1.BackColor)
xaxis = Operations.Transform.Coordinate(xaxis, myview)
yaxis = Operations.Transform.Coordinate(yaxis, myview)
zaxis = Operations.Transform.Coordinate(zaxis, myview)
Graphics.DrawLine(axispen, CInt(cartsystem.XOffset), CInt(cartsystem.YOffset), CInt(cartsystem.XOffset + xaxis.X), CInt(cartsystem.YOffset - xaxis.Y))
Graphics.DrawLine(axispen, CInt(cartsystem.XOffset), CInt(cartsystem.YOffset), CInt(cartsystem.XOffset + yaxis.X), CInt(cartsystem.YOffset - yaxis.Y))
Graphics.DrawLine(axispen, CInt(cartsystem.XOffset), CInt(cartsystem.YOffset), CInt(cartsystem.XOffset + zaxis.X), CInt(cartsystem.YOffset - zaxis.Y))
axispen.Dispose()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
cartorig = Operations.Transform.RotateLocalCartesian.Psi(cartorig, Operations.Angles.Radians(2))
cartx = Operations.Transform.RotateLocalCartesian.Psi(cartx, Operations.Angles.Radians(2))
carty = Operations.Transform.RotateLocalCartesian.Psi(carty, Operations.Angles.Radians(2))
cartz = Operations.Transform.RotateLocalCartesian.Psi(cartz, Operations.Angles.Radians(2))
cartxy = Operations.Transform.RotateLocalCartesian.Psi(cartxy, Operations.Angles.Radians(2))
cartxz = Operations.Transform.RotateLocalCartesian.Psi(cartxz, Operations.Angles.Radians(2))
cartyz = Operations.Transform.RotateLocalCartesian.Psi(cartyz, Operations.Angles.Radians(2))
cartxyz = Operations.Transform.RotateLocalCartesian.Psi(cartxyz, Operations.Angles.Radians(2))
Call drawaxes()
Call drawcube()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Width = 680
Me.Height = 600
PictureBox1.Left = 80
PictureBox1.Top = 0
PictureBox1.Width = 600
PictureBox1.Height = 600
Timer1.Interval = 20
Timer1.Enabled = True
End Sub