Home » Archimedes archive » Archimedes World » AW-1991-11.adf » November91 » !AWNov91/Goodies/3DGraphics/Demos/CIRCLE

!AWNov91/Goodies/3DGraphics/Demos/CIRCLE

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 » Archimedes World » AW-1991-11.adf » November91
Filename: !AWNov91/Goodies/3DGraphics/Demos/CIRCLE
Read OK:
File size: 0370 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >CIRCLE
   20:
   30REM set up program mode, variables etc,
   40:
   50*RMENSURE 3DGraphics 0.01 RMLOAD 3DGRAPHICS
   60MODE0
   70ORIGIN 640,512
   80OFF
   90DIM block% 1024
  100DIM plot_block% 1024
  110:
  120REM Read in Co-Ordinates
  130:
  140T%=0
  150REPEAT
  160READ v%
  170!(block%+(T%*4))=v%
  180T%+=1
  190UNTIL v%=256
  200:
  210REM Set up initial angles
  220:
  230x%=0
  240y%=180
  250z%=270
  260view%=0
  270:
  280REPEAT
  290SYS 6,113,2:SYS 6,112,1:PROCscreen
  300SYS 6,113,1:SYS 6,112,2:PROCscreen
  310UNTIL FALSE
  320:
  330DEFPROCscreen
  340z%+=2
  350y%+=1
  360:
  370REM The following line calculates all the 3D points into 2D points
  380:
  390SYS "Vector_CalculateObject",block%,plot_block%,x%,y%,z%,view%
  400:
  410REM The following line plots the 2D points on the screen
  420WAIT
  430CLS
  440SYS "Vector_PlotObjectLine",plot_block%
  450ENDPROC
  460:
  470REM Co-Ordinate Data
  480REM <DATA 256,0,0,0> Terminates Data Block
  490:
  500DATA 4,300,300,0
  510DATA 4,500,300,0
  520DATA 205,300,500,0
  700DATA 256,0,0,0


