Home » Archimedes archive » Archimedes World » AW-1994-02-Disc1.adf » Disk1Feb94 » !AWFeb94/Goodies/Basic/Flatness/Flatness1

!AWFeb94/Goodies/Basic/Flatness/Flatness1

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-1994-02-Disc1.adf » Disk1Feb94
Filename: !AWFeb94/Goodies/Basic/Flatness/Flatness1
Read OK:
File size: 0187 bytes
Load address: 0000
Exec address: 0000
File contents
    1MODE MODE
    2ORIGIN 400,512
    3NoOfSteps%=1
    4REPEAT
    5 PRINT TAB(0,0);"Number of steps=";NoOfSteps%
    6 PROCBezier(0,0,0,200,400,200,400,0)
    7 NoOfSteps%=2*NoOfSteps%
    8 x$=GET$
    9UNTIL FALSE
   10END
   11
   12DEF PROCBezier(X%,Y%,a%,b%,c%,d%,x%,y%)
   13FOR t=0 TO 1 STEP 1/NoOfSteps%
   14 u=X%*(1-t)^3+a%*3*t*(1-t)^2+c%*3*t^2*(1-t)+x%*t^3
   15 v=Y%*(1-t)^3+b%*3*t*(1-t)^2+d%*3*t^2*(1-t)+y%*t^3
   16 IF t=0 THEN MOVE u,v ELSE DRAW u,v
   17NEXT
   18ENDPROC 
   19
� �
ȑ 400,512
NoOfSteps%=1
�
* � �0,0);"Number of steps=";NoOfSteps%
% �Bezier(0,0,0,200,400,200,400,0)
 NoOfSteps%=2*NoOfSteps%
	 x$=�
	� �

�

&� �Bezier(X%,Y%,a%,b%,c%,d%,x%,y%)

� t=0 � 1 � 1/NoOfSteps%
6 u=X%*(1-t)^3+a%*3*t*(1-t)^2+c%*3*t^2*(1-t)+x%*t^3
6 v=Y%*(1-t)^3+b%*3*t*(1-t)^2+d%*3*t^2*(1-t)+y%*t^3
 � t=0 � � u,v � � u,v
�
� 

�
00000000  0d 00 01 07 eb 20 eb 0d  00 02 0e c8 91 20 34 30  |..... ....... 40|
00000010  30 2c 35 31 32 0d 00 03  10 4e 6f 4f 66 53 74 65  |0,512....NoOfSte|
00000020  70 73 25 3d 31 0d 00 04  05 f5 0d 00 05 2a 20 f1  |ps%=1........* .|
00000030  20 8a 30 2c 30 29 3b 22  4e 75 6d 62 65 72 20 6f  | .0,0);"Number o|
00000040  66 20 73 74 65 70 73 3d  22 3b 4e 6f 4f 66 53 74  |f steps=";NoOfSt|
00000050  65 70 73 25 0d 00 06 25  20 f2 42 65 7a 69 65 72  |eps%...% .Bezier|
00000060  28 30 2c 30 2c 30 2c 32  30 30 2c 34 30 30 2c 32  |(0,0,0,200,400,2|
00000070  30 30 2c 34 30 30 2c 30  29 0d 00 07 1c 20 4e 6f  |00,400,0).... No|
00000080  4f 66 53 74 65 70 73 25  3d 32 2a 4e 6f 4f 66 53  |OfSteps%=2*NoOfS|
00000090  74 65 70 73 25 0d 00 08  09 20 78 24 3d be 0d 00  |teps%.... x$=...|
000000a0  09 07 fd 20 a3 0d 00 0a  05 e0 0d 00 0b 04 0d 00  |... ............|
000000b0  0c 26 dd 20 f2 42 65 7a  69 65 72 28 58 25 2c 59  |.&. .Bezier(X%,Y|
000000c0  25 2c 61 25 2c 62 25 2c  63 25 2c 64 25 2c 78 25  |%,a%,b%,c%,d%,x%|
000000d0  2c 79 25 29 0d 00 0d 1c  e3 20 74 3d 30 20 b8 20  |,y%)..... t=0 . |
000000e0  31 20 88 20 31 2f 4e 6f  4f 66 53 74 65 70 73 25  |1 . 1/NoOfSteps%|
000000f0  0d 00 0e 36 20 75 3d 58  25 2a 28 31 2d 74 29 5e  |...6 u=X%*(1-t)^|
00000100  33 2b 61 25 2a 33 2a 74  2a 28 31 2d 74 29 5e 32  |3+a%*3*t*(1-t)^2|
00000110  2b 63 25 2a 33 2a 74 5e  32 2a 28 31 2d 74 29 2b  |+c%*3*t^2*(1-t)+|
00000120  78 25 2a 74 5e 33 0d 00  0f 36 20 76 3d 59 25 2a  |x%*t^3...6 v=Y%*|
00000130  28 31 2d 74 29 5e 33 2b  62 25 2a 33 2a 74 2a 28  |(1-t)^3+b%*3*t*(|
00000140  31 2d 74 29 5e 32 2b 64  25 2a 33 2a 74 5e 32 2a  |1-t)^2+d%*3*t^2*|
00000150  28 31 2d 74 29 2b 79 25  2a 74 5e 33 0d 00 10 1a  |(1-t)+y%*t^3....|
00000160  20 e7 20 74 3d 30 20 8c  20 ec 20 75 2c 76 20 8b  | . t=0 . . u,v .|
00000170  20 df 20 75 2c 76 0d 00  11 05 ed 0d 00 12 06 e1  | . u,v..........|
00000180  20 0d 00 13 04 0d ff                              | ......|
00000187