» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 64782 de mesaje.
  • 7635 de topicuri.
  • 1081 de utilizatori.
  •  
  • purcelllefevreo e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1]
Print

[FreeBASIC]2D Triangle moving in 3D Enviroment [781 afisari]

zapakitul
*


Mesaje: 1929
OfflineOffline

WWW

Folositi W, S pentru a muta triunghiul in adancime, si tastele pentru miscari pe axa X si Y!
Code:

#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

Logged

14-12-2008, 09:40 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  Basic si Fox  |  Topic: [FreeBASIC]2D Triangle moving in 3D Enviroment