� >CIRCLE
:
)� set up program mode, variables etc,
(:
2/*RMENSURE 3DGraphics 0.01 RMLOAD 3DGRAPHICS
<�0
Fȑ 640,512
P�
Z� block% 1024
d� plot_block% 1024
n:
x� Read in Co-Ordinates
�:
�T%=0
��
�� v%
�!(block%+(T%*4))=v%
�	T%+=1
�� v%=256
�:
�� Set up initial angles
�:
�x%=0
�
y%=180
�
z%=270
view%=0
:
�
"!ș 6,113,2:ș 6,112,1:�screen
,!ș 6,113,1:ș 6,112,2:�screen
6� �
@:
J��screen
T	z%+=2
^	y%+=1
h:
rD� The following line calculates all the 3D points into 2D points
|:
�Aș "Vector_CalculateObject",block%,plot_block%,x%,y%,z%,view%
�:
�:� The following line plots the 2D points on the screen
�Ȗ
��
�*ș "Vector_PlotObjectLine",plot_block%
��
�:
�� Co-Ordinate Data
�,� <DATA 256,0,0,0> Terminates Data Block
�:
�� 4,300,300,0
�� 4,500,300,0
� 205,300,500,0
�� 256,0,0,0
�
00000000  0d 00 0a 0d f4 20 3e 43  49 52 43 4c 45 0d 00 14  |..... >CIRCLE...|
00000010  05 3a 0d 00 1e 29 f4 20  73 65 74 20 75 70 20 70  |.:...). set up p|
00000020  72 6f 67 72 61 6d 20 6d  6f 64 65 2c 20 76 61 72  |rogram mode, var|
00000030  69 61 62 6c 65 73 20 65  74 63 2c 0d 00 28 05 3a  |iables etc,..(.:|
00000040  0d 00 32 2f 2a 52 4d 45  4e 53 55 52 45 20 33 44  |..2/*RMENSURE 3D|
00000050  47 72 61 70 68 69 63 73  20 30 2e 30 31 20 52 4d  |Graphics 0.01 RM|
00000060  4c 4f 41 44 20 33 44 47  52 41 50 48 49 43 53 0d  |LOAD 3DGRAPHICS.|
00000070  00 3c 06 eb 30 0d 00 46  0e c8 91 20 36 34 30 2c  |.<..0..F... 640,|
00000080  35 31 32 0d 00 50 05 87  0d 00 5a 11 de 20 62 6c  |512..P....Z.. bl|
00000090  6f 63 6b 25 20 31 30 32  34 0d 00 64 16 de 20 70  |ock% 1024..d.. p|
000000a0  6c 6f 74 5f 62 6c 6f 63  6b 25 20 31 30 32 34 0d  |lot_block% 1024.|
000000b0  00 6e 05 3a 0d 00 78 1a  f4 20 52 65 61 64 20 69  |.n.:..x.. Read i|
000000c0  6e 20 43 6f 2d 4f 72 64  69 6e 61 74 65 73 0d 00  |n Co-Ordinates..|
000000d0  82 05 3a 0d 00 8c 08 54  25 3d 30 0d 00 96 05 f5  |..:....T%=0.....|
000000e0  0d 00 a0 08 f3 20 76 25  0d 00 aa 17 21 28 62 6c  |..... v%....!(bl|
000000f0  6f 63 6b 25 2b 28 54 25  2a 34 29 29 3d 76 25 0d  |ock%+(T%*4))=v%.|
00000100  00 b4 09 54 25 2b 3d 31  0d 00 be 0c fd 20 76 25  |...T%+=1..... v%|
00000110  3d 32 35 36 0d 00 c8 05  3a 0d 00 d2 1b f4 20 53  |=256....:..... S|
00000120  65 74 20 75 70 20 69 6e  69 74 69 61 6c 20 61 6e  |et up initial an|
00000130  67 6c 65 73 0d 00 dc 05  3a 0d 00 e6 08 78 25 3d  |gles....:....x%=|
00000140  30 0d 00 f0 0a 79 25 3d  31 38 30 0d 00 fa 0a 7a  |0....y%=180....z|
00000150  25 3d 32 37 30 0d 01 04  0b 76 69 65 77 25 3d 30  |%=270....view%=0|
00000160  0d 01 0e 05 3a 0d 01 18  05 f5 0d 01 22 21 c8 99  |....:......."!..|
00000170  20 36 2c 31 31 33 2c 32  3a c8 99 20 36 2c 31 31  | 6,113,2:.. 6,11|
00000180  32 2c 31 3a f2 73 63 72  65 65 6e 0d 01 2c 21 c8  |2,1:.screen..,!.|
00000190  99 20 36 2c 31 31 33 2c  31 3a c8 99 20 36 2c 31  |. 6,113,1:.. 6,1|
000001a0  31 32 2c 32 3a f2 73 63  72 65 65 6e 0d 01 36 07  |12,2:.screen..6.|
000001b0  fd 20 a3 0d 01 40 05 3a  0d 01 4a 0c dd f2 73 63  |. ...@.:..J...sc|
000001c0  72 65 65 6e 0d 01 54 09  7a 25 2b 3d 32 0d 01 5e  |reen..T.z%+=2..^|
000001d0  09 79 25 2b 3d 31 0d 01  68 05 3a 0d 01 72 44 f4  |.y%+=1..h.:..rD.|
000001e0  20 54 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 6c  | The following l|
000001f0  69 6e 65 20 63 61 6c 63  75 6c 61 74 65 73 20 61  |ine calculates a|
00000200  6c 6c 20 74 68 65 20 33  44 20 70 6f 69 6e 74 73  |ll the 3D points|
00000210  20 69 6e 74 6f 20 32 44  20 70 6f 69 6e 74 73 0d  | into 2D points.|
00000220  01 7c 05 3a 0d 01 86 41  c8 99 20 22 56 65 63 74  |.|.:...A.. "Vect|
00000230  6f 72 5f 43 61 6c 63 75  6c 61 74 65 4f 62 6a 65  |or_CalculateObje|
00000240  63 74 22 2c 62 6c 6f 63  6b 25 2c 70 6c 6f 74 5f  |ct",block%,plot_|
00000250  62 6c 6f 63 6b 25 2c 78  25 2c 79 25 2c 7a 25 2c  |block%,x%,y%,z%,|
00000260  76 69 65 77 25 0d 01 90  05 3a 0d 01 9a 3a f4 20  |view%....:...:. |
00000270  54 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 6c 69  |The following li|
00000280  6e 65 20 70 6c 6f 74 73  20 74 68 65 20 32 44 20  |ne plots the 2D |
00000290  70 6f 69 6e 74 73 20 6f  6e 20 74 68 65 20 73 63  |points on the sc|
000002a0  72 65 65 6e 0d 01 a4 06  c8 96 0d 01 ae 05 db 0d  |reen............|
000002b0  01 b8 2a c8 99 20 22 56  65 63 74 6f 72 5f 50 6c  |..*.. "Vector_Pl|
000002c0  6f 74 4f 62 6a 65 63 74  4c 69 6e 65 22 2c 70 6c  |otObjectLine",pl|
000002d0  6f 74 5f 62 6c 6f 63 6b  25 0d 01 c2 05 e1 0d 01  |ot_block%.......|
000002e0  cc 05 3a 0d 01 d6 16 f4  20 43 6f 2d 4f 72 64 69  |..:..... Co-Ordi|
000002f0  6e 61 74 65 20 44 61 74  61 0d 01 e0 2c f4 20 3c  |nate Data...,. <|
00000300  44 41 54 41 20 32 35 36  2c 30 2c 30 2c 30 3e 20  |DATA 256,0,0,0> |
00000310  54 65 72 6d 69 6e 61 74  65 73 20 44 61 74 61 20  |Terminates Data |
00000320  42 6c 6f 63 6b 0d 01 ea  05 3a 0d 01 f4 11 dc 20  |Block....:..... |
00000330  34 2c 33 30 30 2c 33 30  30 2c 30 0d 01 fe 11 dc  |4,300,300,0.....|
00000340  20 34 2c 35 30 30 2c 33  30 30 2c 30 0d 02 08 13  | 4,500,300,0....|
00000350  dc 20 32 30 35 2c 33 30  30 2c 35 30 30 2c 30 0d  |. 205,300,500,0.|
00000360  02 bc 0f dc 20 32 35 36  2c 30 2c 30 2c 30 0d ff  |.... 256,0,0,0..|
00000370