gumpymaker

08 August 2003, 06:32 AM

Ok it's written in a language called Turing 4.04c it imports triangular models in a raw format., Turing is near english., so i think it shouldn't be any trouble for anyone to understand

setscreen ("offscreenonly")

var final_X, final_Y, final_Z, calX1, calY1, calZ1, calX2, calY2, calZ2, X, Y, Z, DISTANCE, WORLD_X, WORLD_Y, WORLD_Z, XA, YA, ZA, ROTATE_ONE, ROTATE_TWO, ROTATE_THREE, SROTATE_ONE, SROTATE_TWO,

SROTATE_THREE, CROTATE_ONE, CROTATE_TWO, CROTATE_THREE : real := 0

var Screen_x, Screen_y : int

DISTANCE := 2200

ROTATE_THREE := 0

WORLD_Y := 90

SROTATE_ONE := sind (ROTATE_ONE)

CROTATE_ONE := cosd (ROTATE_ONE)

SROTATE_TWO := sind (ROTATE_TWO)

CROTATE_TWO := cosd (ROTATE_TWO)

SROTATE_THREE := sind (ROTATE_THREE)

CROTATE_THREE := cosd (ROTATE_THREE)

procedure cal (x, y, z : int)

X := x

Y := y

Z := z

SROTATE_ONE := sind (ROTATE_ONE)

CROTATE_ONE := cosd (ROTATE_ONE)

SROTATE_TWO := sind (ROTATE_TWO)

CROTATE_TWO := cosd (ROTATE_TWO)

SROTATE_THREE := sind (ROTATE_THREE)

CROTATE_THREE := cosd (ROTATE_THREE)

XA := CROTATE_ONE * X - SROTATE_ONE * Y

%YAW

YA := SROTATE_ONE * X + CROTATE_ONE * Y

X := CROTATE_TWO * XA + SROTATE_TWO * Z

%ROLL

ZA := CROTATE_TWO * Z - SROTATE_TWO * XA

Y := CROTATE_THREE * YA - SROTATE_THREE * ZA

%PITCH

Z := SROTATE_THREE * YA + CROTATE_THREE * ZA

X := X + WORLD_X

Y := Y + WORLD_Y

Z := Z + WORLD_Z

final_X := X

final_Y := Y

final_Z := Z

Screen_x := round (DISTANCE * X / Y)

Screen_y := round (DISTANCE * Z / Y)

Screen_x := (maxx div 2) - Screen_x

Screen_y := (maxy div 2) - Screen_y

end cal

proc Draw3DTriangle (x1, y1, z1, x2, y2, z2, x3, y3, z3 : real)

var xl, yl, zl, cC, xm, ym, zm, sx1, sy1, sx2, sy2, sx3, sy3 : int

cal (round (x1), round (y1), round (z1))

sx1 := Screen_x

sy1 := Screen_y

calX1 := final_X

calY1 := final_Y

calZ1 := final_Z

cal (round (x2), round (y2), round (z2))

sx2 := Screen_x

sy2 := Screen_y

calX2 := final_X

calY2 := final_Y

calZ2 := final_Z

cal (round (x3), round (y3), round (z3))

sx3 := Screen_x

sy3 := Screen_y

calX2 := final_X

calY2 := final_Y

calZ2 := final_Z

var px, py, shadow : array 1 .. 3 of int

px (1) := sx1

px (2) := sx2

px (3) := sx3

py (1) := sy1

py (2) := sy2

py (3) := sy3

shadow (1) := sy1 div 10

shadow (2) := sy2 div 10

shadow (3) := sy3 div 10

drawpolygon (px, py, 3, 30)

end Draw3DTriangle

var filename : string := "sphere.raw"

var data : int

var lines : int := 224

var coord : array 1 .. lines of real

proc cube

open : data, filename, get

for counter : 1 .. lines

get : data, coord (1), coord (2), coord (3), coord (4), coord (5), coord (6), coord (7), coord (8), coord (9)

Draw3DTriangle (coord (1), coord (2), coord (3), coord (4), coord (5), coord (6), coord (7), coord (8), coord (9))

end for

close (data)

end cube

var speed : real := 1.5

loop

View.Update

cls

cube

ROTATE_TWO += speed

locate (1, 1)

put ROTATE_THREE

