Folositi W, S pentru a muta triunghiul in adancime, si tastele pentru miscari pe axa X si Y!
#include "fbgfx.bi"
Using FB
Declare Sub Draw3Dtriangle(x1 As Integer, y1 As Integer, z1 As Integer, x2 As Integer, y2 As Integer, z2 As Integer, x3 As Integer, y3 As Integer, z3 As Integer)
Declare Sub Draw3DlineGreen(x1 As Integer,y1 As Integer,z1 As Integer,x2 As Integer,y2 As Integer,z2 As Integer)
'Punctele de origine
Dim x1 As Integer, y1 As Integer, z1 As Integer, x2 As Integer, y2 As Integer, z2 As Integer, x3 As Integer, y3 As Integer, z3 As Integer
x1 = 200
x2 = 200
x3 = 400
y1 = 150
y2 = 250
y3 = 150
z1 = 1
z2 = 1
z3 = 1
'Noile Puncte
Dim old_x1 As Integer, old_y1 As Integer, old_x2 As Integer, old_y2 As Integer, old_x3 As Integer, old_y3 As Integer
Dim old_z1 As Double, old_z2 As Double, old_z3 As Double
old_x1 = x1
old_x2 = x2
old_x3 = x3
old_y1 = y1
old_y2 = y2
old_y3 = y3
old_z1 = z1
old_z2 = z2
old_z3 = z3
Screen 13
Do
Cls
If multikey(FB.SC_w) Then
old_z1 = old_z1 + 1
old_z2 = old_z2 + 1
old_z3 = old_z3 + 1
Endif
If multikey(FB.SC_s) Then
old_z1 = old_z1 - 1
old_z2 = old_z2 - 1
old_z3 = old_z3 - 1
Endif
If multikey(SC_LEFT)Then
old_x1 = old_x1-1
old_x2 = old_x2-1
old_x3 = old_x3-1
Endif
If multikey(SC_RIGHT)Then
old_x1 = old_x1+1
old_x2 = old_x2+1
old_x3 = old_x3+1
Endif
If multikey(SC_UP)Then
old_y1 = old_y1-1
old_y2 = old_y2-1
old_y3 = old_y3-1
Endif
If multikey(SC_DOWN)Then
old_y1 = old_y1+1
old_y2 = old_y2+1
old_y3 = old_y3+1
Endif
Draw3DTriangle(old_x1,old_y1,old_z1,old_x2,old_y2,old_z2,old_x3,old_y3,old_z3)
ScreenSync
Loop
Sub Draw3Dtriangle(x1 As Integer, y1 As Integer, z1 As Integer, x2 As Integer, y2 As Integer, z2 As Integer, x3 As Integer, y3 As Integer, z3 As Integer)
Draw3DlineGreen(x1,y1,z1,x2,y2,z2)
Draw3DlineGreen(x2,y2,z2,x3,y3,z3)
Draw3DlineGreen(x3,y3,z3,x1,y1,z1)
End Sub
Sub Draw3DlineGreen(x1 As Integer,y1 As Integer,z1 As Integer,x2 As Integer,y2 As Integer,z2 As Integer)
Dim x1_point As Integer, y1_point As Integer, x2_point As Integer, y2_point As Integer
x1_point = x1/z1
y1_point = y1/z1
x2_point = x2/z2
y2_point = y2/z2
Line (x1_point,y1_point)-(x2_point,y2_point),2
End Sub