Home » Archimedes archive » Acorn User » AU 1995-05.adf » !StarInfo_StarInfo » Vibe/ColourCard/RGBtree

Vibe/ColourCard/RGBtree

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-05.adf » !StarInfo_StarInfo
Filename: Vibe/ColourCard/RGBtree
Read OK:
File size: 03B4 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM     >RGBtree
   11REM by  Jan Vibe
   12REM (c) AU May 1995
   20
   30MODE107:OFF
   40PROCA(576,0,280,48,0,RND(255),RND(255),RND(255))
   50END
   60
   70DEFPROCA(X%,Y%,L%,W%,A%,R%,G%,B%)
   80LOCAL X1%,Y1%,W1%,R1%,G1%,B1%
   90X1%=X%+L%*SINRADA%:Y1%=Y%+L%*COSRADA%:W1%=W%*.72
  100R1%=RND(255):G1%=RND(255):B1%=RND(255)
  110PROCL(X%,Y%,W%,X1%,Y1%,W1%,R%,G%,B%,R1%,G1%,B1%)
  120IF L%>16 THEN
  130PROCA(X1%,Y1%,L%/1.4,W1%,A%-45,R1%,G1%,B1%)
  140PROCA(X1%,Y1%,L%/1.4,W1%,A%+45,R1%,G1%,B1%)
  150ENDIF
  160ENDPROC
  170
  180DEFPROCL(X1%,Y1%,W1%,X2%,Y2%,W2%,R1%,G1%,B1%,R2%,G2%,B2%)
  190LOCAL D%,S%,A%,N%,N1%,W%,X%,Y%,R%,G%,B%
  200D%=SQR((X2%-X1%)^2+(Y2%-Y1%)^2)
  210S%=W1%/1.5:IF W2%<W1% S%=W2%/1.5
  220IF S%=0 S%=1
  230A%=D%/S%:IF A%<31 A%=31
  240FORN%=0TOA%:N1%=A%-N%
  250W%=(N1%*W1%+N%*W2%)/A%:X%=(N1%*X1%+N%*X2%)/A%:Y%=(N1%*Y1%+N%*Y2%)/A%
  260R%=(N1%*R1%+N%*R2%)/A%:G%=(N1%*G1%+N%*G2%)/A%:B%=(N1%*B1%+N%*B2%)/A%
  270PROCRGB(R%,G%,B%):CIRCLE FILL X%,Y%,W%
  280NEXT
  290ENDPROC
  300
  310DEFPROCRGB(R%,G%,B%)
  320LOCAL C%:C%=(R%<<8)+(G%<<16)+(B%<<24)
  330SYS "ColourTrans_SetGCOL",C%,,,&100,0
  340ENDPROC

�     >RGBtree
� by  Jan Vibe
� (c) AU May 1995


