summaryrefslogtreecommitdiff
path: root/ipl/gprogs/design3.icn
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-01-27 23:51:56 +0000
committerIgor Pashev <pashev.igor@gmail.com>2013-01-27 23:51:56 +0000
commit6ab0c0f5bf14ed9c15370407b9ee7e0b4b089ae1 (patch)
tree926065cf45450116098db664e3c61dced9e1f21a /ipl/gprogs/design3.icn
downloadicon-6ab0c0f5bf14ed9c15370407b9ee7e0b4b089ae1.tar.gz
Initial upstream version 9.4.3upstream/9.4.3
Diffstat (limited to 'ipl/gprogs/design3.icn')
-rw-r--r--ipl/gprogs/design3.icn63
1 files changed, 63 insertions, 0 deletions
diff --git a/ipl/gprogs/design3.icn b/ipl/gprogs/design3.icn
new file mode 100644
index 0000000..3e31dbc
--- /dev/null
+++ b/ipl/gprogs/design3.icn
@@ -0,0 +1,63 @@
+############################################################################
+#
+# File: design3.icn
+#
+# Subject: Program to draw square design
+#
+# Author: Ralph E. Griswold
+#
+# Date: February 17, 1995
+#
+############################################################################
+#
+# This file is in the public domain.
+#
+############################################################################
+#
+# This program draws a design in which i points around a square are
+# all connected to each other. The number of points along a side
+# (default 10) and the distance between them (default 40) are given as
+# command-line arguments.
+#
+############################################################################
+#
+# Requires: Version 9 graphics
+#
+############################################################################
+#
+# Links: gobject, joinpair, wopen
+#
+############################################################################
+
+link gobject
+link joinpair
+link wopen
+
+procedure main(argl)
+ local i, j, k, d, extent, points, x, y
+
+ i := integer(argl[1]) | 10
+ d := integer(argl[2]) | 40
+
+ extent := i * d
+
+ WOpen("label=mandala", "width=" || extent, "height=" || extent) |
+ stop("*** cannot open window")
+
+ points := []
+
+ every x := 0 to extent by d do { # x direction, with corners
+ put(points, Point(x, 0)) # top
+ put(points, Point(x, extent)) # bottom
+ }
+
+ every y := d to extent - d by d do { # y direction, without corners
+ put(points, Point(0, y)) # left side
+ put(points, Point(extent, y)) # right side
+ }
+
+ joinpair(points, points)
+
+ Event()
+
+end