Home » Archimedes archive » Acorn User » AU 1995-10.adf » !Regulars » Regulars/StarInfo/Graphics/Incandesce
Regulars/StarInfo/Graphics/Incandesce
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1995-10.adf » !Regulars |
Filename: | Regulars/StarInfo/Graphics/Incandesce |
Read OK: | ✔ |
File size: | 0458 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >Incandesce 20REM By dL 31Jul95 30LIBRARY "PROCmode" 40PROCmode("X800 Y600 C32T") 50CLS 60OFF 70DIM x(200),y(200) 80q=24 90REPEAT 100 s=RND(60)+10 110 x=RND(800)*2 120 y=RND(600)*2 130 FOR i=0 TO s-1 140 x(i)=x 150 y(i)=y 160 REPEAT 170 a=RND(1)*360 180 l=RND(40)+10 190 dx=l*SINRAD(a) 200 dy=l*COSRAD(a) 210 x=x(i)+dx 220 y=y(i)+dy 230 UNTIL x>0 AND y>0 AND x<1600 AND y<1200 240 NEXT 250 260 cr=RND(64) 270 cg=RND(64) 280 cb=RND(64) 290 300 cr2=cr 310 cg2=cg 320 cb2=cb 330 x=RND(6) 340 IF (x AND 1) cr2=256-RND(160) 350 IF (x AND 2) cg2=256-RND(160) 360 IF (x AND 4) cb2=256-RND(160) 370 380 dr=(cr2-cr)/q 390 dg=(cg2-cg)/q 400 db=(cb2-cb)/q 410 420 430 FOR w=q*2 TO 0 STEP -2 440 IF w=q*2 THEN 450 GCOL 0,0,0 460 ELSE 470 GCOL cr,cg,cb 480 cr+=dr 490 cg+=dg 500 cb+=db 510 ENDIF 520 IF w=0 THEN 530 POINT x(0),y(0) 540 ELSE 550 CIRCLE FILL x(0),y(0),w 560 ENDIF 570 FOR i=1 TO s-1 580 dx=x(i)-x(i-1) 590 dy=y(i)-y(i-1) 600 l=w/SQR(dx*dx+dy*dy) 610 dx=dx*l 620 dy=dy*l 630 IF w=0 THEN 640 DRAW x(i),y(i) 650 ELSE 660 MOVE x(i-1)-dy,y(i-1)+dx 670 MOVE x(i-1)+dy,y(i-1)-dx 680 PLOT 85,x(i)-dy,y(i)+dx 690 PLOT 85,x(i)+dy,y(i)-dx 700 CIRCLE FILL x(i),y(i),w 710 ENDIF 720 NEXT 730 NEXT 740UNTIL 0
� >Incandesce � By dL 31Jul95 ț "PROCmode" (�mode("X800 Y600 C32T") 2� <� F� x(200),y(200) Pq=24 Z� d s=�(60)+10 n x=�(800)*2 x y=�(600)*2 � � i=0 � s-1 � x(i)=x � y(i)=y � � � a=�(1)*360 � l=�(40)+10 � dx=l*��(a) � dy=l*��(a) � x=x(i)+dx � y=y(i)+dy �# � x>0 � y>0 � x<1600 � y<1200 � � � cr=�(64) cg=�(64) cb=�(64) " , cr2=cr 6 cg2=cg @ cb2=cb J x=�(6) T � (x � 1) cr2=256-�(160) ^ � (x � 2) cg2=256-�(160) h � (x � 4) cb2=256-�(160) r | dr=(cr2-cr)/q � dg=(cg2-cg)/q � db=(cb2-cb)/q � � � � w=q*2 � 0 � -2 � � w=q*2 � � � 0,0,0 � � � � cr,cg,cb � cr+=dr � cg+=dg � cb+=db � � � w=0 � Ȓ x(0),y(0) � & ȏ Ȑ x(0),y(0),w 0 � : � i=1 � s-1 D dx=x(i)-x(i-1) N dy=y(i)-y(i-1) X l=w/�(dx*dx+dy*dy) b dx=dx*l l dy=dy*l v � w=0 � � � x(i),y(i) � � � � x(i-1)-dy,y(i-1)+dx � � x(i-1)+dy,y(i-1)-dx � � 85,x(i)-dy,y(i)+dx � � 85,x(i)+dy,y(i)-dx � ȏ Ȑ x(i),y(i),w � � � � � � �� 0 �
00000000 0d 00 0a 11 f4 20 3e 49 6e 63 61 6e 64 65 73 63 |..... >Incandesc| 00000010 65 0d 00 14 13 f4 20 42 79 20 64 4c 20 33 31 4a |e..... By dL 31J| 00000020 75 6c 39 35 0d 00 1e 11 c8 9b 20 22 50 52 4f 43 |ul95...... "PROC| 00000030 6d 6f 64 65 22 0d 00 28 1b f2 6d 6f 64 65 28 22 |mode"..(..mode("| 00000040 58 38 30 30 20 59 36 30 30 20 43 33 32 54 22 29 |X800 Y600 C32T")| 00000050 0d 00 32 05 db 0d 00 3c 05 87 0d 00 46 13 de 20 |..2....<....F.. | 00000060 78 28 32 30 30 29 2c 79 28 32 30 30 29 0d 00 50 |x(200),y(200)..P| 00000070 08 71 3d 32 34 0d 00 5a 05 f5 0d 00 64 0f 20 73 |.q=24..Z....d. s| 00000080 3d b3 28 36 30 29 2b 31 30 0d 00 6e 0f 20 78 3d |=.(60)+10..n. x=| 00000090 b3 28 38 30 30 29 2a 32 0d 00 78 0f 20 79 3d b3 |.(800)*2..x. y=.| 000000a0 28 36 30 30 29 2a 32 0d 00 82 10 20 e3 20 69 3d |(600)*2.... . i=| 000000b0 30 20 b8 20 73 2d 31 0d 00 8c 0c 20 20 78 28 69 |0 . s-1.... x(i| 000000c0 29 3d 78 0d 00 96 0c 20 20 79 28 69 29 3d 79 0d |)=x.... y(i)=y.| 000000d0 00 a0 07 20 20 f5 0d 00 aa 11 20 20 20 61 3d b3 |... ..... a=.| 000000e0 28 31 29 2a 33 36 30 0d 00 b4 11 20 20 20 6c 3d |(1)*360.... l=| 000000f0 b3 28 34 30 29 2b 31 30 0d 00 be 11 20 20 20 64 |.(40)+10.... d| 00000100 78 3d 6c 2a b5 b2 28 61 29 0d 00 c8 11 20 20 20 |x=l*..(a).... | 00000110 64 79 3d 6c 2a 9b b2 28 61 29 0d 00 d2 10 20 20 |dy=l*..(a).... | 00000120 20 78 3d 78 28 69 29 2b 64 78 0d 00 dc 10 20 20 | x=x(i)+dx.... | 00000130 20 79 3d 79 28 69 29 2b 64 79 0d 00 e6 23 20 20 | y=y(i)+dy...# | 00000140 fd 20 78 3e 30 20 80 20 79 3e 30 20 80 20 78 3c |. x>0 . y>0 . x<| 00000150 31 36 30 30 20 80 20 79 3c 31 32 30 30 0d 00 f0 |1600 . y<1200...| 00000160 06 20 ed 0d 00 fa 04 0d 01 04 0d 20 63 72 3d b3 |. ......... cr=.| 00000170 28 36 34 29 0d 01 0e 0d 20 63 67 3d b3 28 36 34 |(64).... cg=.(64| 00000180 29 0d 01 18 0d 20 63 62 3d b3 28 36 34 29 0d 01 |).... cb=.(64)..| 00000190 22 04 0d 01 2c 0b 20 63 72 32 3d 63 72 0d 01 36 |"...,. cr2=cr..6| 000001a0 0b 20 63 67 32 3d 63 67 0d 01 40 0b 20 63 62 32 |. cg2=cg..@. cb2| 000001b0 3d 63 62 0d 01 4a 0b 20 78 3d b3 28 36 29 0d 01 |=cb..J. x=.(6)..| 000001c0 54 1d 20 e7 20 28 78 20 80 20 31 29 20 63 72 32 |T. . (x . 1) cr2| 000001d0 3d 32 35 36 2d b3 28 31 36 30 29 0d 01 5e 1d 20 |=256-.(160)..^. | 000001e0 e7 20 28 78 20 80 20 32 29 20 63 67 32 3d 32 35 |. (x . 2) cg2=25| 000001f0 36 2d b3 28 31 36 30 29 0d 01 68 1d 20 e7 20 28 |6-.(160)..h. . (| 00000200 78 20 80 20 34 29 20 63 62 32 3d 32 35 36 2d b3 |x . 4) cb2=256-.| 00000210 28 31 36 30 29 0d 01 72 04 0d 01 7c 12 20 64 72 |(160)..r...|. dr| 00000220 3d 28 63 72 32 2d 63 72 29 2f 71 0d 01 86 12 20 |=(cr2-cr)/q.... | 00000230 64 67 3d 28 63 67 32 2d 63 67 29 2f 71 0d 01 90 |dg=(cg2-cg)/q...| 00000240 12 20 64 62 3d 28 63 62 32 2d 63 62 29 2f 71 0d |. db=(cb2-cb)/q.| 00000250 01 9a 04 0d 01 a4 05 20 0d 01 ae 15 20 e3 20 77 |....... .... . w| 00000260 3d 71 2a 32 20 b8 20 30 20 88 20 2d 32 0d 01 b8 |=q*2 . 0 . -2...| 00000270 0f 20 20 e7 20 77 3d 71 2a 32 20 8c 0d 01 c2 0e |. . w=q*2 .....| 00000280 20 20 20 e6 20 30 2c 30 2c 30 0d 01 cc 07 20 20 | . 0,0,0.... | 00000290 cc 0d 01 d6 11 20 20 20 e6 20 63 72 2c 63 67 2c |..... . cr,cg,| 000002a0 63 62 0d 01 e0 0d 20 20 20 63 72 2b 3d 64 72 0d |cb.... cr+=dr.| 000002b0 01 ea 0d 20 20 20 63 67 2b 3d 64 67 0d 01 f4 0d |... cg+=dg....| 000002c0 20 20 20 63 62 2b 3d 64 62 0d 01 fe 07 20 20 cd | cb+=db.... .| 000002d0 0d 02 08 0d 20 20 e7 20 77 3d 30 20 8c 0d 02 12 |.... . w=0 ....| 000002e0 13 20 20 20 c8 92 20 78 28 30 29 2c 79 28 30 29 |. .. x(0),y(0)| 000002f0 0d 02 1c 07 20 20 cc 0d 02 26 18 20 20 20 c8 8f |.... ...&. ..| 00000300 20 c8 90 20 78 28 30 29 2c 79 28 30 29 2c 77 0d | .. x(0),y(0),w.| 00000310 02 30 07 20 20 cd 0d 02 3a 11 20 20 e3 20 69 3d |.0. ...:. . i=| 00000320 31 20 b8 20 73 2d 31 0d 02 44 15 20 20 20 64 78 |1 . s-1..D. dx| 00000330 3d 78 28 69 29 2d 78 28 69 2d 31 29 0d 02 4e 15 |=x(i)-x(i-1)..N.| 00000340 20 20 20 64 79 3d 79 28 69 29 2d 79 28 69 2d 31 | dy=y(i)-y(i-1| 00000350 29 0d 02 58 19 20 20 20 6c 3d 77 2f b6 28 64 78 |)..X. l=w/.(dx| 00000360 2a 64 78 2b 64 79 2a 64 79 29 0d 02 62 0e 20 20 |*dx+dy*dy)..b. | 00000370 20 64 78 3d 64 78 2a 6c 0d 02 6c 0e 20 20 20 64 | dx=dx*l..l. d| 00000380 79 3d 64 79 2a 6c 0d 02 76 0e 20 20 20 e7 20 77 |y=dy*l..v. . w| 00000390 3d 30 20 8c 0d 02 80 13 20 20 20 20 df 20 78 28 |=0 ..... . x(| 000003a0 69 29 2c 79 28 69 29 0d 02 8a 08 20 20 20 cc 0d |i),y(i).... ..| 000003b0 02 94 1d 20 20 20 20 ec 20 78 28 69 2d 31 29 2d |... . x(i-1)-| 000003c0 64 79 2c 79 28 69 2d 31 29 2b 64 78 0d 02 9e 1d |dy,y(i-1)+dx....| 000003d0 20 20 20 20 ec 20 78 28 69 2d 31 29 2b 64 79 2c | . x(i-1)+dy,| 000003e0 79 28 69 2d 31 29 2d 64 78 0d 02 a8 1c 20 20 20 |y(i-1)-dx.... | 000003f0 20 f0 20 38 35 2c 78 28 69 29 2d 64 79 2c 79 28 | . 85,x(i)-dy,y(| 00000400 69 29 2b 64 78 0d 02 b2 1c 20 20 20 20 f0 20 38 |i)+dx.... . 8| 00000410 35 2c 78 28 69 29 2b 64 79 2c 79 28 69 29 2d 64 |5,x(i)+dy,y(i)-d| 00000420 78 0d 02 bc 19 20 20 20 20 c8 8f 20 c8 90 20 78 |x.... .. .. x| 00000430 28 69 29 2c 79 28 69 29 2c 77 0d 02 c6 08 20 20 |(i),y(i),w.... | 00000440 20 cd 0d 02 d0 07 20 20 ed 0d 02 da 06 20 ed 0d | ..... ..... ..| 00000450 02 e4 07 fd 20 30 0d ff |.... 0..| 00000458