C-PS/8 FOCAL, 1971 1.01 C GRAPH BY STEVE POULSEN 1.02 C OMSI SOFTWARE DEVELOPEMENT GROUP 1.03 C LAST CHANGE: 8/19/71 1.04 C ***** TEKTRONIX T-4002 GRAPHICS TERMINAL REQUIRED ***** 1.05 1.06 C THIS PROGRAM WILL GRAPH ANY TWO DIMENSIONAL EQUATION ON AN 1.07 C EUCLIDEAN GRAPH. TYPE ANYTHING BUT YES IF YOU WANT TO INPUT AN EQUATION 1.08 C WHEN ASKED IF THE EQUATION IS IN, AND THE COMPUTER WILL INTERRUPT 1.09 C THE PROGRAM AND ALLOW YOU TO MODIFY ITS INPUT EQUATION. IF YOU CHOOSE 1.10 C NOT TO MODIFY THE EQUATION THE PROGRAM WILL ASSUME Y=FSIN(X). TYPE 1.11 C AN = AFTER THE CARRIAGE RETURN AND YOU WILL GET THE FIRST PART OF 1.12 C THE EQUATION SINCE IT IS IN MODIFY MODE. REMEMBER, THE EQUATION 1.13 C MUST BE Y IN TERMS OF X. 1.14 C ** X INCREMENT IS THE STEP WITH WHICH YOU WISH THE GRAPH TO GO. 1.15 C ** X OFFSET IS THE VERTICAL DISPLACEMENT FROM THE CENTER OF THE X AXIS. 1.16 C ** Y SCALING FACTOR SETS THE VERTICAL PLOT LIMIT OF THE SCREEN. 1.17 1.18 C WHEN INPUTING YOUR EQUATION, REMEMBER THAT YOU ARE USING MODIFY IN 1.19 C FOCAL SO SINE AND COSINE (AND ALL OTHERS) MUST BEGIN WITH F. 1.20 E 1.21 I ((/3)-FITR(/3)) 1.22,1.28,1.22 1.22 T "YOU DO NOT HAVE ENOUGH FEATURES. RESTART FOCAL WITH FEATURE 2.",!;Q 1.23 1.28 A !%6.03,"HAVE YOU ENTERED THE EQUATION ",A1;I (A1-0YES) 1.2,1.3; 1.29 T !"ENTER EQUATION OF Y IN TERMS OF X"!!;M 30.1 1.30 A !"LOWER LIMIT OF X ",X1,"UPPER LIMIT OF X ",X2,"X INCREMENT",X3 1.40 A !"X OFFSET ",X4,"Y SCALING FACTOR ",Y1 1.50 S XS=1000/(X2-X1);S XC=-X1*XS 1.60 S YS=Y1*XS 1.70 S YC=380+X4*YS 1.80 F Q7=0,.2,FOUT(24); 2.10 I (XC) 2.5;I (1020-XC) 2.5;S Q8=FDIS(0,XC,0)+FDIS(1,XC,780) 2.20 S D1=FITR(FLOG(50/YS)/FLOG(10));S DV=FEXP(D1*FLOG(10)) 2.25 S Q8=FOUT(1);T "Y UNITS:",DV 2.30 F U1=FITR(-YC/(YS*DV))*DV,DV,FITR((760-YC)/(YS*DV))*DV;D 5.1 2.50 I (YC) 3.1;I (780-YC) 3.1;S Q8=FDIS(0,0,YC)+FDIS(1,1020,YC) 2.60 S D1=FITR(FLOG(50/XS)/FLOG(10));S DV=FEXP(D1*FLOG(10)) 2.65 S Q8=FOUT(1);T !"X UNITS:",DV 2.70 F U1=FITR(-XC/(XS*DV))*DV,DV,FITR((1020-XC)/(XS*DV))*DV;D 5.2 3.10 S I=0 3.20 F X=X1,X3,X2;D 30.1;D 4 3.30 S Q8=FOUT(1);T !!!;Q 4.10 S XP=XC+X*XS;S YP=YC+Y*YS 4.40 S R=FSQT((510-XP)^2+(510-YP)^2);I (R-510) 4.5;S I=0 4.50 S Q9=FDIS(I,XP,YP);I (R-510) 4.6;R 4.60 S I=1 5.10 S Q8=FDIS(0,XC-5,YC+YS*U1)+FDIS(1,XC+5,YC+YS*U1) 5.20 S Q8=FDIS(0,XC+XS*U1,YC-5)+FDIS(1,XC+XS*U1,YC+5) 30.10 S Y=FSIN(X)