end loop

The problem is I import objects but they become deformed once they're imported by my code did I make a mistake somewhere?

setscreen ("offscreenonly")

var final_X, final_Y, final_Z, calX1, calY1, calZ1, calX2, calY2, calZ2, X, Y, Z, DISTANCE, WORLD_X, WORLD_Y, WORLD_Z, XA, YA, ZA, ROTATE_ONE, ROTATE_TWO, ROTATE_THREE, SROTATE_ONE, SROTATE_TWO,

SROTATE_THREE, CROTATE_ONE, CROTATE_TWO, CROTATE_THREE : real := 0

var Screen_x, Screen_y : int

DISTANCE := 2200

ROTATE_THREE := 0

WORLD_Y := 90

SROTATE_ONE := sind (ROTATE_ONE)

CROTATE_ONE := cosd (ROTATE_ONE)

SROTATE_TWO := sind (ROTATE_TWO)

CROTATE_TWO := cosd (ROTATE_TWO)

SROTATE_THREE := sind (ROTATE_THREE)

CROTATE_THREE := cosd (ROTATE_THREE)

procedure cal (x, y, z : int)

X := x

Y := y

Z := z

SROTATE_ONE := sind (ROTATE_ONE)

CROTATE_ONE := cosd (ROTATE_ONE)

SROTATE_TWO := sind (ROTATE_TWO)

CROTATE_TWO := cosd (ROTATE_TWO)

SROTATE_THREE := sind (ROTATE_THREE)

CROTATE_THREE := cosd (ROTATE_THREE)

XA := CROTATE_ONE * X - SROTATE_ONE * Y

%YAW

YA := SROTATE_ONE * X + CROTATE_ONE * Y

X := CROTATE_TWO * XA + SROTATE_TWO * Z

%ROLL

ZA := CROTATE_TWO * Z - SROTATE_TWO * XA

Y := CROTATE_THREE * YA - SROTATE_THREE * ZA

%PITCH

Z := SROTATE_THREE * YA + CROTATE_THREE * ZA

X := X + WORLD_X

Y := Y + WORLD_Y

Z := Z + WORLD_Z

final_X := X

final_Y := Y

final_Z := Z

Screen_x := round (DISTANCE * X / Y)

Screen_y := round (DISTANCE * Z / Y)

Screen_x := (maxx div 2) - Screen_x

Screen_y := (maxy div 2) - Screen_y

end cal

proc Draw3DTriangle (x1, y1, z1, x2, y2, z2, x3, y3, z3 : real)

var xl, yl, zl, cC, xm, ym, zm, sx1, sy1, sx2, sy2, sx3, sy3 : int

cal (round (x1), round (y1), round (z1))

sx1 := Screen_x

sy1 := Screen_y

calX1 := final_X

calY1 := final_Y

calZ1 := final_Z

cal (round (x2), round (y2), round (z2))

sx2 := Screen_x

sy2 := Screen_y

calX2 := final_X

calY2 := final_Y

calZ2 := final_Z

cal (round (x3), round (y3), round (z3))

sx3 := Screen_x

sy3 := Screen_y

calX2 := final_X

calY2 := final_Y

calZ2 := final_Z

var px, py, shadow : array 1 .. 3 of int

px (1) := sx1

px (2) := sx2

px (3) := sx3

py (1) := sy1

py (2) := sy2

py (3) := sy3

shadow (1) := sy1 div 10

shadow (2) := sy2 div 10

shadow (3) := sy3 div 10

drawpolygon (px, py, 3, 30)

end Draw3DTriangle

var filename : string := "sphere.raw"

var data : int

var lines : int := 224

var coord : array 1 .. lines of real

proc cube

open : data, filename, get

for counter : 1 .. lines

get : data, coord (1), coord (2), coord (3), coord (4), coord (5), coord (6), coord (7), coord (8), coord (9)

Draw3DTriangle (coord (1), coord (2), coord (3), coord (4), coord (5), coord (6), coord (7), coord (8), coord (9))

end for

close (data)

end cube

var speed : real := 1.5

loop

View.Update

cls

cube

ROTATE_TWO += speed

locate (1, 1)

put ROTATE_THREE

end loop

The problem is I import objects but they become deformed once they're imported by my code did I make a mistake somewhere?