summaryrefslogtreecommitdiff
path: root/usr/src/ucbcmd/plot/libplot/aed/space.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/ucbcmd/plot/libplot/aed/space.c')
-rw-r--r--usr/src/ucbcmd/plot/libplot/aed/space.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/usr/src/ucbcmd/plot/libplot/aed/space.c b/usr/src/ucbcmd/plot/libplot/aed/space.c
new file mode 100644
index 0000000000..1bbc37b7e5
--- /dev/null
+++ b/usr/src/ucbcmd/plot/libplot/aed/space.c
@@ -0,0 +1,46 @@
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+
+#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */
+
+/*
+ * Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
+ * All Rights Reserved.
+ */
+
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+
+#include "aed.h"
+
+/*---------------------------------------------------------
+ * Space sets up the world-to-screen transformation so
+ * that the rectangular area described by (x0, y0) and
+ * (x1, y1) will all be on-screen.
+ *
+ * Results: None.
+ *
+ * Side Effects:
+ * Our own variables scale, xbot, and ybot are changed.
+ *---------------------------------------------------------
+ */
+space(x0, y0, x1, y1)
+int x0, y0, x1, y1;
+{
+ int xscale, yscale, xsize, ysize;
+ xscale = (GRXMAX<<12)/(x1-x0);
+ yscale = (GRYMAX<<12)/(y1-y0);
+ if (xscale > yscale) scale = yscale;
+ else scale = xscale;
+ scale = (scale*9)/10 - 1;
+ if (scale<1) scale = 1;
+ xsize = (2048*GRXMAX)/scale + 1;
+ xbot = (x1+x0)/2 - xsize;
+ ysize = (2048*GRYMAX)/scale + 1;
+ ybot = (y1+y0)/2 - ysize;
+}