1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: */
6:
7: #ifndef lint
8: static char sccsid[] = "@(#)subr.c 5.1 (Berkeley) 5/7/85";
9: #endif not lint
10:
11: #include "dumb.h"
12:
13: /* Does not plot first point -- assumed that it is already plotted */
14: dda_line(ch, x0, y0, x1, y1)
15: char ch;
16: int x0, y0; /* already transformed to screen coords */
17: int x1, y1; /* untransformed */
18: {
19: int length, i;
20: double deltaX, deltaY;
21: double x, y;
22: double floor();
23: int abs();
24:
25: scale(x1, y1);
26:
27: length = abs(x1 - x0);
28: if (abs(y1 -y0) > length)
29: length = abs(y1 - y0);
30:
31: if (length == 0)
32: return;
33:
34: deltaX = (double) (x1 - x0)/(double) length;
35: deltaY = (double) (y1 - y0)/(double) length;
36:
37: x = (double) x0 + 0.5;
38: y = (double) y0 + 0.5;
39:
40: for (i=0; i < length; ++i) {
41: x += deltaX;
42: y += deltaY;
43: x0 = floor(x);
44: y0 = floor(y);
45: currentx = x0;
46: currenty = y0;
47: screenmat[currentx][currenty] = ch;
48: }
49: }
Defined functions
Defined variables
sccsid
defined in line
8;
never used