home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 June
/
SIMTEL_0692.cdr
/
msdos
/
ddjmag
/
ddj8804.arc
/
PORTER.ARC
/
PORTER.LS4
< prev
next >
Wrap
Text File
|
1980-01-01
|
2KB
|
57 lines
MODULE MathPlot;
(* Graphs the function y = cos x + sin 2x using LineDwg *)
(* K. Porter, DDJ, April 88 *)
FROM MathLib0 IMPORT sin, cos, real, entier;
FROM LineDwg IMPORT line, dot, clear, WriteString, Px, Py;
FROM InOut IMPORT Read;
FROM SYSTEM IMPORT REGISTERS, INT;
VAR x, sx, cx, y : REAL;
xc : INTEGER;
ch : CHAR;
reg : REGISTERS;
PROCEDURE yc (y : REAL) : INTEGER;
BEGIN
RETURN entier (y * 100.0) + 300;
END yc;
BEGIN
clear;
Px := 0; Py := 300; line (0, 800); (* x axis *)
Px := 0; Py := yc (1.0); (* grids *)
WriteString (" 1");
dot (2, Px, Py); (* set dark gray *)
line (0, 750);
Px := 0; Py := yc (-1.0);
WriteString (" -1"); line (0, 750);
FOR xc := 125 TO 799 BY 126 DO (* vertical grids *)
Px := xc; Py := yc (2.0); line (6, 400);
END;
Px := 310; Py := 599;
WriteString ("y = cos x + sin 2x ");
FOR xc := 1 TO 799 DO
x := real (xc) / 80.0; (* x to radians *)
sx := sin (2.0 * x);
dot (2, xc, yc (sx)); (* plot sine in dark gray *)
cx := cos (x);
dot (1, xc, yc (cx)); (* cos in light gray *)
y := sx + cx;
dot (0, xc, yc (y)); (* plot function in white *)
END;
Read (ch);
reg.AH := 0; reg.AL := 3; INT (16, reg) (* text mode *)
END MathPlot.
-30-