File: GRAPH.FC of Tape: Sources/Focal/fc3
(.FC,.FO Focal format converted to 'WRITE' listing)
C-PS/8 FOCAL, 1971 01.01 C GRAPH BY STEVE POULSEN 01.02 C OMSI SOFTWARE DEVELOPEMENT GROUP 01.03 C LAST CHANGE: 8/31/71 01.04 C ***** TEKTRONIX T-4002 GRAPHICS TERMINAL REQUIRED ***** 01.05 01.06 C THIS PROGRAM WILL GRAPH ANY TWO DIMENSIONAL EQUATION ON 01.07 C AN EUCLIDEAN GRAPH. TYPE ANYTHING BUT YES IF YOU WANT TO 01.08 C INPUT AN EQUATION WHEN ASKED IF THE EQUATION IS IN, AND THE 01.09 C COMPUTER WILL INTERRUPT THE PROGRAM AND ALLOW YOU TO MODIFY ITS 01.10 C INPUT EQUATION. IF YOU CHOOSE NOT TO MODIFY THE EQUATION, 01.11 C THE PROGRAM WILL ASSUME Y=FSIN(X). TYPE AN '=' AFTER THE 01.12 C CARRIAGE RETURN AND YOU WILL GET THE FIRST PART OF THE EQUATION 01.13 C SINCE IT IS IN MODIFY MODE. REMEMBER, THE EQUATION MUST BE Y 01.14 C IN TERMS OF X. 01.15 C ** X OFFSET IS THE VERTICAL DISPLACEMENT OF THE X AXIS. 01.16 C ** Y SCALING FACTOR SETS THE VERTICAL PLOT LIMIT OF THE SCREEN. 01.17 C ** X INCREMENT IS THE STEP. (EX: .001,.1,1,2,10,100,ETC.) 01.18 C WHEN INPUTTING YOUR EQUATION, REMEMBER THAT YOU ARE USING MODIFY 01.19 C IN FOCAL SO SINE AND COSINE (AND ALL OTHERS) MUST BEGIN WITH F. 01.20 E 01.21 I ((#/3)-FITR(#/3)) 1.22,1.28,1.22 01.22 T "YOU DO NOT HAVE ENOUGH FEATURES." 01.23 T " RESTART FOCAL WITH FEATURE 2.",!;Q 01.24 01.28 A !%6.03,"HAVE YOU ENTERED THE EQUATION? ",A1;I (A1-0YES) 1.29,1.3; 01.29 T !"ENTER EQUATION OF Y IN TERMS OF X"!!;M 30.1 01.30 A !"LOWER LIMIT OF X? ",X1,"UPPER LIMIT OF X? ",X2,"X INCREMENT",X3 01.40 A !"X OFFSET? ",X4,"Y SCALING FACTOR? ",Y1 01.50 S XS=1000/(X2-X1);S XC=-X1*XS 01.60 S YS=Y1*XS 01.70 S YC=380+X4*YS 01.80 F Q7=0,.2,FOUT(24); 02.10 I (XC) 2.5;I (1020-XC) 2.5;S Q8=FDIS(0,XC,0)+FDIS(1,XC,780) 02.20 S D1=FITR(FLOG(50/YS)/FLOG(10));S DV=FEXP(D1*FLOG(10)) 02.25 S Q8=FOUT(1);T "Y UNITS:",DV 02.30 F U1=FITR(-YC/(YS*DV))*DV,DV,FITR((760-YC)/(YS*DV))*DV;D 5.1 02.50 I (YC) 3.1;I (780-YC) 3.1;S Q8=FDIS(0,0,YC)+FDIS(1,1020,YC) 02.60 S D1=FITR(FLOG(50/XS)/FLOG(10));S DV=FEXP(D1*FLOG(10)) 02.65 S Q8=FOUT(1);T !"X UNITS:",DV 02.70 F U1=FITR(-XC/(XS*DV))*DV,DV,FITR((1020-XC)/(XS*DV))*DV;D 5.2 03.10 S I=0 03.20 F X=X1,X3,X2;D 30.1;D 4 03.30 S Q8=FOUT(1);T !!!;Q 04.10 S XP=XC+X*XS;S YP=YC+Y*YS 04.40 S R=FSQT((510-XP)^2+(510-YP)^2);I (R-510) 4.5;S I=0 04.50 S Q9=FDIS(I,XP,YP);I (R-510) 4.6;R 04.60 S I=1 05.10 S Q8=FDIS(0,XC-5,YC+YS*U1)+FDIS(1,XC+5,YC+YS*U1) 05.20 S Q8=FDIS(0,XC+XS*U1,YC-5)+FDIS(1,XC+XS*U1,YC+5) 30.10 S Y=FSIN(X)