Files
Arquivotheca.Solaris-2.5/ucbcmd/plot/libplot/dumb/subr.c
seta75D 7c4988eac0 Init
2021-10-11 19:38:01 -03:00

61 lines
1.3 KiB
C
Executable File

/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
#ident "@(#)subr.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
/*
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
* All Rights Reserved.
*/
#include "dumb.h"
/* Does not plot first point -- assumed that it is already plotted */
dda_line(ch, x0, y0, x1, y1)
char ch;
int x0, y0; /* already transformed to screen coords */
int x1, y1; /* untransformed */
{
int length, i;
double deltaX, deltaY;
double x, y;
double floor();
int abs();
scale(x1, y1);
length = abs(x1 - x0);
if (abs(y1 -y0) > length)
length = abs(y1 - y0);
if (length == 0)
return;
deltaX = (double) (x1 - x0)/(double) length;
deltaY = (double) (y1 - y0)/(double) length;
x = (double) x0 + 0.5;
y = (double) y0 + 0.5;
for (i=0; i < length; ++i) {
x += deltaX;
y += deltaY;
x0 = floor(x);
y0 = floor(y);
currentx = x0;
currenty = y0;
screenmat[currentx][currenty] = ch;
}
}