�107:�
(+�A(576,0,280,48,0,�(255),�(255),�(255))
2�
<
F ��A(X%,Y%,L%,W%,A%,R%,G%,B%)
P� X1%,Y1%,W1%,R1%,G1%,B1%
Z,X1%=X%+L%*��A%:Y1%=Y%+L%*��A%:W1%=W%*.72
d$R1%=�(255):G1%=�(255):B1%=�(255)
n1�L(X%,Y%,W%,X1%,Y1%,W1%,R%,G%,B%,R1%,G1%,B1%)
x
� L%>16 �
�,�A(X1%,Y1%,L%/1.4,W1%,A%-45,R1%,G1%,B1%)
�,�A(X1%,Y1%,L%/1.4,W1%,A%+45,R1%,G1%,B1%)
��
��
�
�8��L(X1%,Y1%,W1%,X2%,Y2%,W2%,R1%,G1%,B1%,R2%,G2%,B2%)
�'� D%,S%,A%,N%,N1%,W%,X%,Y%,R%,G%,B%
�!D%=�((X2%-X1%)^2+(Y2%-Y1%)^2)
�#S%=W1%/1.5:� W2%<W1% S%=W2%/1.5
�� S%=0 S%=1
�A%=D%/S%:� A%<31 A%=31
��N%=0�A%:N1%=A%-N%
�HW%=(N1%*W1%+N%*W2%)/A%:X%=(N1%*X1%+N%*X2%)/A%:Y%=(N1%*Y1%+N%*Y2%)/A%
HR%=(N1%*R1%+N%*R2%)/A%:G%=(N1%*G1%+N%*G2%)/A%:B%=(N1%*B1%+N%*B2%)/A%
!�RGB(R%,G%,B%):ȏ Ȑ X%,Y%,W%
�
"�
,
6��RGB(R%,G%,B%)
@%� C%:C%=(R%<<8)+(G%<<16)+(B%<<24)
J(ș "ColourTrans_SetGCOL",C%,,,&100,0
T�
�
00000000  0d 00 0a 12 f4 20 20 20  20 20 3e 52 47 42 74 72  |.....     >RGBtr|
00000010  65 65 0d 00 0b 12 f4 20  62 79 20 20 4a 61 6e 20  |ee..... by  Jan |
00000020  56 69 62 65 0d 00 0c 15  f4 20 28 63 29 20 41 55  |Vibe..... (c) AU|
00000030  20 4d 61 79 20 31 39 39  35 0d 00 14 04 0d 00 1e  | May 1995.......|
00000040  0a eb 31 30 37 3a 87 0d  00 28 2b f2 41 28 35 37  |..107:...(+.A(57|
00000050  36 2c 30 2c 32 38 30 2c  34 38 2c 30 2c b3 28 32  |6,0,280,48,0,.(2|
00000060  35 35 29 2c b3 28 32 35  35 29 2c b3 28 32 35 35  |55),.(255),.(255|
00000070  29 29 0d 00 32 05 e0 0d  00 3c 04 0d 00 46 20 dd  |))..2....<...F .|
00000080  f2 41 28 58 25 2c 59 25  2c 4c 25 2c 57 25 2c 41  |.A(X%,Y%,L%,W%,A|
00000090  25 2c 52 25 2c 47 25 2c  42 25 29 0d 00 50 1d ea  |%,R%,G%,B%)..P..|
000000a0  20 58 31 25 2c 59 31 25  2c 57 31 25 2c 52 31 25  | X1%,Y1%,W1%,R1%|
000000b0  2c 47 31 25 2c 42 31 25  0d 00 5a 2c 58 31 25 3d  |,G1%,B1%..Z,X1%=|
000000c0  58 25 2b 4c 25 2a b5 b2  41 25 3a 59 31 25 3d 59  |X%+L%*..A%:Y1%=Y|
000000d0  25 2b 4c 25 2a 9b b2 41  25 3a 57 31 25 3d 57 25  |%+L%*..A%:W1%=W%|
000000e0  2a 2e 37 32 0d 00 64 24  52 31 25 3d b3 28 32 35  |*.72..d$R1%=.(25|
000000f0  35 29 3a 47 31 25 3d b3  28 32 35 35 29 3a 42 31  |5):G1%=.(255):B1|
00000100  25 3d b3 28 32 35 35 29  0d 00 6e 31 f2 4c 28 58  |%=.(255)..n1.L(X|
00000110  25 2c 59 25 2c 57 25 2c  58 31 25 2c 59 31 25 2c  |%,Y%,W%,X1%,Y1%,|
00000120  57 31 25 2c 52 25 2c 47  25 2c 42 25 2c 52 31 25  |W1%,R%,G%,B%,R1%|
00000130  2c 47 31 25 2c 42 31 25  29 0d 00 78 0d e7 20 4c  |,G1%,B1%)..x.. L|
00000140  25 3e 31 36 20 8c 0d 00  82 2c f2 41 28 58 31 25  |%>16 ....,.A(X1%|
00000150  2c 59 31 25 2c 4c 25 2f  31 2e 34 2c 57 31 25 2c  |,Y1%,L%/1.4,W1%,|
00000160  41 25 2d 34 35 2c 52 31  25 2c 47 31 25 2c 42 31  |A%-45,R1%,G1%,B1|
00000170  25 29 0d 00 8c 2c f2 41  28 58 31 25 2c 59 31 25  |%)...,.A(X1%,Y1%|
00000180  2c 4c 25 2f 31 2e 34 2c  57 31 25 2c 41 25 2b 34  |,L%/1.4,W1%,A%+4|
00000190  35 2c 52 31 25 2c 47 31  25 2c 42 31 25 29 0d 00  |5,R1%,G1%,B1%)..|
000001a0  96 05 cd 0d 00 a0 05 e1  0d 00 aa 04 0d 00 b4 38  |...............8|
000001b0  dd f2 4c 28 58 31 25 2c  59 31 25 2c 57 31 25 2c  |..L(X1%,Y1%,W1%,|
000001c0  58 32 25 2c 59 32 25 2c  57 32 25 2c 52 31 25 2c  |X2%,Y2%,W2%,R1%,|
000001d0  47 31 25 2c 42 31 25 2c  52 32 25 2c 47 32 25 2c  |G1%,B1%,R2%,G2%,|
000001e0  42 32 25 29 0d 00 be 27  ea 20 44 25 2c 53 25 2c  |B2%)...'. D%,S%,|
000001f0  41 25 2c 4e 25 2c 4e 31  25 2c 57 25 2c 58 25 2c  |A%,N%,N1%,W%,X%,|
00000200  59 25 2c 52 25 2c 47 25  2c 42 25 0d 00 c8 21 44  |Y%,R%,G%,B%...!D|
00000210  25 3d b6 28 28 58 32 25  2d 58 31 25 29 5e 32 2b  |%=.((X2%-X1%)^2+|
00000220  28 59 32 25 2d 59 31 25  29 5e 32 29 0d 00 d2 23  |(Y2%-Y1%)^2)...#|
00000230  53 25 3d 57 31 25 2f 31  2e 35 3a e7 20 57 32 25  |S%=W1%/1.5:. W2%|
00000240  3c 57 31 25 20 53 25 3d  57 32 25 2f 31 2e 35 0d  |<W1% S%=W2%/1.5.|
00000250  00 dc 0f e7 20 53 25 3d  30 20 53 25 3d 31 0d 00  |.... S%=0 S%=1..|
00000260  e6 1a 41 25 3d 44 25 2f  53 25 3a e7 20 41 25 3c  |..A%=D%/S%:. A%<|
00000270  33 31 20 41 25 3d 33 31  0d 00 f0 16 e3 4e 25 3d  |31 A%=31.....N%=|
00000280  30 b8 41 25 3a 4e 31 25  3d 41 25 2d 4e 25 0d 00  |0.A%:N1%=A%-N%..|
00000290  fa 48 57 25 3d 28 4e 31  25 2a 57 31 25 2b 4e 25  |.HW%=(N1%*W1%+N%|
000002a0  2a 57 32 25 29 2f 41 25  3a 58 25 3d 28 4e 31 25  |*W2%)/A%:X%=(N1%|
000002b0  2a 58 31 25 2b 4e 25 2a  58 32 25 29 2f 41 25 3a  |*X1%+N%*X2%)/A%:|
000002c0  59 25 3d 28 4e 31 25 2a  59 31 25 2b 4e 25 2a 59  |Y%=(N1%*Y1%+N%*Y|
000002d0  32 25 29 2f 41 25 0d 01  04 48 52 25 3d 28 4e 31  |2%)/A%...HR%=(N1|
000002e0  25 2a 52 31 25 2b 4e 25  2a 52 32 25 29 2f 41 25  |%*R1%+N%*R2%)/A%|
000002f0  3a 47 25 3d 28 4e 31 25  2a 47 31 25 2b 4e 25 2a  |:G%=(N1%*G1%+N%*|
00000300  47 32 25 29 2f 41 25 3a  42 25 3d 28 4e 31 25 2a  |G2%)/A%:B%=(N1%*|
00000310  42 31 25 2b 4e 25 2a 42  32 25 29 2f 41 25 0d 01  |B1%+N%*B2%)/A%..|
00000320  0e 21 f2 52 47 42 28 52  25 2c 47 25 2c 42 25 29  |.!.RGB(R%,G%,B%)|
00000330  3a c8 8f 20 c8 90 20 58  25 2c 59 25 2c 57 25 0d  |:.. .. X%,Y%,W%.|
00000340  01 18 05 ed 0d 01 22 05  e1 0d 01 2c 04 0d 01 36  |......"....,...6|
00000350  13 dd f2 52 47 42 28 52  25 2c 47 25 2c 42 25 29  |...RGB(R%,G%,B%)|
00000360  0d 01 40 25 ea 20 43 25  3a 43 25 3d 28 52 25 3c  |..@%. C%:C%=(R%<|
00000370  3c 38 29 2b 28 47 25 3c  3c 31 36 29 2b 28 42 25  |<8)+(G%<<16)+(B%|
00000380  3c 3c 32 34 29 0d 01 4a  28 c8 99 20 22 43 6f 6c  |<<24)..J(.. "Col|
00000390  6f 75 72 54 72 61 6e 73  5f 53 65 74 47 43 4f 4c  |ourTrans_SetGCOL|
000003a0  22 2c 43 25 2c 2c 2c 26  31 30 30 2c 30 0d 01 54  |",C%,,,&100,0..T|
000003b0  05 e1 0d ff                                       |....|
000003b4