home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1998-01-02 | 2.7 KB | 92 lines |
- Screen Open 0,320,256,4,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Palette 0,$FF0,$F0,$F00
- Double Buffer
- Autoback 0
- Dim COD1(4),COD2(4)
- COD1(0)=Rnd(219)+50
- COD1(1)=Rnd(155)+50
- COD1(2)=1
- COD1(3)=1
- COD1(4)=0
- COD2(0)=Rnd(219)+50
- COD2(1)=Rnd(155)+50
- COD2(2)=-1
- COD2(3)=-1
- COD2(4)=Rnd(1024)
-
- Do
- Screen Swap : Multi Wait
- Extension_8_121C 0,0
- Add COD1(0),COD1(2)
- If COD1(0)<50 or COD1(0)>279 Then COD1(2)=-COD1(2)
- Add COD1(1),COD1(3)
- If COD1(1)<50 or COD1(1)>205 Then COD1(3)=-COD1(3)
- Add COD1(4),3
-
- Extension_8_121C 0,1
- Add COD2(0),COD2(2)
- If COD2(0)<50 or COD2(0)>279 Then COD2(2)=-COD2(2)
- Add COD2(1),COD2(3)
- If COD2(1)<50 or COD2(1)>205 Then COD2(3)=-COD2(3)
- Add COD2(4),5
-
- X11=COD1(0)+ Extension_8_1114(COD1(4),50)
- Y11=COD1(1)+ Extension_8_1106(COD1(4),50)
- X12=COD1(0)+ Extension_8_1114(COD1(4)+256,100)
- Y12=COD1(1)+ Extension_8_1106(COD1(4)+256,100)
- X13=COD1(0)+ Extension_8_1114(COD1(4)+512,100)
- Y13=COD1(1)+ Extension_8_1106(COD1(4)+512,100)
- X14=COD1(0)+ Extension_8_1114(COD1(4)+768,100)
- Y14=COD1(1)+ Extension_8_1106(COD1(4)+768,100)
- Extension_8_1016 X11,Y11 To X12,Y12,3
- Extension_8_1016 X12,Y12 To X13,Y13,1
- Extension_8_1016 X13,Y13 To X14,Y14,1
- Extension_8_1016 X14,Y14 To X11,Y11,1
-
- X21=COD2(0)+ Extension_8_1114(COD2(4),70)
- Y21=COD2(1)+ Extension_8_1106(COD2(4),70)
- X22=COD2(0)+ Extension_8_1114(COD2(4)+256,70)
- Y22=COD2(1)+ Extension_8_1106(COD2(4)+256,70)
- X23=COD2(0)+ Extension_8_1114(COD2(4)+512,70)
- Y23=COD2(1)+ Extension_8_1106(COD2(4)+512,70)
- X24=COD2(0)+ Extension_8_1114(COD2(4)+768,70)
- Y24=COD2(1)+ Extension_8_1106(COD2(4)+768,70)
- Extension_8_1016 X21,Y21 To X22,Y22,3
- Extension_8_1016 X22,Y22 To X23,Y23,2
- Extension_8_1016 X23,Y23 To X24,Y24,2
- Extension_8_1016 X24,Y24 To X21,Y21,2
-
- ' X11+TETA*(X12-X11)=X21+LAMBA*(X22-X21)
- ' Y11+TETA*(Y12-Y11)=Y21+LAMBA*(Y22-Y21)
-
- '
- ' TETA*(X12-X11)=(X21-X11)+LAMBA*(X22-X21)
- ' TETA*(Y12-Y11)=(Y21-Y11)+LAMBA*(Y22-Y21)
-
- ' TETA=((X21-X11)+LAMBA*(X22-X21))/(X12-X11)
- ' (((X21-X11)+LAMBA*(X22-X21))/(X12-X11))*(Y12-Y11)=(Y21-Y11)+LAMBA*(Y22-Y21)
- ' (((X21-X11)+LAMBA*(X22-X21))/(X12-X11))*(Y12-Y11)-(Y21-Y11)=LAMBA*(Y22-Y21)
-
- ' ((X21-X11)*(Y12-Y11)/(X12-X11))-(Y21-Y11)=LAMBA*((Y22-Y21)-((X22-X21)*(Y12-Y11)/(X21-X11)))
-
- NENNER=(Y11-Y21)*(X12-X11)+(X21-X11)*(Y12-Y11)
- TEILER=(Y22-Y21)*(X12-X11)-(X22-X21)*(Y12-Y11)
- If NENNER<0 and TEILER<0
- NENNER=-NENNER : TEILER=-TEILER
- End If
- If NENNER=>0 and NENNER<=TEILER
- NENNER=(Y21-Y11)*(X22-X21)+(X11-X21)*(Y22-Y21)
- TEILER=(Y12-Y11)*(X22-X21)-(X12-X11)*(Y22-Y21)
- If NENNER<=0 and TEILER<0
- NENNER=-NENNER : TEILER=-TEILER
- End If
- If NENNER=>0 and NENNER<=TEILER
- Colour 0,$40
- Else
- Colour 0,0
- End If
- Else
- Colour 0,0
- End If
- Loop