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