home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
maksiu
/
kurs-ma
/
3d_przyklad1.amos
/
3d_przyklad1.amosSourceCode
Wrap
AMOS Source Code
|
1998-01-25
|
1KB
|
75 lines
Screen Open 0,320,256,2,Lowres
Curs Off : Palette $0,$FFF
Cls 0 : Flash Off : Ink 1,0
Paper 0 : Cls 0
Dim _COS#(360),_SIN#(360)
Dim X(8),Y(8),Z(8)
Dim X1(8),Y1(8),Z1(8)
Dim X2(8),Y2(8)
Degree
For I=0 To 360
_SIN#(I)=Sin(I)
_COS#(I)=Cos(I)
Next I
Restore DANE
For A=1 To 8
Read X(A),Y(A),Z(A)
Next A
Double Buffer
Autoback 0
ZE=0 : ZO=-1000
T=0
D#=0.01
S#=1.0
Do
For V=1 To 8
X1(V)=_COS#(T)*X(V)-_SIN#(T)*Z(V)
Y1(V)=Y(V)
Z1(V)=_SIN#(T)*X(V)+_COS#(T)*Z(V)
X1(V)=X1(V)
Y1(V)=_COS#(T)*Y1(V)-_SIN#(T)*Z1(V)
Z1(V)=_SIN#(T)*Y1(V)+_COS#(T)*Z1(V)
X1(V)=X1(V)*S#
Y1(V)=Y1(V)*S#
Z1(V)=Z1(V)*S#
X2(V)=(X1(V)*(ZE-ZO))/(Z1(V)-ZO)+160
Y2(V)=(Y1(V)*(ZE-ZO))/(Z1(V)-ZO)+128
Next V
Cls
Polyline X2(1),Y2(1) To X2(2),Y2(2) To X2(3),Y2(3) To X2(4),Y2(4) To X2(1),Y2(1)
Polyline X2(5),Y2(5) To X2(6),Y2(6) To X2(7),Y2(7) To X2(8),Y2(8) To X2(5),Y2(5)
Draw X2(1),Y2(1) To X2(5),Y2(5)
Draw X2(2),Y2(2) To X2(6),Y2(6)
Draw X2(3),Y2(3) To X2(7),Y2(7)
Draw X2(4),Y2(4) To X2(8),Y2(8)
Wait Vbl
Screen Swap
Add T,5
If T=360 Then T=0
If S#>2.1 or S#<0.3 Then D#=-D#
S#=S#+D#
Loop
DANE:
Data -30,30,-30
Data 30,30,-30
Data 30,-30,-30
Data -30,-30,-30
Data -30,30,30
Data 30,30,30
Data 30,-30,30
Data -30,-30,30