Post by anthonyrbrown on Feb 17, 2024 21:35:52 GMT
And another 3D program I could never understand what this one is supposed to be doing?
I am sure again the Graphics experts will be able to work it out and add their own personal touches to it,to make it a much better program.
I am sure again the Graphics experts will be able to work it out and add their own personal touches to it,to make it a much better program.
SCREEN 12
CLS
WINDOW (320, 240)-(-320, -240)
TIME = TIMER
'PRISM IN 3D
VERTEX1X = 20
VERTEX1Y = 35
VERTEX1Z = 25
VERTEX2X = 10
VERTEX2Y = 10
VERTEX2Z = 20
VERTEX3X = 30
VERTEX3Y = 10
VERTEX3Z = 20
VERTEX4X = 20
VERTEX4Y = 10
VERTEX4Z = 30
DO
X = X + .0025
'CAMERA POSITION IN 3D
'PSET (SIN(X) * 100, COS(X) * 100)
CAMERAX = 0 'SIN(X) * 2
CAMERAY = -1
CAMERAZ = -1 'COS(X) * 2
'PSET (CAMERAX * 100, CAMERAZ * 100)
'SCREEN POSTITION
SCREENZ = 0
VERTEX1X = SIN(X) * 10 + 20
VERTEX1Z = COS(X) * 10 + 25
VERTEX2X = SIN(X) * 10 + 10
VERTEX2Z = COS(X) * 10 + 20
VERTEX3X = SIN(X) * 10 + 30
VERTEX3Z = COS(X) * 10 + 20
VERTEX4X = SIN(X) * 10 + 20
VERTEX4Z = COS(X) * 10 + 30
'RAY OF LIGHT'S SLOPE CALCULATIONS
N1 = (VERTEX1Y - CAMERAY) / (VERTEX1Z - CAMERAZ)
O1 = (VERTEX1X - CAMERAX) / (VERTEX1Z - CAMERAZ)
N2 = (VERTEX2Y - CAMERAY) / (VERTEX2Z - CAMERAZ)
O2 = (VERTEX2X - CAMERAX) / (VERTEX2Z - CAMERAZ)
N3 = (VERTEX3Y - CAMERAY) / (VERTEX3Z - CAMERAZ)
O3 = (VERTEX3X - CAMERAX) / (VERTEX3Z - CAMERAZ)
N4 = (VERTEX4Y - CAMERAY) / (VERTEX4Z - CAMERAZ)
O4 = (VERTEX4X - CAMERAX) / (VERTEX4Z - CAMERAZ)
'WORK OUT WHERE RAY CROSSES SCREEN
E1 = VERTEX1X - (O1 * (VERTEX1Z - SCREENZ))
D1 = VERTEX1Y - (N1 * (VERTEX1Z - SCREENZ))
E2 = VERTEX2X - (O2 * (VERTEX2Z - SCREENZ))
D2 = VERTEX2Y - (N2 * (VERTEX2Z - SCREENZ))
E3 = VERTEX3X - (O3 * (VERTEX3Z - SCREENZ))
D3 = VERTEX3Y - (N3 * (VERTEX3Z - SCREENZ))
E4 = VERTEX4X - (O4 * (VERTEX4Z - SCREENZ))
D4 = VERTEX4Y - (N4 * (VERTEX4Z - SCREENZ))
'X1 = INT(E1 * 10)
'X2 = INT(E2 * 10)
'X3 = INT(E3 * 10)
'X4 = INT(E4 * 10)
'Y1 = INT(D1 * 10)
'Y2 = INT(D2 * 10)
'Y3 = INT(D3 * 10)
'Y4 = INT(D4 * 10)
'PRINT E1, D1
'PRINT E2, D2
'PRINT E3, D3
'PRINT E4, D4
'PSET (INT(E1 * 50), INT(D1 * 50))
'PSET (INT(E2 * 50), INT(D2 * 50))
'PSET (INT(E3 * 50), INT(D3 * 50))
'PSET (INT(E4 * 50), INT(D4 * 50))
'PRINT INT(E1 * 10), INT(D1 * 10)
'PRINT INT(E2 * 10), INT(D2 * 10)
'PRINT INT(E3 * 10), INT(D3 * 10)
'PRINT INT(E4 * 10), INT(D4 * 10)
'CLEAR SHAPE
LINE (OLDE1 * 100, OLDD1 * 100)-(OLDE2 * 100, OLDD2 * 100), 0
LINE (OLDE1 * 100, OLDD1 * 100)-(OLDE3 * 100, OLDD3 * 100), 0
LINE (OLDE1 * 100, OLDD1 * 100)-(OLDE4 * 100, OLDD4 * 100), 0
LINE (OLDE2 * 100, OLDD2 * 100)-(OLDE3 * 100, OLDD3 * 100), 0
LINE (OLDE2 * 100, OLDD2 * 100)-(OLDE4 * 100, OLDD4 * 100), 0
LINE (OLDE3 * 100, OLDD3 * 100)-(OLDE4 * 100, OLDD4 * 100), 0
'DRAW SHAPE
LINE (E1 * 100, D1 * 100)-(E2 * 100, D2 * 100)
LINE (E1 * 100, D1 * 100)-(E3 * 100, D3 * 100)
LINE (E1 * 100, D1 * 100)-(E4 * 100, D4 * 100)
LINE (E2 * 100, D2 * 100)-(E3 * 100, D3 * 100)
LINE (E2 * 100, D2 * 100)-(E4 * 100, D4 * 100)
LINE (E3 * 100, D3 * 100)-(E4 * 100, D4 * 100)
'2D REPRESETATION
PSET (CAMERAX * 5, CAMERAZ * 5)
LINE (-320, SCREENZ)-(320, SCREENZ)
LINE (OLDVERTEX4X * 5, OLDVERTEX4Z * 5)-(OLDVERTEX2X * 5, OLDVERTEX2Z * 5), 0
LINE (OLDVERTEX2X * 5, OLDVERTEX2Z * 5)-(OLDVERTEX3X * 5, OLDVERTEX3Z * 5), 0
LINE (OLDVERTEX3X * 5, OLDVERTEX3Z * 5)-(OLDVERTEX4X * 5, OLDVERTEX4Z * 5), 0
LINE (VERTEX4X * 5, VERTEX4Z * 5)-(VERTEX2X * 5, VERTEX2Z * 5)
LINE (VERTEX2X * 5, VERTEX2Z * 5)-(VERTEX3X * 5, VERTEX3Z * 5)
LINE (VERTEX3X * 5, VERTEX3Z * 5)-(VERTEX4X * 5, VERTEX4Z * 5)
OLDE1 = E1
OLDE2 = E2
OLDE3 = E3
OLDE4 = E4
OLDD1 = D1
OLDD2 = D2
OLDD3 = D3
OLDD4 = D4
OLDVERTEX4X = VERTEX4X
OLDVERTEX2X = VERTEX2X
OLDVERTEX3X = VERTEX3X
OLDVERTEX4Z = VERTEX4Z
OLDVERTEX2Z = VERTEX2Z
OLDVERTEX3Z = VERTEX3Z
'FRAME COUNT
FRAMES = FRAMES + 1
LOOP WHILE INKEY$ = ""
'FRAME RATE CALCULATIONS
TIMEEND = TIMER - TIME
FPS = FRAMES / TIMEEND
PRINT "TIME TAKEN="; TIMEEND
PRINT "FRAMES ="; FRAMES
PRINT "FPS="; FPS