summaryrefslogtreecommitdiff
path: root/graphics/epix/doc
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/epix/doc')
-rw-r--r--graphics/epix/doc/Makefile.am45
-rw-r--r--graphics/epix/doc/Makefile.in364
-rw-r--r--graphics/epix/doc/alignment.eepic19
-rw-r--r--graphics/epix/doc/alignment.xp26
-rw-r--r--graphics/epix/doc/alignment_lr.eepic17
-rw-r--r--graphics/epix/doc/alignment_lr.xp24
-rw-r--r--graphics/epix/doc/arrow.eepic22
-rw-r--r--graphics/epix/doc/arrow.xp18
-rw-r--r--graphics/epix/doc/arrow25.eepic22
-rw-r--r--graphics/epix/doc/arrow50.eepic22
-rw-r--r--graphics/epix/doc/basepoint.eepic16
-rw-r--r--graphics/epix/doc/basepoint.xp36
-rw-r--r--graphics/epix/doc/camera.eepic285
-rw-r--r--graphics/epix/doc/camera.xp86
-rw-r--r--graphics/epix/doc/cb.eepic25
-rw-r--r--graphics/epix/doc/cb.xp22
-rw-r--r--graphics/epix/doc/color_density.eepic139
-rw-r--r--graphics/epix/doc/color_density.xp42
-rw-r--r--graphics/epix/doc/dots.eepic19
-rw-r--r--graphics/epix/doc/dots.xp28
-rw-r--r--graphics/epix/doc/ePiX.eepic1099
-rw-r--r--graphics/epix/doc/ePiX.xp156
-rw-r--r--graphics/epix/doc/epix.info4696
-rw-r--r--graphics/epix/doc/graphpaper.eepic101
-rw-r--r--graphics/epix/doc/graphpaper.xp24
-rw-r--r--graphics/epix/doc/hello.eepic15
-rw-r--r--graphics/epix/doc/hello.xp20
-rw-r--r--graphics/epix/doc/koch.eepic160
-rw-r--r--graphics/epix/doc/koch.xp24
-rw-r--r--graphics/epix/doc/layout.eepic1511
-rw-r--r--graphics/epix/doc/layout.xp36
-rw-r--r--graphics/epix/doc/manual.pdfbin710725 -> 0 bytes
-rw-r--r--graphics/epix/doc/manual.tex5030
-rw-r--r--graphics/epix/doc/marker.eepic39
-rw-r--r--graphics/epix/doc/marker.xp68
-rw-r--r--graphics/epix/doc/my_code.cc15
-rw-r--r--graphics/epix/doc/my_code.h10
-rw-r--r--graphics/epix/doc/objects.eepic412
-rw-r--r--graphics/epix/doc/objects.xp33
-rw-r--r--graphics/epix/doc/pathstyle.eepic225
-rw-r--r--graphics/epix/doc/pathstyle.xp24
-rw-r--r--graphics/epix/doc/plot_a.eepic95
-rw-r--r--graphics/epix/doc/plot_a.xp27
-rw-r--r--graphics/epix/doc/plot_b.eepic225
-rw-r--r--graphics/epix/doc/plot_b.xp27
-rw-r--r--graphics/epix/doc/plotting.eepic82
-rw-r--r--graphics/epix/doc/plotting.xp26
-rw-r--r--graphics/epix/doc/plotting2.eepic1766
-rw-r--r--graphics/epix/doc/plotting2.xp29
-rw-r--r--graphics/epix/doc/plotting3.eepic146
-rw-r--r--graphics/epix/doc/plotting3.xp43
-rw-r--r--graphics/epix/doc/scaling.eepic56
-rw-r--r--graphics/epix/doc/scaling.xp37
-rw-r--r--graphics/epix/doc/sgn.eepic30
-rw-r--r--graphics/epix/doc/sgn.xp28
-rw-r--r--graphics/epix/doc/sinx.eepic40
-rw-r--r--graphics/epix/doc/sinx.xp23
-rw-r--r--graphics/epix/doc/slices.eepic45
-rw-r--r--graphics/epix/doc/slices.xp39
59 files changed, 0 insertions, 17739 deletions
diff --git a/graphics/epix/doc/Makefile.am b/graphics/epix/doc/Makefile.am
deleted file mode 100644
index ec9ac95e5f..0000000000
--- a/graphics/epix/doc/Makefile.am
+++ /dev/null
@@ -1,45 +0,0 @@
-# Makefile.am for ePiX v1.x "doc" directory
-#
-
-EPIXFLAGS = --no-defaults -I.. -L.. -lepix -v
-
-%.eepic: %.xp
- ../epix-local $(EPIXFLAGS) $<
-
-XPS := $(wildcard *.xp)
-
-EEPICS = $(XPS:.xp=.eepic)
-
-CLEANFILES = *~ *.aux *.dvi *.log *.out *.idx *.ilg *.ind *.toc \
- epix.info.bz2 manual_src.tar manual.pdf manual.ps \
- manual_src.tar.gz manual.pdf.gz manual.ps.gz manual-stamp
-
-MAINTAINERCLEANFILES = *.eepic *.aux *.dvi *.log *.out *.toc *.idx *.ind *.ilg
-
-## Targets ##
-doc_DATA = manual.pdf.gz manual.ps.gz manual_src.tar.gz epix.info.bz2
-
-
-# tar up tex, xp, and eepic files; build ps, pdf
-manual-stamp: manual.tex $(XPS) $(EEPICS)
- latex -interaction=batchmode manual &>/dev/null
- latex -interaction=batchmode manual &>/dev/null
- makeindex manual.idx &>/dev/null
- ../laps-local --pdf manual.tex
- touch manual-stamp
-
-manual_src.tar.gz: manual-stamp
- tar -cf manual_src.tar manual.aux manual.ind manual.tex manual.toc \
- $(XPS) $(EEPICS)
- gzip -9 manual_src.tar
-
-#PS
-manual.ps.gz: manual-stamp
- gzip -9 -c manual.ps > manual.ps.gz
-
-#PDF
-manual.pdf.gz: manual-stamp
- gzip -9 -c manual.pdf > manual.pdf.gz
-
-epix.info.bz2: manual-stamp epix.info
- bzip2 -fk epix.info
diff --git a/graphics/epix/doc/Makefile.in b/graphics/epix/doc/Makefile.in
deleted file mode 100644
index 293c547251..0000000000
--- a/graphics/epix/doc/Makefile.in
+++ /dev/null
@@ -1,364 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Makefile.am for ePiX v1.x "doc" directory
-#
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(docdir)"
-docDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(doc_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BASH_PATH = @BASH_PATH@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_EPIX_EL_FALSE = @ENABLE_EPIX_EL_FALSE@
-ENABLE_EPIX_EL_TRUE = @ENABLE_EPIX_EL_TRUE@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RUNTIME_COMPILER = @RUNTIME_COMPILER@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-EPIXFLAGS = --no-defaults -I.. -L.. -lepix -v
-XPS := $(wildcard *.xp)
-EEPICS = $(XPS:.xp=.eepic)
-CLEANFILES = *~ *.aux *.dvi *.log *.out *.idx *.ilg *.ind *.toc \
- epix.info.bz2 manual_src.tar manual.pdf manual.ps \
- manual_src.tar.gz manual.pdf.gz manual.ps.gz manual-stamp
-
-MAINTAINERCLEANFILES = *.eepic *.aux *.dvi *.log *.out *.toc *.idx *.ind *.ilg
-doc_DATA = manual.pdf.gz manual.ps.gz manual_src.tar.gz epix.info.bz2
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu doc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-install-docDATA: $(doc_DATA)
- @$(NORMAL_INSTALL)
- test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
- @list='$(doc_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \
- $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
- done
-
-uninstall-docDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(doc_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
- rm -f "$(DESTDIR)$(docdir)/$$f"; \
- done
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
- for dir in "$(DESTDIR)$(docdir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-docDATA
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-docDATA uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-docDATA install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-docDATA \
- uninstall-info-am
-
-
-%.eepic: %.xp
- ../epix-local $(EPIXFLAGS) $<
-
-# tar up tex, xp, and eepic files; build ps, pdf
-manual-stamp: manual.tex $(XPS) $(EEPICS)
- latex -interaction=batchmode manual &>/dev/null
- latex -interaction=batchmode manual &>/dev/null
- makeindex manual.idx &>/dev/null
- ../laps-local --pdf manual.tex
- touch manual-stamp
-
-manual_src.tar.gz: manual-stamp
- tar -cf manual_src.tar manual.aux manual.ind manual.tex manual.toc \
- $(XPS) $(EEPICS)
- gzip -9 manual_src.tar
-
-#PS
-manual.ps.gz: manual-stamp
- gzip -9 -c manual.ps > manual.ps.gz
-
-#PDF
-manual.pdf.gz: manual-stamp
- gzip -9 -c manual.pdf > manual.pdf.gz
-
-epix.info.bz2: manual-stamp epix.info
- bzip2 -fk epix.info
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/graphics/epix/doc/alignment.eepic b/graphics/epix/doc/alignment.eepic
deleted file mode 100644
index 1c5d93bd48..0000000000
--- a/graphics/epix/doc/alignment.eepic
+++ /dev/null
@@ -1,19 +0,0 @@
-%% Generated from alignment.xp on Fri Jan 7 14:18:43 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [-1,1] x [-1,1]
-%% Actual size: 72pt x 24pt
-%% Figure offset: right by 0pt, up by 0pt
-%%
-\setlength{\unitlength}{1pt}
-\begin{picture}(72,24)(-0,-0)
-%% ---
-\path(0.00140226,12)(12.001,12)(24.0006,12)(36.0002,12)(47.9998,12)
- (59.9994,12)(71.999,12)
-\path(36,0.00046742)(36,12.0001)(36,23.9997)
-\put(36,12){\makebox(0,0)[bl]{\texttt{[tr]}}}
-\put(36,12){\makebox(0,0)[c]{{\circle*{3}}}}
-\put(36,12){\makebox(0,0)[br]{\texttt{[tl]}}}
-\put(36,12){\makebox(0,0)[tl]{\texttt{[br]}}}
-\put(36,12){\makebox(0,0)[tr]{\texttt{[bl]}}}
-\end{picture}
diff --git a/graphics/epix/doc/alignment.xp b/graphics/epix/doc/alignment.xp
deleted file mode 100644
index e6bfc3c298..0000000000
--- a/graphics/epix/doc/alignment.xp
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*-ePiX-*- */
-/* alignment.c -- ePiX's reverse-LaTeX label alignment option */
-#include "epix.h"
-using namespace ePiX;
-
-P O(0,0);
-
-int main()
-{
- bounding_box(P(-1,-1), P(1,1));
- picture(P(72,24));
- unitlength("1pt");
-
- begin();
-
- Line(O, E_1);
- Line(O, E_2);
-
- font_face("tt");
- dot(O, P(0,0), "[tr]", tr);
- label(O, P(0,0), "[tl]", tl);
- label(O, P(0,0), "[br]", br);
- label(O, P(0,0), "[bl]", bl);
-
- end();
-}
diff --git a/graphics/epix/doc/alignment_lr.eepic b/graphics/epix/doc/alignment_lr.eepic
deleted file mode 100644
index 111098caf3..0000000000
--- a/graphics/epix/doc/alignment_lr.eepic
+++ /dev/null
@@ -1,17 +0,0 @@
-%% Generated from alignment_lr.xp on Fri Jan 7 14:18:31 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [-1,1] x [-1,1]
-%% Actual size: 72pt x 24pt
-%% Figure offset: right by 0pt, up by 0pt
-%%
-\setlength{\unitlength}{1pt}
-\begin{picture}(72,24)(-0,-0)
-%% ---
-\put(0,12){\makebox(0,0)[r]{\texttt{[l]}}}
-\put(0,12){\makebox(0,0)[c]{{\circle*{3}}}}
-\put(0,12){\makebox(0,0)[l]{\texttt{[r]}}}
-\put(72,12){\makebox(0,0)[b]{\texttt{[t]}}}
-\put(72,12){\makebox(0,0)[c]{{\circle*{3}}}}
-\put(72,12){\makebox(0,0)[t]{\texttt{[b]}}}
-\end{picture}
diff --git a/graphics/epix/doc/alignment_lr.xp b/graphics/epix/doc/alignment_lr.xp
deleted file mode 100644
index a6871278e3..0000000000
--- a/graphics/epix/doc/alignment_lr.xp
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*-ePiX-*- */
-/* alignment_lr.c -- ePiX's reverse-LaTeX label alignment option */
-#include "epix.h"
-using namespace ePiX;
-
-P p1(-1,0), p2(1,0);
-
-int main()
-{
- bounding_box(P(-1,-1), P(1,1));
- picture(P(72,24));
- unitlength("1pt");
-
- begin();
-
- font_face("tt");
- dot(p1, P(0,0), "[l]", l);
- label(p1, P(0,0), "[r]", r);
-
- dot(p2, P(0,0), "[t]", t);
- label(p2, P(0,0), "[b]", b);
-
- end();
-}
diff --git a/graphics/epix/doc/arrow.eepic b/graphics/epix/doc/arrow.eepic
deleted file mode 100644
index 98adf21b49..0000000000
--- a/graphics/epix/doc/arrow.eepic
+++ /dev/null
@@ -1,22 +0,0 @@
-%% Generated from arrows.xp on Mon Jul 2 20:38:11 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 24 x 12pt
-%% Figure offset: left by 0pt, down by 0pt
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\setlength{\unitlength}{1pt}
-\begin{picture}(24,12)(-0,-0)
-\path(0,6)(24,6)
-%%
-\path(17.8125,4.875)(15.75,4.875)
-\path(19.875,5.25)(15.75,5.25)
-\path(21.9375,5.625)(15.75,5.625)
-\path(24,6)(15.75,6)
-\path(21.9375,6.375)(15.75,6.375)
-\path(19.875,6.75)(15.75,6.75)
-\path(17.8125,7.125)(15.75,7.125)
-\path(15.75,6)(15.75,4.5)(24,6)(15.75,7.5)(15.75,6)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/arrow.xp b/graphics/epix/doc/arrow.xp
deleted file mode 100644
index 34c47ad5e0..0000000000
--- a/graphics/epix/doc/arrow.xp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- picture(P(-2,-1),P(2,1), "24x12pt");
-
- begin();
-#ifdef CAMBER25
- arrow_camber(0.25);
-#elif CAMBER50
- arrow_camber(0.5);
-#endif
-
- arrow(P(xmin(),0), P(xmax(),0));
- end();
-}
diff --git a/graphics/epix/doc/arrow25.eepic b/graphics/epix/doc/arrow25.eepic
deleted file mode 100644
index 196889e2b2..0000000000
--- a/graphics/epix/doc/arrow25.eepic
+++ /dev/null
@@ -1,22 +0,0 @@
-%% Generated from arrows.xp on Mon Jul 2 20:38:23 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 24 x 12pt
-%% Figure offset: left by 0pt, down by 0pt
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\setlength{\unitlength}{1pt}
-\begin{picture}(24,12)(-0,-0)
-\path(0,6)(24,6)
-%%
-\path(17.8125,4.875)(16.2656,4.875)
-\path(19.875,5.25)(16.7813,5.25)
-\path(21.9375,5.625)(17.2969,5.625)
-\path(24,6)(17.8125,6)
-\path(21.9375,6.375)(17.2969,6.375)
-\path(19.875,6.75)(16.7813,6.75)
-\path(17.8125,7.125)(16.2656,7.125)
-\path(17.8125,6)(15.75,4.5)(24,6)(15.75,7.5)(17.8125,6)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/arrow50.eepic b/graphics/epix/doc/arrow50.eepic
deleted file mode 100644
index e22fec0fd0..0000000000
--- a/graphics/epix/doc/arrow50.eepic
+++ /dev/null
@@ -1,22 +0,0 @@
-%% Generated from arrows.xp on Mon Jul 2 20:38:34 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 24 x 12pt
-%% Figure offset: left by 0pt, down by 0pt
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\setlength{\unitlength}{1pt}
-\begin{picture}(24,12)(-0,-0)
-\path(0,6)(24,6)
-%%
-\path(17.8125,4.875)(16.7813,4.875)
-\path(19.875,5.25)(17.8125,5.25)
-\path(21.9375,5.625)(18.8438,5.625)
-\path(24,6)(19.875,6)
-\path(21.9375,6.375)(18.8438,6.375)
-\path(19.875,6.75)(17.8125,6.75)
-\path(17.8125,7.125)(16.7813,7.125)
-\path(19.875,6)(15.75,4.5)(24,6)(15.75,7.5)(19.875,6)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/basepoint.eepic b/graphics/epix/doc/basepoint.eepic
deleted file mode 100644
index efd76dfaa5..0000000000
--- a/graphics/epix/doc/basepoint.eepic
+++ /dev/null
@@ -1,16 +0,0 @@
-%% Generated from basepoint.xp on Tue Jan 4 15:32:04 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [0,3.75] x [0,1]
-%% Actual size: 3.75pc x 1pc
-%% Figure offset: right by 0pc, up by 0pc
-%%
-\setlength{\unitlength}{1pc}
-\begin{picture}(3.75,1)(-0,-0)
-%% ---
-\path(0,-0.375)(3.75,-0.375)(3.75,1)(0,1)(0,-0.375)
-\allinethickness{0.15pt}%
-\path(0,0)(3.75,0)
-\put(0,0){$y=f(x)$}
-\put(0,0){\makebox(0,0)[c]{{\circle*{0.111111}}}}
-\end{picture}
diff --git a/graphics/epix/doc/basepoint.xp b/graphics/epix/doc/basepoint.xp
deleted file mode 100644
index 7fc15f6cb1..0000000000
--- a/graphics/epix/doc/basepoint.xp
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main() {
- bounding_box(P(0,0),P(3.75,1));
- unitlength("1pc");
- picture(3.75,1);
- // offset(-0.5,0);
-
- begin();
-
- rect(P(x_min, y_min-0.375), P(x_max, y_max));
-
- pen(0.15);
- line(P(x_min,0), P(x_max,0));
-
- dot_size(2);
-
- // std::cout << "\n\\LARGE";
- /*
- label(P(0,0), P(0,0), "$b$");
- ddot(P(0,0));
-
- label(P(1,0), P(0,0), "$f$");
- ddot(P(1,0));
-
- label(P(2,0), P(0,0), "$p$");
- ddot(P(2,0));
- */
-
- label(P(0,0), P(0,0), "$y=f(x)$");
- ddot(P(0,0));
-
- end();
-}
diff --git a/graphics/epix/doc/camera.eepic b/graphics/epix/doc/camera.eepic
deleted file mode 100644
index 7da56f9987..0000000000
--- a/graphics/epix/doc/camera.eepic
+++ /dev/null
@@ -1,285 +0,0 @@
-%% Generated from camera.xp on Sat Sep 22 17:10:34 EDT 2007 by
-%% ePiX-1.2.0
-%%
-%% Cartesian bounding box: [-3.5,3.5] x [-3.5,2.5]
-%% Actual size: 2.625 x 2.25in
-%% Figure offset: left by 0in, down by 0in
-%%
-%% usepackages epic,eepic,xcolor
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}%
-\xdefinecolor{rgb_7f7f7f}{rgb}{0.498039,0.498039,0.498039}%
-\xdefinecolor{rgb_e5e5e5}{rgb}{0.898039,0.898039,0.898039}%
-\xdefinecolor{rgb_ffffff}{rgb}{1,1,1}%
-\setlength{\unitlength}{1in}%
-\begin{picture}(2.625,2.25)(0,0)%
-\path(1.42243,1.30711)(1.4086,1.26997)(1.29561,1.27568)
-\path(1.3125,1.3125)(1.4523,1.30564)(1.59359,1.29871)
-\path(1.3125,1.3125)(1.3125,1.44704)(1.3125,1.58496)
-\path(0.307912,0.721822)(0.173332,2.09409)(2.55902,2.04543)
- (2.39965,0.566596)(0.307912,0.721822)
-\put(1.58249,0.490175){\makebox(0,0)[l]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize \textbf{Sea}}}}}
-\put(0.937572,1.11972){\makebox(0,0)[b]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize \textbf{Sky}}}}}
-\put(0.735053,0.174015){\makebox(0,0)[r]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize \textbf{Eye}}}}}
-\put(0.929482,0.537641){\makebox(0,0)[r]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize Viewpoint}}}}
-\put(0.957156,0.537641){\color{rgb_000000}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(2.476,2.01776){\makebox(0,0)[tr]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize Canvas}}}}
-\path(0.957156,0.537641)(1.17567,1.01413)(1.3125,1.3125)
-\color{rgb_7f7f7f}%
-\path(1.83216,0.911179)(1.84054,0.911179)
-\path(1.82052,0.916691)(1.83729,0.916691)
-\path(1.80888,0.922203)(1.83404,0.922203)
-\path(1.79724,0.927715)(1.83079,0.927715)
-\path(1.7856,0.933227)(1.82754,0.933227)
-\path(1.77396,0.938739)(1.82429,0.938739)
-\path(1.76232,0.944251)(1.82104,0.944251)
-\path(1.75068,0.949763)(1.81779,0.949763)
-\path(1.73904,0.955275)(1.81454,0.955275)
-\path(1.7274,0.960787)(1.81129,0.960787)
-\path(1.71576,0.966299)(1.80804,0.966299)
-\path(1.70412,0.971811)(1.80479,0.971811)
-\path(1.69248,0.977323)(1.80154,0.977323)
-\path(1.68084,0.982835)(1.79829,0.982835)
-\path(1.6692,0.988347)(1.79503,0.988347)
-\path(1.65756,0.993859)(1.79178,0.993859)
-\path(1.64592,0.999371)(1.78853,0.999371)
-\path(1.63428,1.00488)(1.78528,1.00488)
-\path(1.62264,1.0104)(1.78203,1.0104)
-\path(1.611,1.01591)(1.77878,1.01591)
-\path(1.60612,1.02142)(1.77553,1.02142)
-\path(1.60892,1.02693)(1.77228,1.02693)
-\path(1.61172,1.03244)(1.76903,1.03244)
-\path(1.61452,1.03796)(1.76578,1.03796)
-\path(1.61732,1.04347)(1.76253,1.04347)
-\path(1.62012,1.04898)(1.75928,1.04898)
-\path(1.62292,1.05449)(1.75603,1.05449)
-\path(1.62572,1.06)(1.75278,1.06)
-\path(1.62852,1.06551)(1.74952,1.06551)
-\path(1.63132,1.07103)(1.74627,1.07103)
-\path(1.63412,1.07654)(1.74302,1.07654)
-\path(1.63692,1.08205)(1.73977,1.08205)
-\path(1.63972,1.08756)(1.73652,1.08756)
-\path(1.64252,1.09307)(1.73327,1.09307)
-\path(1.64532,1.09859)(1.73002,1.09859)
-\path(1.64812,1.1041)(1.72677,1.1041)
-\path(1.65091,1.10961)(1.72352,1.10961)
-\path(1.65371,1.11512)(1.72027,1.11512)
-\path(1.65651,1.12063)(1.71702,1.12063)
-\path(1.65931,1.12615)(1.71377,1.12615)
-\path(1.66211,1.13166)(1.71052,1.13166)
-\path(1.66491,1.13717)(1.70726,1.13717)
-\path(1.66771,1.14268)(1.70401,1.14268)
-\path(1.67051,1.14819)(1.70076,1.14819)
-\path(1.67331,1.15371)(1.69751,1.15371)
-\path(1.67611,1.15922)(1.69426,1.15922)
-\path(1.67891,1.16473)(1.69101,1.16473)
-\path(1.68171,1.17024)(1.68776,1.17024)
-\path(1.83836,0.908239)(1.83836,0.914877)
-\path(1.83293,0.910811)(1.83293,0.924087)
-\path(1.8275,0.913384)(1.8275,0.933297)
-\path(1.82207,0.915956)(1.82207,0.942506)
-\path(1.81664,0.918528)(1.81664,0.951716)
-\path(1.81121,0.9211)(1.81121,0.960926)
-\path(1.80577,0.923672)(1.80577,0.970136)
-\path(1.80034,0.926244)(1.80034,0.979345)
-\path(1.79491,0.928816)(1.79491,0.988555)
-\path(1.78948,0.931388)(1.78948,0.997765)
-\path(1.78405,0.93396)(1.78405,1.00697)
-\path(1.77862,0.936532)(1.77862,1.01618)
-\path(1.77319,0.939104)(1.77319,1.02539)
-\path(1.76775,0.941676)(1.76775,1.0346)
-\path(1.76232,0.944248)(1.76232,1.04381)
-\path(1.75689,0.94682)(1.75689,1.05302)
-\path(1.75146,0.949392)(1.75146,1.06223)
-\path(1.74603,0.951964)(1.74603,1.07144)
-\path(1.7406,0.954536)(1.7406,1.08065)
-\path(1.73517,0.957108)(1.73517,1.08986)
-\path(1.72973,0.95968)(1.72973,1.09907)
-\path(1.7243,0.962252)(1.7243,1.10828)
-\path(1.71887,0.964824)(1.71887,1.11749)
-\path(1.71344,0.967396)(1.71344,1.1267)
-\path(1.70801,0.969968)(1.70801,1.13591)
-\path(1.70258,0.97254)(1.70258,1.14512)
-\path(1.69715,0.975112)(1.69715,1.15433)
-\path(1.69171,0.977684)(1.69171,1.16354)
-\path(1.68628,0.980256)(1.68628,1.17275)
-\path(1.68085,0.982828)(1.68085,1.16855)
-\path(1.67542,0.9854)(1.67542,1.15786)
-\path(1.66999,0.987972)(1.66999,1.14716)
-\path(1.66456,0.990544)(1.66456,1.13647)
-\path(1.65912,0.993116)(1.65912,1.12577)
-\path(1.65369,0.995689)(1.65369,1.11508)
-\path(1.64826,0.998261)(1.64826,1.10439)
-\path(1.64283,1.00083)(1.64283,1.09369)
-\path(1.6374,1.0034)(1.6374,1.083)
-\path(1.63197,1.00598)(1.63197,1.07231)
-\path(1.62654,1.00855)(1.62654,1.06161)
-\path(1.6211,1.01112)(1.6211,1.05092)
-\path(1.61567,1.01369)(1.61567,1.04022)
-\path(1.61024,1.01626)(1.61024,1.02953)
-\color{rgb_000000}%
-\path(1.68451,1.17575)(1.8438,0.905667)(1.60481,1.01884)(1.68451,1.17575)
-\path(1.55858,1.06528)(1.62462,1.12321)(1.68451,1.17575)
-\path(1.64966,0.825085)(1.75291,0.867943)(1.8438,0.905667)
-\path(1.42984,0.888834)(1.52409,0.958865)(1.60481,1.01884)
-\path(0.957156,0.537641)(1.4039,0.929569)(1.68451,1.17575)
-\path(0.957156,0.537641)(1.50556,0.765274)(1.8438,0.905667)
-\path(0.957156,0.537641)(1.35769,0.835234)(1.60481,1.01884)
-\color{rgb_e5e5e5}%
-\path(1.64572,0.826226)(1.5548,1.06009)
-\path(1.63918,0.828123)(1.55101,1.0549)
-\path(1.63264,0.830021)(1.54722,1.04971)
-\path(1.6261,0.831918)(1.54344,1.04452)
-\path(1.61955,0.833815)(1.53965,1.03933)
-\path(1.61301,0.835712)(1.53586,1.03414)
-\path(1.60647,0.837609)(1.53208,1.02895)
-\path(1.59993,0.839507)(1.52829,1.02376)
-\path(1.59339,0.841404)(1.5245,1.01857)
-\path(1.58684,0.843301)(1.52072,1.01338)
-\path(1.5803,0.845198)(1.51693,1.00819)
-\path(1.57376,0.847095)(1.51314,1.003)
-\path(1.56722,0.848993)(1.50936,0.997814)
-\path(1.56068,0.85089)(1.50557,0.992624)
-\path(1.55413,0.852787)(1.50178,0.987435)
-\path(1.54759,0.854684)(1.498,0.982245)
-\path(1.54105,0.856581)(1.49421,0.977056)
-\path(1.53451,0.858479)(1.49042,0.971866)
-\path(1.52797,0.860376)(1.48664,0.966677)
-\path(1.52142,0.862273)(1.48285,0.961487)
-\path(1.51488,0.86417)(1.47906,0.956298)
-\path(1.50834,0.866067)(1.47528,0.951108)
-\path(1.5018,0.867965)(1.47149,0.945919)
-\path(1.49526,0.869862)(1.4677,0.940729)
-\path(1.48871,0.871759)(1.46392,0.93554)
-\path(1.48217,0.873656)(1.46013,0.93035)
-\path(1.47563,0.875553)(1.45634,0.925161)
-\path(1.46909,0.877451)(1.45256,0.919971)
-\path(1.46255,0.879348)(1.44877,0.914781)
-\path(1.456,0.881245)(1.44498,0.909592)
-\path(1.44946,0.883142)(1.4412,0.904402)
-\path(1.44292,0.885039)(1.43741,0.899213)
-\path(1.43638,0.886937)(1.43362,0.894023)
-\path(1.56052,1.06017)(1.55261,1.05709)
-\path(1.56246,1.05506)(1.54664,1.04891)
-\path(1.5644,1.04995)(1.54066,1.04072)
-\path(1.56633,1.04484)(1.53469,1.03253)
-\path(1.56827,1.03973)(1.52872,1.02435)
-\path(1.57021,1.03461)(1.52274,1.01616)
-\path(1.57215,1.0295)(1.51677,1.00797)
-\path(1.57409,1.02439)(1.5108,0.999787)
-\path(1.57602,1.01928)(1.50482,0.991601)
-\path(1.57796,1.01417)(1.49885,0.983414)
-\path(1.5799,1.00906)(1.49288,0.975228)
-\path(1.58184,1.00395)(1.4869,0.967042)
-\path(1.58377,0.998841)(1.48093,0.958855)
-\path(1.58571,0.993731)(1.47496,0.950669)
-\path(1.58765,0.988621)(1.46898,0.942483)
-\path(1.58959,0.98351)(1.46301,0.934296)
-\path(1.59152,0.9784)(1.45704,0.92611)
-\path(1.59346,0.973289)(1.45106,0.917923)
-\path(1.5954,0.968179)(1.44509,0.909737)
-\path(1.59734,0.963068)(1.43911,0.901551)
-\path(1.59928,0.957958)(1.43314,0.893364)
-\path(1.60121,0.952847)(1.43369,0.887715)
-\path(1.60315,0.947737)(1.44233,0.88521)
-\path(1.60509,0.942626)(1.45097,0.882705)
-\path(1.60703,0.937516)(1.45961,0.880199)
-\path(1.60896,0.932405)(1.46825,0.877694)
-\path(1.6109,0.927295)(1.47689,0.875189)
-\path(1.61284,0.922184)(1.48552,0.872684)
-\path(1.61478,0.917074)(1.49416,0.870179)
-\path(1.61672,0.911963)(1.5028,0.867673)
-\path(1.61865,0.906853)(1.51144,0.865168)
-\path(1.62059,0.901742)(1.52008,0.862663)
-\path(1.62253,0.896632)(1.52872,0.860158)
-\path(1.62447,0.891521)(1.53736,0.857653)
-\path(1.6264,0.886411)(1.54599,0.855147)
-\path(1.62834,0.8813)(1.55463,0.852642)
-\path(1.63028,0.87619)(1.56327,0.850137)
-\path(1.63222,0.871079)(1.57191,0.847632)
-\path(1.63416,0.865969)(1.58055,0.845127)
-\path(1.63609,0.860858)(1.58919,0.842621)
-\path(1.63803,0.855748)(1.59783,0.840116)
-\path(1.63997,0.850637)(1.60646,0.837611)
-\path(1.64191,0.845527)(1.6151,0.835106)
-\path(1.64384,0.840416)(1.62374,0.8326)
-\path(1.64578,0.835306)(1.63238,0.830095)
-\path(1.64772,0.830195)(1.64102,0.82759)
-\color{rgb_000000}%
-\path(1.55858,1.06528)(1.64966,0.825085)(1.42984,0.888834)(1.55858,1.06528)
-\path(1.69177,1.3845)(1.6229,1.16677)(1.54714,0.927292)
-\put(1.69177,1.3845){\makebox(0,0)[b]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize Object}}}}
-\path(2.05075,0.923554)(1.88188,0.980517)(1.71366,1.03726)
-\put(2.05075,0.923554){\makebox(0,0)[l]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize Shadow}}}}
-\put(1.12218,1.68556){\makebox(0,0)[b]{\colorbox{rgb_ffffff}{\hbox{\color{rgb_000000}\footnotesize Target}}}}
-\path(1.12218,1.68556)(1.29391,1.34894)
-\path(1.27634,1.40359)(1.2621,1.39054)
-\path(1.27896,1.39892)(1.26528,1.38638)
-\path(1.28062,1.39336)(1.26846,1.38222)
-\path(1.28229,1.38781)(1.27164,1.37806)
-\path(1.28395,1.38226)(1.27482,1.3739)
-\path(1.28561,1.3767)(1.278,1.36974)
-\path(1.28727,1.37115)(1.28118,1.36558)
-\path(1.28893,1.3656)(1.28437,1.36142)
-\path(1.29059,1.36005)(1.28755,1.35726)
-\path(1.29225,1.35449)(1.29073,1.3531)
-\path(1.25949,1.39395)(1.29061,1.35998)
-\path(1.26348,1.39703)(1.28731,1.37102)
-\path(1.26812,1.39939)(1.28401,1.38205)
-\path(1.27276,1.40176)(1.28071,1.39309)
-\path(1.26816,1.39941)(1.25892,1.3947)(1.29391,1.34894)
- (1.2774,1.40413)(1.26816,1.39941)
-\put(1.3125,1.3125){\color{rgb_000000}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{0.8pt}%
-\path(0.957156,0.537641)(1.55482,0.490175)
-\allinethickness{0.0055348in}%
-\path(1.4989,0.489651)(1.50786,0.485229)
-\path(1.49933,0.495061)(1.51726,0.486218)
-\path(1.49976,0.500472)(1.52665,0.487207)
-\path(1.50454,0.503736)(1.53604,0.488197)
-\path(1.52968,0.496955)(1.54543,0.489186)
-\path(1.54888,0.489549)(1.54985,0.491516)
-\path(1.54293,0.488923)(1.54487,0.492858)
-\path(1.53699,0.488297)(1.5399,0.494199)
-\path(1.53104,0.487671)(1.53493,0.495541)
-\path(1.5251,0.487045)(1.52995,0.496882)
-\path(1.51916,0.486419)(1.52498,0.498223)
-\path(1.51321,0.485792)(1.52001,0.499565)
-\path(1.50727,0.485166)(1.51504,0.500906)
-\path(1.50133,0.48454)(1.51006,0.502247)
-\path(1.49903,0.491318)(1.50509,0.503589)
-\allinethickness{0.8pt}%
-\path(1.49929,0.494585)(1.49847,0.48424)(1.55482,0.490175)
- (1.50012,0.50493)(1.49929,0.494585)
-\path(0.957156,0.537641)(0.790401,0.174015)
-\allinethickness{0.0055348in}%
-\path(0.807364,0.192334)(0.808098,0.200697)
-\path(0.80171,0.186228)(0.803178,0.202954)
-\path(0.796055,0.180122)(0.798257,0.20521)
-\path(0.807022,0.201191)(0.793617,0.202367)
-\path(0.810836,0.196084)(0.793081,0.197642)
-\path(0.806749,0.19167)(0.792545,0.192917)
-\path(0.802662,0.187256)(0.792009,0.188191)
-\path(0.798575,0.182843)(0.791473,0.183466)
-\path(0.794488,0.178429)(0.790937,0.178741)
-\allinethickness{0.8pt}%
-\path(0.803586,0.202767)(0.794153,0.207092)(0.790401,0.174015)
- (0.813019,0.198441)(0.803586,0.202767)
-\path(0.957156,0.537641)(0.937572,1.09205)
-\allinethickness{0.0055348in}%
-\path(0.938782,1.08718)(0.936611,1.08655)
-\path(0.939993,1.08231)(0.935649,1.08104)
-\path(0.941204,1.07743)(0.934688,1.07554)
-\path(0.942414,1.07256)(0.933727,1.07003)
-\path(0.943625,1.06769)(0.932765,1.06453)
-\path(0.944835,1.06282)(0.931804,1.05902)
-\path(0.946046,1.05794)(0.930842,1.05352)
-\path(0.947256,1.05307)(0.929881,1.04801)
-\path(0.948467,1.0482)(0.929251,1.04261)
-\path(0.931094,1.05496)(0.934635,1.0428)
-\path(0.933253,1.06732)(0.940334,1.043)
-\path(0.935413,1.07969)(0.946034,1.0432)
-\allinethickness{0.8pt}%
-\path(0.939306,1.04296)(0.949677,1.04333)(0.937572,1.09205)
- (0.928935,1.0426)(0.939306,1.04296)
-\end{picture}%
diff --git a/graphics/epix/doc/camera.xp b/graphics/epix/doc/camera.xp
deleted file mode 100644
index 66f8fdb334..0000000000
--- a/graphics/epix/doc/camera.xp
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-const double ht(4);
-
-const P target(0,0,0);
-const P observer(0,-4,0);
-const P dtarg(-0.5,0,1);
-const double dx(0.375);
-
-// location of label
-const P obj_loc(1,0,0.25);
-
-P F(P arg)
-{
- double x(arg.x2());
- return (ht/(ht+x))*P(arg.x1(), 0, arg.x3());
-}
-
-P P1(0.75, -1, -0.25);
-P P2(1, -1.25, -0.75);
-P P3(0.5, -1.5, -0.5 );
-P midpt((1.0/3)*(P1+P2+P3));
-
-int main() {
- bounding_box(P(-3.5,-3.5),P(3.5,2.5));
- unitlength("0.375in");
- picture(P(7,6));
-
- begin();
-
- camera.at(P(1.5,-10,3.5));
- camera.range(10);
-
- font_size("footnotesize");
- right_angle(target, E_1, -E_2);
-
- line(target, target+2*dx*E_1);
- line(target, target+2*dx*E_3);
-
- // grid(P(-3,0,-2), P(3,0,2), 6, 8);
- grid(P(-3,0,-2), P(3,0,2));
-
- masklabel(observer+E_1, P(2,0), "\\textbf{Sea}", r);
- masklabel(observer+E_3, P(0,2), "\\textbf{Sky}", t);
- masklabel(observer-E_2, P(-4,0), "\\textbf{Eye}", l);
-
- masklabel(observer, P(-2,0), "Viewpoint", l);
- dot(observer);
-
- masklabel(P(3,0,2), P(-6,-2), "Canvas", bl);
-
- line(observer, target);
-
- fill(Black(0.5));
- triangle(F(P1), F(P2), F(P3));
-
- line(P1, F(P1));
- line(P2, F(P2));
- line(P3, F(P3));
-
- line(observer, F(P1));
- line(observer, F(P2));
- line(observer, F(P3));
-
- fill(Black(0.1));
- triangle(P1, P2, P3);
-
- line(obj_loc, midpt);
- masklabel(obj_loc, P(0,0), "Object", t);
-
- line(P(2,0,-1), F(midpt));
- masklabel(P(2,0,-1), P(0,0), "Shadow", r);
-
- masklabel(target+dtarg, P(0,0), "Target", t);
- arrow(target+dtarg, target+0.1*dtarg, 0.5);
- dot(target);
-
- bold();
- arrow(observer, observer+E_1, 0.5);
- arrow(observer, observer-E_2, 0.5);
- arrow(observer, observer+E_3, 0.5);
-
- end();
-}
diff --git a/graphics/epix/doc/cb.eepic b/graphics/epix/doc/cb.eepic
deleted file mode 100644
index 7df0354645..0000000000
--- a/graphics/epix/doc/cb.eepic
+++ /dev/null
@@ -1,25 +0,0 @@
-%% Generated from cb.xp on Tue Jan 4 15:32:10 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 1.5in x 0.75in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(1.5,0.75)(-0,-0)
-%% ---
-\path(0,0.375)(1.5,0.375)
-\put(0,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(0.375,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(0.75,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(1.125,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(1.5,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-%% ---
-\path(0.75,0)(0.75,0.75)
-\put(0.75,0){\makebox(0,0)[c]{\rule{4pt}{0.5pt}}}
-\put(0.75,0.75){\makebox(0,0)[c]{\rule{4pt}{0.5pt}}}
-%% ---
-\thicklines
-\path(0,0.375)(0.375,0.75)(0.75,0.375)(1.125,0.75)(1.5,0.375)
-\put(0.75,-0.055348){\makebox(0,0)[t]{\code{cb}}}
-\end{picture}
diff --git a/graphics/epix/doc/cb.xp b/graphics/epix/doc/cb.xp
deleted file mode 100644
index e0434b483e..0000000000
--- a/graphics/epix/doc/cb.xp
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- bounding_box(P(-2,-1),P(2,1));
- unitlength("1in");
- picture(1.5,0.75);
-
- begin();
-
- h_axis(4);
- v_axis(1);
-
- bold();
- plot(cb, x_min, x_max, 4);
-
- label(P(0,y_min), P(0,-4), "\\code{cb}", b);
-
- end();
-}
diff --git a/graphics/epix/doc/color_density.eepic b/graphics/epix/doc/color_density.eepic
deleted file mode 100644
index 1b0ee79028..0000000000
--- a/graphics/epix/doc/color_density.eepic
+++ /dev/null
@@ -1,139 +0,0 @@
-%% Generated from color_density.xp on Thu Jul 5 10:01:14 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [-2,2] x [0,1.375]
-%% Actual size: 4 x 1.5in
-%% Figure offset: left by 0in, down by 0in
-%%
-\newrgbcolor{rgb_000000}{0 0 0}
-\newrgbcolor{rgb_005454}{0 0.329412 0.329412}
-\newrgbcolor{rgb_00a9a9}{0 0.662745 0.662745}
-\newrgbcolor{rgb_00fefe}{0 0.996078 0.996078}
-\newrgbcolor{rgb_00ffff}{0 1 1}
-\newrgbcolor{rgb_540000}{0.329412 0 0}
-\newrgbcolor{rgb_54ffff}{0.329412 1 1}
-\newrgbcolor{rgb_a90000}{0.662745 0 0}
-\newrgbcolor{rgb_a9ffff}{0.662745 1 1}
-\newrgbcolor{rgb_fe0000}{0.996078 0 0}
-\newrgbcolor{rgb_feffff}{0.996078 1 1}
-\newrgbcolor{rgb_ff0000}{1 0 0}
-\newrgbcolor{rgb_ff5454}{1 0.329412 0.329412}
-\newrgbcolor{rgb_ffa9a9}{1 0.662745 0.662745}
-\newrgbcolor{rgb_fffefe}{1 0.996078 0.996078}
-\psset{unit=1in,linewidth=0.4pt}
-\begin{pspicture}(4,1.5)(-0,-0)
-\psset{fillcolor=rgb_feffff}%
-\psline[fillstyle=solid]
- (-0.123,1.22727)(0.127,1.22727)(0.127,1.5)(-0.123,1.5)(-0.123,1.22727)
-%%
-\psline(-0.123,1.22727)(0.127,1.22727)(0.127,1.5)(-0.123,1.5)(-0.123,1.22727)
-%%
-\psset{fillcolor=rgb_a9ffff}%
-\psline[fillstyle=solid]
- (0.21,1.22727)(0.46,1.22727)(0.46,1.5)(0.21,1.5)(0.21,1.22727)
-%%
-\psline(0.21,1.22727)(0.46,1.22727)(0.46,1.5)(0.21,1.5)(0.21,1.22727)
-%%
-\psset{fillcolor=rgb_54ffff}%
-\psline[fillstyle=solid]
- (0.543,1.22727)(0.793,1.22727)(0.793,1.5)(0.543,1.5)(0.543,1.22727)
-%%
-\psline(0.543,1.22727)(0.793,1.22727)(0.793,1.5)(0.543,1.5)(0.543,1.22727)
-%%
-\psset{fillcolor=rgb_00fefe}%
-\psline[fillstyle=solid]
- (0.876,1.22727)(1.126,1.22727)(1.126,1.5)(0.876,1.5)(0.876,1.22727)
-%%
-\psline(0.876,1.22727)(1.126,1.22727)(1.126,1.5)(0.876,1.5)(0.876,1.22727)
-%%
-\psset{fillcolor=rgb_00a9a9}%
-\psline[fillstyle=solid]
- (1.209,1.22727)(1.459,1.22727)(1.459,1.5)(1.209,1.5)(1.209,1.22727)
-%%
-\psline(1.209,1.22727)(1.459,1.22727)(1.459,1.5)(1.209,1.5)(1.209,1.22727)
-%%
-\psset{fillcolor=rgb_005454}%
-\psline[fillstyle=solid]
- (1.542,1.22727)(1.792,1.22727)(1.792,1.5)(1.542,1.5)(1.542,1.22727)
-%%
-\psline(1.542,1.22727)(1.792,1.22727)(1.792,1.5)(1.542,1.5)(1.542,1.22727)
-%%
-\psset{fillcolor=rgb_000000}%
-\psline[fillstyle=solid]
- (1.875,1.22727)(2.125,1.22727)(2.125,1.5)(1.875,1.5)(1.875,1.22727)
-%%
-\psline(1.875,1.22727)(2.125,1.22727)(2.125,1.5)(1.875,1.5)(1.875,1.22727)
-%%
-\psset{fillcolor=rgb_540000}%
-\psline[fillstyle=solid]
- (2.208,1.22727)(2.458,1.22727)(2.458,1.5)(2.208,1.5)(2.208,1.22727)
-%%
-\psline(2.208,1.22727)(2.458,1.22727)(2.458,1.5)(2.208,1.5)(2.208,1.22727)
-%%
-\psset{fillcolor=rgb_a90000}%
-\psline[fillstyle=solid]
- (2.541,1.22727)(2.791,1.22727)(2.791,1.5)(2.541,1.5)(2.541,1.22727)
-%%
-\psline(2.541,1.22727)(2.791,1.22727)(2.791,1.5)(2.541,1.5)(2.541,1.22727)
-%%
-\psset{fillcolor=rgb_fe0000}%
-\psline[fillstyle=solid]
- (2.874,1.22727)(3.124,1.22727)(3.124,1.5)(2.874,1.5)(2.874,1.22727)
-%%
-\psline(2.874,1.22727)(3.124,1.22727)(3.124,1.5)(2.874,1.5)(2.874,1.22727)
-%%
-\psset{fillcolor=rgb_ff5454}%
-\psline[fillstyle=solid]
- (3.207,1.22727)(3.457,1.22727)(3.457,1.5)(3.207,1.5)(3.207,1.22727)
-%%
-\psline(3.207,1.22727)(3.457,1.22727)(3.457,1.5)(3.207,1.5)(3.207,1.22727)
-%%
-\psset{fillcolor=rgb_ffa9a9}%
-\psline[fillstyle=solid]
- (3.54,1.22727)(3.79,1.22727)(3.79,1.5)(3.54,1.5)(3.54,1.22727)
-%%
-\psline(3.54,1.22727)(3.79,1.22727)(3.79,1.5)(3.54,1.5)(3.54,1.22727)
-%%
-\psset{fillcolor=rgb_fffefe}%
-\psline[fillstyle=solid]
- (3.873,1.22727)(4.123,1.22727)(4.123,1.5)(3.873,1.5)(3.873,1.22727)
-%%
-\psline(3.873,1.22727)(4.123,1.22727)(4.123,1.5)(3.873,1.5)(3.873,1.22727)
-%%
-\psline(0,0)(4,0)
-%%
-\rput(0,0){\makebox(0,0){{$\rule{0.5pt}{4pt}$}}}
-\rput(1,0){\makebox(0,0){{$\rule{0.5pt}{4pt}$}}}
-\rput(2,0){\makebox(0,0){{$\rule{0.5pt}{4pt}$}}}
-\rput(3,0){\makebox(0,0){{$\rule{0.5pt}{4pt}$}}}
-\rput(4,0){\makebox(0,0){{$\rule{0.5pt}{4pt}$}}}
-\psline(2,0)(2,1.09091)
-%%
-\rput(2,0){\makebox(0,0){{$\rule{4pt}{0.5pt}$}}}
-\rput(2,1.09091){\makebox(0,0){{$\rule{4pt}{0.5pt}$}}}
-\rput(0,-0.055348){\makebox(0,0)[t]{{$-2$}}}
-\rput(1,-0.055348){\makebox(0,0)[t]{{$-1$}}}
-\rput(2,-0.055348){\makebox(0,0)[t]{{$\phantom{-}0$}}}
-\rput(3,-0.055348){\makebox(0,0)[t]{{$\phantom{-}1$}}}
-\rput(4,-0.055348){\makebox(0,0)[t]{{$\phantom{-}2$}}}
-\psset{linecolor=rgb_00ffff}%
-\psline(0,1.09091)(1,1.09091)
-%%
-\psline(1,1.09091)(2,0)
-%%
-\psline(2,0)(3,0)
-%%
-\psline(3,0)(4,1.09091)
-%%
-\psset{linewidth=0.8pt}%
-\psset{linecolor=rgb_ff0000}%
-\psline
- (0,1.09091)(1,0)
-%%
-\psline(1,0)(2,0)
-%%
-\psline(2,0)(3,1.09091)
-%%
-\psline(3,1.09091)(4,1.09091)
-%%
-\end{pspicture}
diff --git a/graphics/epix/doc/color_density.xp b/graphics/epix/doc/color_density.xp
deleted file mode 100644
index f561fa43e3..0000000000
--- a/graphics/epix/doc/color_density.xp
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-double dX(0.125), dY(0.25);
-
-int main()
-{
- picture(P(-2, 0), P(2, 1.125 + dY), "4 x 1.5in");
-
- begin();
-
- fill();
- for (int i=-6; i<=6; ++i)
- {
- const double x(0.333*i);
- fill(Red(x));
- rect(P(x-dX, 1.125), P(x+dX, 1.125+dY));
- }
- nofill();
-
- h_axis(4);
- v_axis(P(0,0), P(0,1), 1);
-
- h_axis_labels(4, P(0,-4), b);
- red(-1);
- line(P(-2,1), P(-1,1));
- line(P(-1,1), P(0,0));
- line(P(0,0), P(1,0));
- line(P(1,0), P(2,1));
-
- red();
- bold();
- line(P(-2,1), P(-1,0));
- line(P(-1,0), P(0,0));
-
- line(P(0,0), P(1,1));
- line(P(1,1), P(2,1));
-
- pst_format();
- end();
-}
diff --git a/graphics/epix/doc/dots.eepic b/graphics/epix/doc/dots.eepic
deleted file mode 100644
index 839663481d..0000000000
--- a/graphics/epix/doc/dots.eepic
+++ /dev/null
@@ -1,19 +0,0 @@
-%% Generated from dots.xp on Tue Jan 4 15:32:12 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [0,8] x [0,1]
-%% Actual size: 72pt x 12pt
-%% Figure offset: right by 10pt, up by 2pt
-%%
-\setlength{\unitlength}{1pt}
-\begin{picture}(72,12)(-10,-2)
-%% ---
-\put(0,0){\makebox(0,0)[c]{{\circle*{4.5}}}}
-\put(9,0){\makebox(0,0)[c]{{\circle*{3}}}}
-\put(18,0){\makebox(0,0)[c]{{\circle*{2}}}}
-\put(36,0){\makebox(0,0)[c]{\rule{3pt}{3pt}}}
-\put(45,0){\makebox(0,0)[c]{\rule{2pt}{2pt}}}
-\path(58.5,0)(78.75,0)
-\put(63,0){\makebox(0,0)[c]{{\circle{4.5}}}}
-\whiten\put(72,0){\makebox(0,0)[c]{{\circle{3}}}}
-\end{picture}
diff --git a/graphics/epix/doc/dots.xp b/graphics/epix/doc/dots.xp
deleted file mode 100644
index 1f13fb6099..0000000000
--- a/graphics/epix/doc/dots.xp
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*-ePiX-*- */
-/* dots.c -- Dot primitives */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- unitlength("1pt");
- bounding_box(P(0,0), P(8,1));
- picture(P(72,12));
- offset(P(10,2));
-
- begin();
-
- spot(P(0,0));
- dot(P(1,0));
- ddot(P(2,0));
-
- box(P(4,0));
- bbox(P(5,0));
-
- line(P(6.5,0), P(8.75,0));
-
- ring(P(7,0));
- circ(P(8,0));
-
- end();
-}
diff --git a/graphics/epix/doc/ePiX.eepic b/graphics/epix/doc/ePiX.eepic
deleted file mode 100644
index 4bdec31118..0000000000
--- a/graphics/epix/doc/ePiX.eepic
+++ /dev/null
@@ -1,1099 +0,0 @@
-%% Generated from ePiX.xp on Sat Sep 22 20:16:03 EDT 2007 by
-%% ePiX-1.2.0
-%%
-%% Cartesian bounding box: [-0.5,5.75] x [2,10]
-%% Actual size: 4 x 7.5in
-%% Figure offset: left by 0in, down by 0in
-%%
-%% usepackages epic,eepic,xcolor
-%%
-\xdefinecolor{cmy_000019}{cmyk}{0,0,0.0980392,0}%
-\xdefinecolor{rgb_0000ff}{rgb}{0,0,1}%
-\xdefinecolor{rgb_009800}{rgb}{0,0.596078,0}%
-\xdefinecolor{rgb_7f7f7f}{rgb}{0.498039,0.498039,0.498039}%
-\xdefinecolor{rgb_ff0000}{rgb}{1,0,0}%
-\setlength{\unitlength}{1in}%
-\begin{picture}(4,7.5)(0,0)%
-\color{rgb_7f7f7f}%
-\path(0.32,7.03125)(0.96,7.03125)
-\path(0.902922,7.02606)(0.931461,7.02606)
-\path(0.902922,7.03125)(0.96,7.03125)
-\path(0.902922,7.03644)(0.931461,7.03644)
-\path(0.954811,7.03031)(0.954811,7.03219)
-\path(0.949622,7.02936)(0.949622,7.03314)
-\path(0.944433,7.02842)(0.944433,7.03408)
-\path(0.939244,7.02748)(0.939244,7.03502)
-\path(0.934056,7.02653)(0.934056,7.03597)
-\path(0.928867,7.02559)(0.928867,7.03691)
-\path(0.923678,7.02465)(0.923678,7.03785)
-\path(0.918489,7.0237)(0.918489,7.0388)
-\path(0.9133,7.02276)(0.9133,7.03974)
-\path(0.908111,7.02182)(0.908111,7.04068)
-\path(0.902922,7.02087)(0.902922,7.04163)
-\path(0.902922,7.03125)(0.902922,7.02087)(0.96,7.03125)
- (0.902922,7.04163)(0.902922,7.03125)
-\put(0.32,7.0866){\makebox(0,0)[b]{\hbox{\color{rgb_7f7f7f}\footnotesize \texttt{xp}, \texttt{flx}}}}
-\put(0.32,7.03125){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(0.97999,7.08981){\makebox(0,0)[b]{\hbox{\color{rgb_7f7f7f}\footnotesize \texttt{eepic}}}}
-\put(0.96,7.03125){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{1.2pt}%
-\color{rgb_ff0000}%
-\path(0.96,7.03125)(0.963187,7.03115)(0.966347,7.03086)
- (0.969482,7.03039)(0.972591,7.02972)(0.975676,7.02888)
- (0.978736,7.02785)(0.981772,7.02665)(0.984785,7.02528)
- (0.987774,7.02374)(0.990741,7.02203)(0.993685,7.02016)
- (0.996608,7.01813)(0.999509,7.01594)(1.00239,7.0136)
- (1.00525,7.01111)(1.00809,7.00847)(1.01091,7.00569)
- (1.01371,7.00277)(1.01649,6.99972)(1.01926,6.99653)
- (1.02201,6.99321)(1.02474,6.98976)(1.02745,6.98619)(1.03014,6.9825)
- (1.03282,6.97869)(1.03549,6.97477)(1.03814,6.97074)(1.04077,6.9666)
- (1.04339,6.96235)(1.046,6.95801)(1.04859,6.95356)(1.05117,6.94903)
- (1.05374,6.9444)(1.0563,6.93968)(1.05884,6.93488)(1.06138,6.93)
- (1.0639,6.92504)(1.06641,6.92)(1.06891,6.9149)(1.07141,6.90972)
- (1.07389,6.90448)(1.07637,6.89918)(1.07884,6.89382)(1.0813,6.8884)
- (1.08375,6.88293)(1.0862,6.87742)(1.08864,6.87185)(1.09107,6.86625)
- (1.0935,6.86061)(1.09593,6.85493)(1.09835,6.84921)(1.10076,6.84347)
- (1.10317,6.8377)(1.10558,6.83191)(1.10799,6.8261)(1.1104,6.82028)
- (1.1128,6.81444)(1.1152,6.80859)(1.1176,6.80273)(1.12,6.79688)
- (1.1224,6.79102)(1.1248,6.78516)(1.1272,6.77931)(1.1296,6.77347)
- (1.13201,6.76765)(1.13442,6.76184)(1.13683,6.75605)
- (1.13924,6.75028)(1.14165,6.74454)(1.14407,6.73882)(1.1465,6.73314)
- (1.14893,6.7275)(1.15136,6.7219)(1.1538,6.71633)(1.15625,6.71082)
- (1.1587,6.70535)(1.16116,6.69993)(1.16363,6.69457)(1.16611,6.68927)
- (1.16859,6.68403)(1.17109,6.67885)(1.17359,6.67375)(1.1761,6.66871)
- (1.17862,6.66375)(1.18116,6.65887)(1.1837,6.65407)(1.18626,6.64935)
- (1.18883,6.64472)(1.19141,6.64019)(1.194,6.63574)(1.19661,6.6314)
- (1.19923,6.62715)(1.20186,6.62301)(1.20451,6.61898)
- (1.20718,6.61506)(1.20986,6.61125)(1.21255,6.60756)
- (1.21526,6.60399)(1.21799,6.60054)(1.22074,6.59722)
- (1.22351,6.59403)(1.22629,6.59098)(1.22909,6.58806)
- (1.23191,6.58528)(1.23475,6.58264)(1.23761,6.58015)
- (1.24049,6.57781)(1.24339,6.57562)(1.24631,6.57359)
- (1.24926,6.57172)(1.25223,6.57001)(1.25522,6.56847)(1.25823,6.5671)
- (1.26126,6.5659)(1.26432,6.56487)(1.26741,6.56403)(1.27052,6.56336)
- (1.27365,6.56289)(1.27681,6.5626)(1.28,6.5625)
-\path(1.28,6.5625)(1.6,6.5625)
-\allinethickness{0.0055348in}%
-\path(1.59481,6.56156)(1.59402,6.56359)
-\path(1.58962,6.56061)(1.58804,6.56467)
-\path(1.58443,6.55967)(1.58207,6.56576)
-\path(1.57924,6.55873)(1.57609,6.56685)
-\path(1.57406,6.55778)(1.57011,6.56793)
-\path(1.56887,6.55684)(1.56413,6.56902)
-\path(1.56368,6.5559)(1.55815,6.57011)
-\path(1.55849,6.55495)(1.55217,6.5712)
-\path(1.5533,6.55401)(1.5462,6.57228)
-\path(1.54811,6.55307)(1.54292,6.56641)
-\path(1.55244,6.57115)(1.54292,6.56745)
-\path(1.56195,6.56942)(1.54292,6.56202)
-\path(1.57146,6.56769)(1.54292,6.55659)
-\path(1.58097,6.56596)(1.54755,6.55296)
-\path(1.59049,6.56423)(1.57377,6.55773)
-\allinethickness{1.2pt}%
-\path(1.54292,6.5625)(1.54292,6.55212)(1.6,6.5625)(1.54292,6.57288)(1.54292,6.5625)
-\path(1.6,6.5625)(2.24,6.5625)
-\allinethickness{0.0055348in}%
-\path(2.18926,6.57172)(2.18292,6.56591)
-\path(2.19561,6.57057)(2.18292,6.55895)
-\path(2.20195,6.56942)(2.1831,6.55216)
-\path(2.20829,6.56827)(2.19259,6.55388)
-\path(2.21463,6.56711)(2.20207,6.5556)
-\path(2.22097,6.56596)(2.21155,6.55733)
-\path(2.22732,6.56481)(2.22103,6.55905)
-\path(2.23366,6.56365)(2.23052,6.56078)
-\path(2.18292,6.5602)(2.18926,6.55328)
-\path(2.18292,6.56827)(2.19561,6.55443)
-\path(2.18674,6.57218)(2.20195,6.55558)
-\path(2.19562,6.57057)(2.20829,6.55673)
-\path(2.20449,6.56896)(2.21463,6.55789)
-\path(2.21337,6.56734)(2.22097,6.55904)
-\path(2.22225,6.56573)(2.22732,6.56019)
-\path(2.23112,6.56411)(2.23366,6.56135)
-\allinethickness{1.2pt}%
-\path(2.18292,6.5625)(2.18292,6.55212)(2.24,6.5625)
- (2.18292,6.57288)(2.18292,6.5625)
-\put(1.6,6.61785){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\footnotesize \texttt{dvi}}}}}
-\put(1.6,6.5625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(2.21793,6.59482){\makebox(0,0)[br]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\footnotesize \texttt{ps}}}}}
-\put(2.24,6.5625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(0.96,6.09375)(0.963187,6.09385)(0.966347,6.09414)
- (0.969482,6.09461)(0.972591,6.09528)(0.975676,6.09612)
- (0.978736,6.09715)(0.981772,6.09835)(0.984785,6.09972)
- (0.987774,6.10126)(0.990741,6.10297)(0.993685,6.10484)
- (0.996608,6.10687)(0.999509,6.10906)(1.00239,6.1114)
- (1.00525,6.11389)(1.00809,6.11653)(1.01091,6.11931)
- (1.01371,6.12223)(1.01649,6.12528)(1.01926,6.12847)
- (1.02201,6.13179)(1.02474,6.13524)(1.02745,6.13881)(1.03014,6.1425)
- (1.03282,6.14631)(1.03549,6.15023)(1.03814,6.15426)(1.04077,6.1584)
- (1.04339,6.16265)(1.046,6.16699)(1.04859,6.17144)(1.05117,6.17597)
- (1.05374,6.1806)(1.0563,6.18532)(1.05884,6.19012)(1.06138,6.195)
- (1.0639,6.19996)(1.06641,6.205)(1.06891,6.2101)(1.07141,6.21528)
- (1.07389,6.22052)(1.07637,6.22582)(1.07884,6.23118)(1.0813,6.2366)
- (1.08375,6.24207)(1.0862,6.24758)(1.08864,6.25315)(1.09107,6.25875)
- (1.0935,6.26439)(1.09593,6.27007)(1.09835,6.27579)(1.10076,6.28153)
- (1.10317,6.2873)(1.10558,6.29309)(1.10799,6.2989)(1.1104,6.30472)
- (1.1128,6.31056)(1.1152,6.31641)(1.1176,6.32227)(1.12,6.32812)
- (1.1224,6.33398)(1.1248,6.33984)(1.1272,6.34569)(1.1296,6.35153)
- (1.13201,6.35735)(1.13442,6.36316)(1.13683,6.36895)
- (1.13924,6.37472)(1.14165,6.38046)(1.14407,6.38618)(1.1465,6.39186)
- (1.14893,6.3975)(1.15136,6.4031)(1.1538,6.40867)(1.15625,6.41418)
- (1.1587,6.41965)(1.16116,6.42507)(1.16363,6.43043)(1.16611,6.43573)
- (1.16859,6.44097)(1.17109,6.44615)(1.17359,6.45125)(1.1761,6.45629)
- (1.17862,6.46125)(1.18116,6.46613)(1.1837,6.47093)(1.18626,6.47565)
- (1.18883,6.48028)(1.19141,6.48481)(1.194,6.48926)(1.19661,6.4936)
- (1.19923,6.49785)(1.20186,6.50199)(1.20451,6.50602)
- (1.20718,6.50994)(1.20986,6.51375)(1.21255,6.51744)
- (1.21526,6.52101)(1.21799,6.52446)(1.22074,6.52778)
- (1.22351,6.53097)(1.22629,6.53402)(1.22909,6.53694)
- (1.23191,6.53972)(1.23475,6.54236)(1.23761,6.54485)
- (1.24049,6.54719)(1.24339,6.54938)(1.24631,6.55141)
- (1.24926,6.55328)(1.25223,6.55499)(1.25522,6.55653)(1.25823,6.5579)
- (1.26126,6.5591)(1.26432,6.56013)(1.26741,6.56097)(1.27052,6.56164)
- (1.27365,6.56211)(1.27681,6.5624)(1.28,6.5625)
-\put(0.97999,6.03519){\makebox(0,0)[t]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\footnotesize \texttt{tex}}}}}
-\put(0.96,6.09375){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.24,6.5625)(2.24533,6.55472)(2.25067,6.54701)(2.256,6.53936)
- (2.26133,6.53177)(2.26667,6.52425)(2.272,6.5168)(2.27733,6.50941)
- (2.28267,6.50208)(2.288,6.49482)(2.29333,6.48763)(2.29867,6.4805)
- (2.304,6.47344)(2.30933,6.46644)(2.31467,6.45951)(2.32,6.45264)
- (2.32533,6.44583)(2.33067,6.4391)(2.336,6.43242)(2.34133,6.42581)
- (2.34667,6.41927)(2.352,6.41279)(2.35733,6.40638)(2.36267,6.40003)
- (2.368,6.39375)(2.37333,6.38753)(2.37867,6.38138)(2.384,6.37529)
- (2.38933,6.36927)(2.39467,6.36331)(2.4,6.35742)(2.40533,6.3516)
- (2.41067,6.34583)(2.416,6.34014)(2.42133,6.33451)(2.42667,6.32894)
- (2.432,6.32344)(2.43733,6.318)(2.44267,6.31263)(2.448,6.30732)
- (2.45333,6.30208)(2.45867,6.29691)(2.464,6.2918)(2.46933,6.28675)
- (2.47467,6.28177)(2.48,6.27686)(2.48533,6.27201)(2.49067,6.26722)
- (2.496,6.2625)(2.50133,6.25785)(2.50667,6.25326)(2.512,6.24873)
- (2.51733,6.24427)(2.52267,6.23988)(2.528,6.23555)(2.53333,6.23128)
- (2.53867,6.22708)(2.544,6.22295)(2.54933,6.21888)(2.55467,6.21488)
- (2.56,6.21094)(2.56533,6.20706)(2.57067,6.20326)(2.576,6.19951)
- (2.58133,6.19583)(2.58667,6.19222)(2.592,6.18867)(2.59733,6.18519)
- (2.60267,6.18177)(2.608,6.17842)(2.61333,6.17513)(2.61867,6.17191)
- (2.624,6.16875)(2.62933,6.16566)(2.63467,6.16263)(2.64,6.15967)
- (2.64533,6.15677)(2.65067,6.15394)(2.656,6.15117)(2.66133,6.14847)
- (2.66667,6.14583)(2.672,6.14326)(2.67733,6.14076)(2.68267,6.13831)
- (2.688,6.13594)(2.69333,6.13363)(2.69867,6.13138)(2.704,6.1292)
- (2.70933,6.12708)(2.71467,6.12503)(2.72,6.12305)(2.72533,6.12113)
- (2.73067,6.11927)(2.736,6.11748)(2.74133,6.11576)(2.74667,6.1141)
- (2.752,6.1125)(2.75733,6.11097)(2.76267,6.10951)(2.768,6.10811)
- (2.77333,6.10677)(2.77867,6.1055)(2.784,6.1043)(2.78933,6.10316)
- (2.79467,6.10208)(2.8,6.10107)(2.80533,6.10013)(2.81067,6.09925)
- (2.816,6.09844)(2.82133,6.09769)(2.82667,6.09701)(2.832,6.09639)
- (2.83733,6.09583)(2.84267,6.09535)(2.848,6.09492)(2.85333,6.09456)
- (2.85867,6.09427)(2.864,6.09404)(2.86933,6.09388)(2.87467,6.09378)(2.88,6.09375)
-\allinethickness{0.0055348in}%
-\path(2.82289,6.08916)(2.83102,6.08515)
-\path(2.82293,6.09461)(2.83919,6.08659)
-\path(2.82296,6.10005)(2.84735,6.08802)
-\path(2.82634,6.10385)(2.85551,6.08945)
-\path(2.84423,6.10048)(2.86367,6.09088)
-\path(2.86211,6.09712)(2.87184,6.09232)
-\path(2.8738,6.09266)(2.87482,6.09473)
-\path(2.8676,6.09157)(2.86963,6.0957)
-\path(2.8614,6.09048)(2.86445,6.09668)
-\path(2.8552,6.0894)(2.85927,6.09765)
-\path(2.84899,6.08831)(2.85408,6.09863)
-\path(2.84279,6.08722)(2.8489,6.0996)
-\path(2.83659,6.08613)(2.84372,6.10058)
-\path(2.83039,6.08504)(2.83854,6.10155)
-\path(2.82419,6.08395)(2.83335,6.10253)
-\path(2.82292,6.09285)(2.82817,6.1035)
-\allinethickness{1.2pt}%
-\path(2.82292,6.0941)(2.82286,6.08372)(2.88,6.09375)
- (2.82299,6.10448)(2.82292,6.0941)
-\put(2.93535,6.09375){\makebox(0,0)[l]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\footnotesize \texttt{pdf}}}}}
-\put(2.88,6.09375){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{0.4pt}%
-\color{rgb_7f7f7f}%
-\path(2.24,6.5625)(2.24533,6.57028)(2.25067,6.57799)(2.256,6.58564)
- (2.26133,6.59323)(2.26667,6.60075)(2.272,6.6082)(2.27733,6.61559)
- (2.28267,6.62292)(2.288,6.63018)(2.29333,6.63737)(2.29867,6.6445)
- (2.304,6.65156)(2.30933,6.65856)(2.31467,6.66549)(2.32,6.67236)
- (2.32533,6.67917)(2.33067,6.6859)(2.336,6.69258)(2.34133,6.69919)
- (2.34667,6.70573)(2.352,6.71221)(2.35733,6.71862)(2.36267,6.72497)
- (2.368,6.73125)(2.37333,6.73747)(2.37867,6.74362)(2.384,6.74971)
- (2.38933,6.75573)(2.39467,6.76169)(2.4,6.76758)(2.40533,6.7734)
- (2.41067,6.77917)(2.416,6.78486)(2.42133,6.79049)(2.42667,6.79606)
- (2.432,6.80156)(2.43733,6.807)(2.44267,6.81237)(2.448,6.81768)
- (2.45333,6.82292)(2.45867,6.82809)(2.464,6.8332)(2.46933,6.83825)
- (2.47467,6.84323)(2.48,6.84814)(2.48533,6.85299)(2.49067,6.85778)
- (2.496,6.8625)(2.50133,6.86715)(2.50667,6.87174)(2.512,6.87627)
- (2.51733,6.88073)(2.52267,6.88512)(2.528,6.88945)(2.53333,6.89372)
- (2.53867,6.89792)(2.544,6.90205)(2.54933,6.90612)(2.55467,6.91012)
- (2.56,6.91406)(2.56533,6.91794)(2.57067,6.92174)(2.576,6.92549)
- (2.58133,6.92917)(2.58667,6.93278)(2.592,6.93633)(2.59733,6.93981)
- (2.60267,6.94323)(2.608,6.94658)(2.61333,6.94987)(2.61867,6.95309)
- (2.624,6.95625)(2.62933,6.95934)(2.63467,6.96237)(2.64,6.96533)
- (2.64533,6.96823)(2.65067,6.97106)(2.656,6.97383)(2.66133,6.97653)
- (2.66667,6.97917)(2.672,6.98174)(2.67733,6.98424)(2.68267,6.98669)
- (2.688,6.98906)(2.69333,6.99137)(2.69867,6.99362)(2.704,6.9958)
- (2.70933,6.99792)(2.71467,6.99997)(2.72,7.00195)(2.72533,7.00387)
- (2.73067,7.00573)(2.736,7.00752)(2.74133,7.00924)(2.74667,7.0109)
- (2.752,7.0125)(2.75733,7.01403)(2.76267,7.01549)(2.768,7.01689)
- (2.77333,7.01823)(2.77867,7.0195)(2.784,7.0207)(2.78933,7.02184)
- (2.79467,7.02292)(2.8,7.02393)(2.80533,7.02487)(2.81067,7.02575)
- (2.816,7.02656)(2.82133,7.02731)(2.82667,7.02799)(2.832,7.02861)
- (2.83733,7.02917)(2.84267,7.02965)(2.848,7.03008)(2.85333,7.03044)
- (2.85867,7.03073)(2.864,7.03096)(2.86933,7.03112)(2.87467,7.03122)(2.88,7.03125)
-\path(2.87464,7.03024)(2.87481,7.03216)
-\path(2.86927,7.02923)(2.86961,7.03307)
-\path(2.86391,7.02822)(2.86442,7.03399)
-\path(2.85855,7.02721)(2.85922,7.0349)
-\path(2.85318,7.02621)(2.85403,7.03581)
-\path(2.84782,7.0252)(2.84883,7.03672)
-\path(2.84246,7.02419)(2.84364,7.03763)
-\path(2.8371,7.02318)(2.83844,7.03854)
-\path(2.83173,7.02217)(2.83325,7.03946)
-\path(2.82637,7.02116)(2.82805,7.04037)
-\path(2.87938,7.03113)(2.82289,7.03609)
-\path(2.86058,7.0276)(2.82292,7.0309)
-\path(2.84178,7.02406)(2.82296,7.02571)
-\path(2.82292,7.0309)(2.82299,7.02052)(2.88,7.03125)
- (2.82286,7.04128)(2.82292,7.0309)
-\put(2.86001,7.08981){\makebox(0,0)[b]{\hbox{\color{rgb_7f7f7f}\footnotesize \texttt{eps}}}}
-\put(2.88,7.03125){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.88,7.03125)(3.52,7.03125)
-\path(3.47434,7.03955)(3.46292,7.03623)
-\path(3.48575,7.03748)(3.46292,7.03083)
-\path(3.49717,7.0354)(3.46292,7.02543)
-\path(3.50858,7.03333)(3.4706,7.02227)
-\path(3.46292,7.03964)(3.46811,7.02182)
-\path(3.46808,7.04069)(3.4733,7.02276)
-\path(3.47385,7.03964)(3.47849,7.0237)
-\path(3.47962,7.03859)(3.48368,7.02465)
-\path(3.48539,7.03754)(3.48887,7.02559)
-\path(3.49116,7.03649)(3.49406,7.02653)
-\path(3.49692,7.03545)(3.49924,7.02748)
-\path(3.50269,7.0344)(3.50443,7.02842)
-\path(3.50846,7.03335)(3.50962,7.02936)
-\path(3.51423,7.0323)(3.51481,7.03031)
-\path(3.46292,7.03125)(3.46292,7.02087)(3.52,7.03125)
- (3.46292,7.04163)(3.46292,7.03125)
-\put(3.57535,7.03125){\makebox(0,0)[l]{\hbox{\color{rgb_7f7f7f}\footnotesize \begin{minipage}{0.225in}\texttt{png mng gif}\end{minipage}}}}
-\put(3.52,7.03125){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(1.92,6.09375){\makebox(0,0)[c]{\hbox{\color{rgb_009800}\texttt{\Large laps}}}}
-\allinethickness{1.2pt}%
-\color{rgb_ff0000}%
-\path(0.32,5.15625)(0.96,5.15625)
-\allinethickness{0.0055348in}%
-\path(0.902922,5.15435)(0.90863,5.14691)
-\path(0.902922,5.16284)(0.914338,5.14795)
-\path(0.907102,5.16587)(0.920046,5.14899)
-\path(0.914659,5.16449)(0.925753,5.15002)
-\path(0.922216,5.16312)(0.931461,5.15106)
-\path(0.929773,5.16175)(0.937169,5.1521)
-\path(0.93733,5.16037)(0.942877,5.15314)
-\path(0.944886,5.159)(0.948584,5.15417)
-\path(0.952443,5.15762)(0.954292,5.15521)
-\path(0.948429,5.15415)(0.952865,5.15755)
-\path(0.936859,5.15204)(0.945731,5.15884)
-\path(0.925288,5.14994)(0.938596,5.16014)
-\path(0.913717,5.14783)(0.931461,5.16144)
-\path(0.902922,5.14633)(0.924326,5.16274)
-\path(0.902922,5.15309)(0.917192,5.16403)
-\path(0.902922,5.15986)(0.910057,5.16533)
-\allinethickness{1.2pt}%
-\path(0.902922,5.15625)(0.902922,5.14587)(0.96,5.15625)
- (0.902922,5.16663)(0.902922,5.15625)
-\put(0.32,5.2116){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{xp}, \texttt{flx}}}}}}
-\put(0.32,5.15625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(0.97999,5.21481){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{eepic}}}}}}
-\put(0.96,5.15625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{0.4pt}%
-\color{rgb_7f7f7f}%
-\path(0.96,5.15625)(0.963187,5.15615)(0.966347,5.15586)
- (0.969482,5.15539)(0.972591,5.15472)(0.975676,5.15388)
- (0.978736,5.15285)(0.981772,5.15165)(0.984785,5.15028)
- (0.987774,5.14874)(0.990741,5.14703)(0.993685,5.14516)
- (0.996608,5.14313)(0.999509,5.14094)(1.00239,5.1386)
- (1.00525,5.13611)(1.00809,5.13347)(1.01091,5.13069)
- (1.01371,5.12777)(1.01649,5.12472)(1.01926,5.12153)
- (1.02201,5.11821)(1.02474,5.11476)(1.02745,5.11119)(1.03014,5.1075)
- (1.03282,5.10369)(1.03549,5.09977)(1.03814,5.09574)(1.04077,5.0916)
- (1.04339,5.08735)(1.046,5.08301)(1.04859,5.07856)(1.05117,5.07403)
- (1.05374,5.0694)(1.0563,5.06468)(1.05884,5.05988)(1.06138,5.055)
- (1.0639,5.05004)(1.06641,5.045)(1.06891,5.0399)(1.07141,5.03472)
- (1.07389,5.02948)(1.07637,5.02418)(1.07884,5.01882)(1.0813,5.0134)
- (1.08375,5.00793)(1.0862,5.00242)(1.08864,4.99685)(1.09107,4.99125)
- (1.0935,4.98561)(1.09593,4.97993)(1.09835,4.97421)(1.10076,4.96847)
- (1.10317,4.9627)(1.10558,4.95691)(1.10799,4.9511)(1.1104,4.94528)
- (1.1128,4.93944)(1.1152,4.93359)(1.1176,4.92773)(1.12,4.92188)
- (1.1224,4.91602)(1.1248,4.91016)(1.1272,4.90431)(1.1296,4.89847)
- (1.13201,4.89265)(1.13442,4.88684)(1.13683,4.88105)
- (1.13924,4.87528)(1.14165,4.86954)(1.14407,4.86382)(1.1465,4.85814)
- (1.14893,4.8525)(1.15136,4.8469)(1.1538,4.84133)(1.15625,4.83582)
- (1.1587,4.83035)(1.16116,4.82493)(1.16363,4.81957)(1.16611,4.81427)
- (1.16859,4.80903)(1.17109,4.80385)(1.17359,4.79875)(1.1761,4.79371)
- (1.17862,4.78875)(1.18116,4.78387)(1.1837,4.77907)(1.18626,4.77435)
- (1.18883,4.76972)(1.19141,4.76519)(1.194,4.76074)(1.19661,4.7564)
- (1.19923,4.75215)(1.20186,4.74801)(1.20451,4.74398)
- (1.20718,4.74006)(1.20986,4.73625)(1.21255,4.73256)
- (1.21526,4.72899)(1.21799,4.72554)(1.22074,4.72222)
- (1.22351,4.71903)(1.22629,4.71598)(1.22909,4.71306)
- (1.23191,4.71028)(1.23475,4.70764)(1.23761,4.70515)
- (1.24049,4.70281)(1.24339,4.70063)(1.24631,4.69859)
- (1.24926,4.69672)(1.25223,4.69501)(1.25522,4.69347)(1.25823,4.6921)
- (1.26126,4.6909)(1.26432,4.68987)(1.26741,4.68903)(1.27052,4.68836)
- (1.27365,4.68789)(1.27681,4.6876)(1.28,4.6875)
-\path(1.28,4.6875)(1.6,4.6875)
-\path(1.59287,4.6862)(1.59429,4.68854)
-\path(1.58575,4.68491)(1.58858,4.68958)
-\path(1.57862,4.68361)(1.58288,4.69061)
-\path(1.5715,4.68232)(1.57717,4.69165)
-\path(1.56437,4.68102)(1.57146,4.69269)
-\path(1.55725,4.67973)(1.56575,4.69373)
-\path(1.55012,4.67843)(1.56005,4.69476)
-\path(1.543,4.67714)(1.55434,4.6958)
-\path(1.54292,4.68744)(1.54863,4.69684)
-\path(1.59185,4.68602)(1.58488,4.69025)
-\path(1.58369,4.68453)(1.56976,4.693)
-\path(1.57554,4.68305)(1.55464,4.69575)
-\path(1.56738,4.68157)(1.54292,4.69643)
-\path(1.55923,4.68009)(1.54292,4.68999)
-\path(1.55108,4.6786)(1.54292,4.68356)
-\path(1.54292,4.6875)(1.54292,4.67712)(1.6,4.6875)(1.54292,4.69788)(1.54292,4.6875)
-\path(1.6,4.6875)(2.24,4.6875)
-\path(2.22632,4.68501)(2.18292,4.69269)
-\path(2.21185,4.68238)(2.18292,4.6875)
-\path(2.19739,4.67975)(2.18292,4.68231)
-\path(2.18811,4.69693)(2.18466,4.67744)
-\path(2.1933,4.69599)(2.1902,4.67844)
-\path(2.19849,4.69505)(2.19573,4.67945)
-\path(2.20368,4.6941)(2.20126,4.68046)
-\path(2.20887,4.69316)(2.2068,4.68146)
-\path(2.21406,4.69222)(2.21233,4.68247)
-\path(2.21924,4.69127)(2.21787,4.68348)
-\path(2.22443,4.69033)(2.2234,4.68448)
-\path(2.22962,4.68939)(2.22893,4.68549)
-\path(2.23481,4.68844)(2.23447,4.68649)
-\path(2.18292,4.6875)(2.18292,4.67712)(2.24,4.6875)
- (2.18292,4.69788)(2.18292,4.6875)
-\put(1.6,4.74285){\makebox(0,0)[b]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{dvi}}}}}
-\put(1.6,4.6875){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(2.21793,4.71982){\makebox(0,0)[br]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{ps}}}}}
-\put(2.24,4.6875){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(0.96,4.21875)(0.963187,4.21885)(0.966347,4.21914)
- (0.969482,4.21961)(0.972591,4.22028)(0.975676,4.22112)
- (0.978736,4.22215)(0.981772,4.22335)(0.984785,4.22472)
- (0.987774,4.22626)(0.990741,4.22797)(0.993685,4.22984)
- (0.996608,4.23188)(0.999509,4.23406)(1.00239,4.2364)
- (1.00525,4.23889)(1.00809,4.24153)(1.01091,4.24431)
- (1.01371,4.24723)(1.01649,4.25028)(1.01926,4.25347)
- (1.02201,4.25679)(1.02474,4.26024)(1.02745,4.26381)(1.03014,4.2675)
- (1.03282,4.27131)(1.03549,4.27523)(1.03814,4.27926)(1.04077,4.2834)
- (1.04339,4.28765)(1.046,4.29199)(1.04859,4.29644)(1.05117,4.30097)
- (1.05374,4.3056)(1.0563,4.31032)(1.05884,4.31512)(1.06138,4.32)
- (1.0639,4.32496)(1.06641,4.33)(1.06891,4.3351)(1.07141,4.34028)
- (1.07389,4.34552)(1.07637,4.35082)(1.07884,4.35618)(1.0813,4.3616)
- (1.08375,4.36707)(1.0862,4.37258)(1.08864,4.37815)(1.09107,4.38375)
- (1.0935,4.38939)(1.09593,4.39507)(1.09835,4.40079)(1.10076,4.40653)
- (1.10317,4.4123)(1.10558,4.41809)(1.10799,4.4239)(1.1104,4.42972)
- (1.1128,4.43556)(1.1152,4.44141)(1.1176,4.44727)(1.12,4.45312)
- (1.1224,4.45898)(1.1248,4.46484)(1.1272,4.47069)(1.1296,4.47653)
- (1.13201,4.48235)(1.13442,4.48816)(1.13683,4.49395)
- (1.13924,4.49972)(1.14165,4.50546)(1.14407,4.51118)(1.1465,4.51686)
- (1.14893,4.5225)(1.15136,4.5281)(1.1538,4.53367)(1.15625,4.53918)
- (1.1587,4.54465)(1.16116,4.55007)(1.16363,4.55543)(1.16611,4.56073)
- (1.16859,4.56597)(1.17109,4.57115)(1.17359,4.57625)(1.1761,4.58129)
- (1.17862,4.58625)(1.18116,4.59113)(1.1837,4.59593)(1.18626,4.60065)
- (1.18883,4.60528)(1.19141,4.60981)(1.194,4.61426)(1.19661,4.6186)
- (1.19923,4.62285)(1.20186,4.62699)(1.20451,4.63102)
- (1.20718,4.63494)(1.20986,4.63875)(1.21255,4.64244)
- (1.21526,4.64601)(1.21799,4.64946)(1.22074,4.65278)
- (1.22351,4.65597)(1.22629,4.65902)(1.22909,4.66194)
- (1.23191,4.66472)(1.23475,4.66736)(1.23761,4.66985)
- (1.24049,4.67219)(1.24339,4.67437)(1.24631,4.67641)
- (1.24926,4.67828)(1.25223,4.67999)(1.25522,4.68153)(1.25823,4.6829)
- (1.26126,4.6841)(1.26432,4.68513)(1.26741,4.68597)(1.27052,4.68664)
- (1.27365,4.68711)(1.27681,4.6874)(1.28,4.6875)
-\put(0.97999,4.16019){\makebox(0,0)[t]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{tex}}}}}
-\put(0.96,4.21875){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.24,4.6875)(2.24533,4.67972)(2.25067,4.67201)(2.256,4.66436)
- (2.26133,4.65677)(2.26667,4.64925)(2.272,4.6418)(2.27733,4.63441)
- (2.28267,4.62708)(2.288,4.61982)(2.29333,4.61263)(2.29867,4.6055)
- (2.304,4.59844)(2.30933,4.59144)(2.31467,4.58451)(2.32,4.57764)
- (2.32533,4.57083)(2.33067,4.5641)(2.336,4.55742)(2.34133,4.55081)
- (2.34667,4.54427)(2.352,4.53779)(2.35733,4.53138)(2.36267,4.52503)
- (2.368,4.51875)(2.37333,4.51253)(2.37867,4.50638)(2.384,4.50029)
- (2.38933,4.49427)(2.39467,4.48831)(2.4,4.48242)(2.40533,4.4766)
- (2.41067,4.47083)(2.416,4.46514)(2.42133,4.45951)(2.42667,4.45394)
- (2.432,4.44844)(2.43733,4.443)(2.44267,4.43763)(2.448,4.43232)
- (2.45333,4.42708)(2.45867,4.42191)(2.464,4.4168)(2.46933,4.41175)
- (2.47467,4.40677)(2.48,4.40186)(2.48533,4.39701)(2.49067,4.39222)
- (2.496,4.3875)(2.50133,4.38285)(2.50667,4.37826)(2.512,4.37373)
- (2.51733,4.36927)(2.52267,4.36488)(2.528,4.36055)(2.53333,4.35628)
- (2.53867,4.35208)(2.544,4.34795)(2.54933,4.34388)(2.55467,4.33988)
- (2.56,4.33594)(2.56533,4.33206)(2.57067,4.32826)(2.576,4.32451)
- (2.58133,4.32083)(2.58667,4.31722)(2.592,4.31367)(2.59733,4.31019)
- (2.60267,4.30677)(2.608,4.30342)(2.61333,4.30013)(2.61867,4.29691)
- (2.624,4.29375)(2.62933,4.29066)(2.63467,4.28763)(2.64,4.28467)
- (2.64533,4.28177)(2.65067,4.27894)(2.656,4.27617)(2.66133,4.27347)
- (2.66667,4.27083)(2.672,4.26826)(2.67733,4.26576)(2.68267,4.26331)
- (2.688,4.26094)(2.69333,4.25863)(2.69867,4.25638)(2.704,4.2542)
- (2.70933,4.25208)(2.71467,4.25003)(2.72,4.24805)(2.72533,4.24613)
- (2.73067,4.24427)(2.736,4.24248)(2.74133,4.24076)(2.74667,4.2391)
- (2.752,4.2375)(2.75733,4.23597)(2.76267,4.23451)(2.768,4.23311)
- (2.77333,4.23177)(2.77867,4.2305)(2.784,4.2293)(2.78933,4.22816)
- (2.79467,4.22708)(2.8,4.22607)(2.80533,4.22513)(2.81067,4.22425)
- (2.816,4.22344)(2.82133,4.22269)(2.82667,4.22201)(2.832,4.22139)
- (2.83733,4.22083)(2.84267,4.22035)(2.848,4.21992)(2.85333,4.21956)
- (2.85867,4.21927)(2.864,4.21904)(2.86933,4.21888)(2.87467,4.21878)(2.88,4.21875)
-\path(2.82416,4.22925)(2.82805,4.20963)
-\path(2.82975,4.2282)(2.83325,4.21054)
-\path(2.83533,4.22715)(2.83844,4.21146)
-\path(2.84091,4.2261)(2.84364,4.21237)
-\path(2.8465,4.22505)(2.84883,4.21328)
-\path(2.85208,4.224)(2.85403,4.21419)
-\path(2.85767,4.22295)(2.85922,4.2151)
-\path(2.86325,4.2219)(2.86442,4.21601)
-\path(2.86883,4.22085)(2.86961,4.21693)
-\path(2.87442,4.2198)(2.87481,4.21784)
-\path(2.82289,4.21293)(2.86575,4.22143)
-\path(2.82292,4.21845)(2.85149,4.22411)
-\path(2.82295,4.22396)(2.83724,4.22679)
-\path(2.82292,4.2191)(2.82286,4.20872)(2.88,4.21875)
- (2.82299,4.22948)(2.82292,4.2191)
-\put(2.93535,4.21875){\makebox(0,0)[l]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{pdf}}}}}
-\put(2.88,4.21875){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.24,4.6875)(2.24533,4.69528)(2.25067,4.70299)(2.256,4.71064)
- (2.26133,4.71823)(2.26667,4.72575)(2.272,4.7332)(2.27733,4.74059)
- (2.28267,4.74792)(2.288,4.75518)(2.29333,4.76237)(2.29867,4.7695)
- (2.304,4.77656)(2.30933,4.78356)(2.31467,4.79049)(2.32,4.79736)
- (2.32533,4.80417)(2.33067,4.8109)(2.336,4.81758)(2.34133,4.82419)
- (2.34667,4.83073)(2.352,4.83721)(2.35733,4.84362)(2.36267,4.84997)
- (2.368,4.85625)(2.37333,4.86247)(2.37867,4.86862)(2.384,4.87471)
- (2.38933,4.88073)(2.39467,4.88669)(2.4,4.89258)(2.40533,4.8984)
- (2.41067,4.90417)(2.416,4.90986)(2.42133,4.91549)(2.42667,4.92106)
- (2.432,4.92656)(2.43733,4.932)(2.44267,4.93737)(2.448,4.94268)
- (2.45333,4.94792)(2.45867,4.95309)(2.464,4.9582)(2.46933,4.96325)
- (2.47467,4.96823)(2.48,4.97314)(2.48533,4.97799)(2.49067,4.98278)
- (2.496,4.9875)(2.50133,4.99215)(2.50667,4.99674)(2.512,5.00127)
- (2.51733,5.00573)(2.52267,5.01012)(2.528,5.01445)(2.53333,5.01872)
- (2.53867,5.02292)(2.544,5.02705)(2.54933,5.03112)(2.55467,5.03512)
- (2.56,5.03906)(2.56533,5.04294)(2.57067,5.04674)(2.576,5.05049)
- (2.58133,5.05417)(2.58667,5.05778)(2.592,5.06133)(2.59733,5.06481)
- (2.60267,5.06823)(2.608,5.07158)(2.61333,5.07487)(2.61867,5.07809)
- (2.624,5.08125)(2.62933,5.08434)(2.63467,5.08737)(2.64,5.09033)
- (2.64533,5.09323)(2.65067,5.09606)(2.656,5.09883)(2.66133,5.10153)
- (2.66667,5.10417)(2.672,5.10674)(2.67733,5.10924)(2.68267,5.11169)
- (2.688,5.11406)(2.69333,5.11637)(2.69867,5.11862)(2.704,5.1208)
- (2.70933,5.12292)(2.71467,5.12497)(2.72,5.12695)(2.72533,5.12887)
- (2.73067,5.13073)(2.736,5.13252)(2.74133,5.13424)(2.74667,5.1359)
- (2.752,5.1375)(2.75733,5.13903)(2.76267,5.14049)(2.768,5.14189)
- (2.77333,5.14323)(2.77867,5.1445)(2.784,5.1457)(2.78933,5.14684)
- (2.79467,5.14792)(2.8,5.14893)(2.80533,5.14987)(2.81067,5.15075)
- (2.816,5.15156)(2.82133,5.15231)(2.82667,5.15299)(2.832,5.15361)
- (2.83733,5.15417)(2.84267,5.15465)(2.848,5.15508)(2.85333,5.15544)
- (2.85867,5.15573)(2.864,5.15596)(2.86933,5.15612)(2.87467,5.15622)(2.88,5.15625)
-\path(2.86706,5.15382)(2.87286,5.1575)
-\path(2.85412,5.15138)(2.86572,5.15876)
-\path(2.84118,5.14895)(2.85857,5.16001)
-\path(2.82824,5.14651)(2.85143,5.16126)
-\path(2.82297,5.14896)(2.84429,5.16252)
-\path(2.82293,5.15473)(2.83715,5.16377)
-\path(2.8229,5.1605)(2.83,5.16503)
-\path(2.8743,5.15518)(2.87281,5.15751)
-\path(2.8686,5.1541)(2.86563,5.15877)
-\path(2.8629,5.15303)(2.85844,5.16003)
-\path(2.85719,5.15196)(2.85126,5.1613)
-\path(2.85149,5.15089)(2.84407,5.16256)
-\path(2.84579,5.14981)(2.83688,5.16382)
-\path(2.84009,5.14874)(2.8297,5.16508)
-\path(2.83439,5.14767)(2.82286,5.16579)
-\path(2.82869,5.1466)(2.82292,5.15566)
-\path(2.82292,5.1559)(2.82299,5.14552)(2.88,5.15625)
- (2.82286,5.16628)(2.82292,5.1559)
-\put(2.86001,5.21481){\makebox(0,0)[b]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{eps}}}}}
-\put(2.88,5.15625){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.88,5.15625)(3.52,5.15625)
-\path(3.51287,5.15495)(3.50817,5.1584)
-\path(3.50573,5.15366)(3.49634,5.16055)
-\path(3.4986,5.15236)(3.48451,5.1627)
-\path(3.49146,5.15106)(3.47268,5.16485)
-\path(3.48433,5.14976)(3.46292,5.16548)
-\path(3.47719,5.14847)(3.46292,5.15895)
-\path(3.47006,5.14717)(3.46292,5.15241)
-\path(3.46863,5.16559)(3.46292,5.15782)
-\path(3.47434,5.16455)(3.46292,5.14901)
-\path(3.48005,5.16351)(3.46773,5.14675)
-\path(3.48575,5.16248)(3.4752,5.1481)
-\path(3.49146,5.16144)(3.48267,5.14946)
-\path(3.49717,5.1604)(3.49013,5.15082)
-\path(3.50288,5.15936)(3.4976,5.15218)
-\path(3.50858,5.15833)(3.50507,5.15353)
-\path(3.51429,5.15729)(3.51253,5.15489)
-\path(3.46292,5.15625)(3.46292,5.14587)(3.52,5.15625)
- (3.46292,5.16663)(3.46292,5.15625)
-\put(3.57535,5.15625){\makebox(0,0)[l]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \begin{minipage}{0.225in}\texttt{png mng gif}\end{minipage}}}}}
-\put(3.52,5.15625){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(1.92,4.21875){\makebox(0,0)[c]{\hbox{\color{rgb_009800}\texttt{\Large epix}}}}
-\allinethickness{1.2pt}%
-\color{rgb_ff0000}%
-\path(0.32,3.28125)(0.96,3.28125)
-\allinethickness{0.0055348in}%
-\path(0.908111,3.29068)(0.902922,3.27138)
-\path(0.9133,3.28974)(0.9085,3.27189)
-\path(0.918489,3.2888)(0.914223,3.27293)
-\path(0.923678,3.28785)(0.919945,3.27397)
-\path(0.928867,3.28691)(0.925667,3.27501)
-\path(0.934056,3.28597)(0.931389,3.27605)
-\path(0.939244,3.28502)(0.937111,3.27709)
-\path(0.944433,3.28408)(0.942833,3.27813)
-\path(0.949622,3.28314)(0.948556,3.27917)
-\path(0.954811,3.28219)(0.954278,3.28021)
-\path(0.902922,3.27602)(0.914338,3.27295)
-\path(0.902922,3.28116)(0.925753,3.27502)
-\path(0.902922,3.28631)(0.937169,3.2771)
-\path(0.902922,3.29145)(0.948584,3.27917)
-\allinethickness{1.2pt}%
-\path(0.902922,3.28125)(0.902922,3.27087)(0.96,3.28125)
- (0.902922,3.29163)(0.902922,3.28125)
-\put(0.32,3.3366){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{xp}, \texttt{flx}}}}}}
-\put(0.32,3.28125){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(0.97999,3.33981){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{eepic}}}}}}
-\put(0.96,3.28125){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(0.96,3.28125)(0.963187,3.28115)(0.966347,3.28086)
- (0.969482,3.28039)(0.972591,3.27972)(0.975676,3.27888)
- (0.978736,3.27785)(0.981772,3.27665)(0.984785,3.27528)
- (0.987774,3.27374)(0.990741,3.27203)(0.993685,3.27016)
- (0.996608,3.26813)(0.999509,3.26594)(1.00239,3.2636)
- (1.00525,3.26111)(1.00809,3.25847)(1.01091,3.25569)
- (1.01371,3.25277)(1.01649,3.24972)(1.01926,3.24653)
- (1.02201,3.24321)(1.02474,3.23976)(1.02745,3.23619)(1.03014,3.2325)
- (1.03282,3.22869)(1.03549,3.22477)(1.03814,3.22074)(1.04077,3.2166)
- (1.04339,3.21235)(1.046,3.20801)(1.04859,3.20356)(1.05117,3.19903)
- (1.05374,3.1944)(1.0563,3.18968)(1.05884,3.18488)(1.06138,3.18)
- (1.0639,3.17504)(1.06641,3.17)(1.06891,3.1649)(1.07141,3.15972)
- (1.07389,3.15448)(1.07637,3.14918)(1.07884,3.14382)(1.0813,3.1384)
- (1.08375,3.13293)(1.0862,3.12742)(1.08864,3.12185)(1.09107,3.11625)
- (1.0935,3.11061)(1.09593,3.10493)(1.09835,3.09921)(1.10076,3.09347)
- (1.10317,3.0877)(1.10558,3.08191)(1.10799,3.0761)(1.1104,3.07028)
- (1.1128,3.06444)(1.1152,3.05859)(1.1176,3.05273)(1.12,3.04688)
- (1.1224,3.04102)(1.1248,3.03516)(1.1272,3.02931)(1.1296,3.02347)
- (1.13201,3.01765)(1.13442,3.01184)(1.13683,3.00605)
- (1.13924,3.00028)(1.14165,2.99454)(1.14407,2.98882)(1.1465,2.98314)
- (1.14893,2.9775)(1.15136,2.9719)(1.1538,2.96633)(1.15625,2.96082)
- (1.1587,2.95535)(1.16116,2.94993)(1.16363,2.94457)(1.16611,2.93927)
- (1.16859,2.93403)(1.17109,2.92885)(1.17359,2.92375)(1.1761,2.91871)
- (1.17862,2.91375)(1.18116,2.90887)(1.1837,2.90407)(1.18626,2.89935)
- (1.18883,2.89472)(1.19141,2.89019)(1.194,2.88574)(1.19661,2.8814)
- (1.19923,2.87715)(1.20186,2.87301)(1.20451,2.86898)
- (1.20718,2.86506)(1.20986,2.86125)(1.21255,2.85756)
- (1.21526,2.85399)(1.21799,2.85054)(1.22074,2.84722)
- (1.22351,2.84403)(1.22629,2.84098)(1.22909,2.83806)
- (1.23191,2.83528)(1.23475,2.83264)(1.23761,2.83015)
- (1.24049,2.82781)(1.24339,2.82563)(1.24631,2.82359)
- (1.24926,2.82172)(1.25223,2.82001)(1.25522,2.81847)(1.25823,2.8171)
- (1.26126,2.8159)(1.26432,2.81487)(1.26741,2.81403)(1.27052,2.81336)
- (1.27365,2.81289)(1.27681,2.8126)(1.28,2.8125)
-\path(1.28,2.8125)(1.6,2.8125)
-\allinethickness{0.0055348in}%
-\path(1.54292,2.80731)(1.59652,2.81313)
-\path(1.54292,2.8125)(1.57865,2.81638)
-\path(1.54292,2.81769)(1.56079,2.81963)
-\path(1.59481,2.81156)(1.5946,2.81348)
-\path(1.58962,2.81061)(1.5892,2.81446)
-\path(1.58443,2.80967)(1.58381,2.81544)
-\path(1.57924,2.80873)(1.57841,2.81643)
-\path(1.57406,2.80778)(1.57301,2.81741)
-\path(1.56887,2.80684)(1.56761,2.81839)
-\path(1.56368,2.8059)(1.56221,2.81937)
-\path(1.55849,2.80495)(1.55682,2.82035)
-\path(1.5533,2.80401)(1.55142,2.82133)
-\path(1.54811,2.80307)(1.54602,2.82231)
-\allinethickness{1.2pt}%
-\path(1.54292,2.8125)(1.54292,2.80212)(1.6,2.8125)(1.54292,2.82288)(1.54292,2.8125)
-\path(1.6,2.8125)(2.24,2.8125)
-\allinethickness{0.0055348in}%
-\path(2.23481,2.81156)(2.23373,2.81364)
-\path(2.22962,2.81061)(2.22746,2.81478)
-\path(2.22443,2.80967)(2.22119,2.81592)
-\path(2.21924,2.80873)(2.21492,2.81706)
-\path(2.21406,2.80778)(2.20864,2.8182)
-\path(2.20887,2.80684)(2.20237,2.81934)
-\path(2.20368,2.8059)(2.1961,2.82048)
-\path(2.19849,2.80495)(2.18983,2.82162)
-\path(2.1933,2.80401)(2.18356,2.82276)
-\path(2.18811,2.80307)(2.18292,2.81306)
-\path(2.19108,2.8214)(2.18292,2.81716)
-\path(2.19923,2.81991)(2.18292,2.81144)
-\path(2.20738,2.81843)(2.18292,2.80573)
-\path(2.21554,2.81695)(2.18919,2.80326)
-\path(2.22369,2.81547)(2.20612,2.80634)
-\path(2.23185,2.81398)(2.22306,2.80942)
-\allinethickness{1.2pt}%
-\path(2.18292,2.8125)(2.18292,2.80212)(2.24,2.8125)
- (2.18292,2.82288)(2.18292,2.8125)
-\put(1.6,2.86785){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{dvi}}}}}}
-\put(1.6,2.8125){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(2.21793,2.84482){\makebox(0,0)[br]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{ps}}}}}}
-\put(2.24,2.8125){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{0.4pt}%
-\color{rgb_7f7f7f}%
-\path(0.96,2.34375)(0.963187,2.34385)(0.966347,2.34414)
- (0.969482,2.34461)(0.972591,2.34528)(0.975676,2.34612)
- (0.978736,2.34715)(0.981772,2.34835)(0.984785,2.34972)
- (0.987774,2.35126)(0.990741,2.35297)(0.993685,2.35484)
- (0.996608,2.35688)(0.999509,2.35906)(1.00239,2.3614)
- (1.00525,2.36389)(1.00809,2.36653)(1.01091,2.36931)
- (1.01371,2.37223)(1.01649,2.37528)(1.01926,2.37847)
- (1.02201,2.38179)(1.02474,2.38524)(1.02745,2.38881)(1.03014,2.3925)
- (1.03282,2.39631)(1.03549,2.40023)(1.03814,2.40426)(1.04077,2.4084)
- (1.04339,2.41265)(1.046,2.41699)(1.04859,2.42144)(1.05117,2.42597)
- (1.05374,2.4306)(1.0563,2.43532)(1.05884,2.44012)(1.06138,2.445)
- (1.0639,2.44996)(1.06641,2.455)(1.06891,2.4601)(1.07141,2.46528)
- (1.07389,2.47052)(1.07637,2.47582)(1.07884,2.48118)(1.0813,2.4866)
- (1.08375,2.49207)(1.0862,2.49758)(1.08864,2.50315)(1.09107,2.50875)
- (1.0935,2.51439)(1.09593,2.52007)(1.09835,2.52579)(1.10076,2.53153)
- (1.10317,2.5373)(1.10558,2.54309)(1.10799,2.5489)(1.1104,2.55472)
- (1.1128,2.56056)(1.1152,2.56641)(1.1176,2.57227)(1.12,2.57812)
- (1.1224,2.58398)(1.1248,2.58984)(1.1272,2.59569)(1.1296,2.60153)
- (1.13201,2.60735)(1.13442,2.61316)(1.13683,2.61895)
- (1.13924,2.62472)(1.14165,2.63046)(1.14407,2.63618)(1.1465,2.64186)
- (1.14893,2.6475)(1.15136,2.6531)(1.1538,2.65867)(1.15625,2.66418)
- (1.1587,2.66965)(1.16116,2.67507)(1.16363,2.68043)(1.16611,2.68573)
- (1.16859,2.69097)(1.17109,2.69615)(1.17359,2.70125)(1.1761,2.70629)
- (1.17862,2.71125)(1.18116,2.71613)(1.1837,2.72093)(1.18626,2.72565)
- (1.18883,2.73028)(1.19141,2.73481)(1.194,2.73926)(1.19661,2.7436)
- (1.19923,2.74785)(1.20186,2.75199)(1.20451,2.75602)
- (1.20718,2.75994)(1.20986,2.76375)(1.21255,2.76744)
- (1.21526,2.77101)(1.21799,2.77446)(1.22074,2.77778)
- (1.22351,2.78097)(1.22629,2.78402)(1.22909,2.78694)
- (1.23191,2.78972)(1.23475,2.79236)(1.23761,2.79485)
- (1.24049,2.79719)(1.24339,2.79937)(1.24631,2.80141)
- (1.24926,2.80328)(1.25223,2.80499)(1.25522,2.80653)(1.25823,2.8079)
- (1.26126,2.8091)(1.26432,2.81013)(1.26741,2.81097)(1.27052,2.81164)
- (1.27365,2.81211)(1.27681,2.8124)(1.28,2.8125)
-\put(0.97999,2.28519){\makebox(0,0)[t]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{tex}}}}}
-\put(0.96,2.34375){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{1.2pt}%
-\color{rgb_ff0000}%
-\path(2.24,2.8125)(2.24533,2.80472)(2.25067,2.79701)(2.256,2.78936)
- (2.26133,2.78177)(2.26667,2.77425)(2.272,2.7668)(2.27733,2.75941)
- (2.28267,2.75208)(2.288,2.74482)(2.29333,2.73763)(2.29867,2.7305)
- (2.304,2.72344)(2.30933,2.71644)(2.31467,2.70951)(2.32,2.70264)
- (2.32533,2.69583)(2.33067,2.6891)(2.336,2.68242)(2.34133,2.67581)
- (2.34667,2.66927)(2.352,2.66279)(2.35733,2.65638)(2.36267,2.65003)
- (2.368,2.64375)(2.37333,2.63753)(2.37867,2.63138)(2.384,2.62529)
- (2.38933,2.61927)(2.39467,2.61331)(2.4,2.60742)(2.40533,2.6016)
- (2.41067,2.59583)(2.416,2.59014)(2.42133,2.58451)(2.42667,2.57894)
- (2.432,2.57344)(2.43733,2.568)(2.44267,2.56263)(2.448,2.55732)
- (2.45333,2.55208)(2.45867,2.54691)(2.464,2.5418)(2.46933,2.53675)
- (2.47467,2.53177)(2.48,2.52686)(2.48533,2.52201)(2.49067,2.51722)
- (2.496,2.5125)(2.50133,2.50785)(2.50667,2.50326)(2.512,2.49873)
- (2.51733,2.49427)(2.52267,2.48988)(2.528,2.48555)(2.53333,2.48128)
- (2.53867,2.47708)(2.544,2.47295)(2.54933,2.46888)(2.55467,2.46488)
- (2.56,2.46094)(2.56533,2.45706)(2.57067,2.45326)(2.576,2.44951)
- (2.58133,2.44583)(2.58667,2.44222)(2.592,2.43867)(2.59733,2.43519)
- (2.60267,2.43177)(2.608,2.42842)(2.61333,2.42513)(2.61867,2.42191)
- (2.624,2.41875)(2.62933,2.41566)(2.63467,2.41263)(2.64,2.40967)
- (2.64533,2.40677)(2.65067,2.40394)(2.656,2.40117)(2.66133,2.39847)
- (2.66667,2.39583)(2.672,2.39326)(2.67733,2.39076)(2.68267,2.38831)
- (2.688,2.38594)(2.69333,2.38363)(2.69867,2.38138)(2.704,2.3792)
- (2.70933,2.37708)(2.71467,2.37503)(2.72,2.37305)(2.72533,2.37113)
- (2.73067,2.36927)(2.736,2.36748)(2.74133,2.36576)(2.74667,2.3641)
- (2.752,2.3625)(2.75733,2.36097)(2.76267,2.35951)(2.768,2.35811)
- (2.77333,2.35677)(2.77867,2.3555)(2.784,2.3543)(2.78933,2.35316)
- (2.79467,2.35208)(2.8,2.35107)(2.80533,2.35013)(2.81067,2.34925)
- (2.816,2.34844)(2.82133,2.34769)(2.82667,2.34701)(2.832,2.34639)
- (2.83733,2.34583)(2.84267,2.34535)(2.848,2.34492)(2.85333,2.34456)
- (2.85867,2.34427)(2.864,2.34404)(2.86933,2.34388)(2.87467,2.34378)(2.88,2.34375)
-\allinethickness{0.0055348in}%
-\path(2.82869,2.3534)(2.82294,2.34686)
-\path(2.83439,2.35233)(2.82289,2.33925)
-\path(2.84009,2.35126)(2.82501,2.3341)
-\path(2.84579,2.35019)(2.83287,2.33548)
-\path(2.85149,2.34911)(2.84072,2.33686)
-\path(2.85719,2.34804)(2.84858,2.33823)
-\path(2.8629,2.34697)(2.85643,2.33961)
-\path(2.8686,2.3459)(2.86429,2.34099)
-\path(2.8743,2.34482)(2.87214,2.34237)
-\path(2.8229,2.34038)(2.82921,2.33484)
-\path(2.82294,2.34704)(2.83556,2.33595)
-\path(2.82298,2.35369)(2.84191,2.33706)
-\path(2.83154,2.35287)(2.84826,2.33818)
-\path(2.84123,2.35104)(2.8546,2.33929)
-\path(2.85092,2.34922)(2.86095,2.34041)
-\path(2.86062,2.3474)(2.8673,2.34152)
-\path(2.87031,2.34557)(2.87365,2.34264)
-\allinethickness{1.2pt}%
-\path(2.82292,2.3441)(2.82286,2.33372)(2.88,2.34375)
- (2.82299,2.35448)(2.82292,2.3441)
-\put(2.93535,2.34375){\makebox(0,0)[l]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{pdf}}}}}}
-\put(2.88,2.34375){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.24,2.8125)(2.24533,2.82028)(2.25067,2.82799)(2.256,2.83564)
- (2.26133,2.84323)(2.26667,2.85075)(2.272,2.8582)(2.27733,2.86559)
- (2.28267,2.87292)(2.288,2.88018)(2.29333,2.88737)(2.29867,2.8945)
- (2.304,2.90156)(2.30933,2.90856)(2.31467,2.91549)(2.32,2.92236)
- (2.32533,2.92917)(2.33067,2.9359)(2.336,2.94258)(2.34133,2.94919)
- (2.34667,2.95573)(2.352,2.96221)(2.35733,2.96862)(2.36267,2.97497)
- (2.368,2.98125)(2.37333,2.98747)(2.37867,2.99362)(2.384,2.99971)
- (2.38933,3.00573)(2.39467,3.01169)(2.4,3.01758)(2.40533,3.0234)
- (2.41067,3.02917)(2.416,3.03486)(2.42133,3.04049)(2.42667,3.04606)
- (2.432,3.05156)(2.43733,3.057)(2.44267,3.06237)(2.448,3.06768)
- (2.45333,3.07292)(2.45867,3.07809)(2.464,3.0832)(2.46933,3.08825)
- (2.47467,3.09323)(2.48,3.09814)(2.48533,3.10299)(2.49067,3.10778)
- (2.496,3.1125)(2.50133,3.11715)(2.50667,3.12174)(2.512,3.12627)
- (2.51733,3.13073)(2.52267,3.13512)(2.528,3.13945)(2.53333,3.14372)
- (2.53867,3.14792)(2.544,3.15205)(2.54933,3.15612)(2.55467,3.16012)
- (2.56,3.16406)(2.56533,3.16794)(2.57067,3.17174)(2.576,3.17549)
- (2.58133,3.17917)(2.58667,3.18278)(2.592,3.18633)(2.59733,3.18981)
- (2.60267,3.19323)(2.608,3.19658)(2.61333,3.19987)(2.61867,3.20309)
- (2.624,3.20625)(2.62933,3.20934)(2.63467,3.21237)(2.64,3.21533)
- (2.64533,3.21823)(2.65067,3.22106)(2.656,3.22383)(2.66133,3.22653)
- (2.66667,3.22917)(2.672,3.23174)(2.67733,3.23424)(2.68267,3.23669)
- (2.688,3.23906)(2.69333,3.24137)(2.69867,3.24362)(2.704,3.2458)
- (2.70933,3.24792)(2.71467,3.24997)(2.72,3.25195)(2.72533,3.25387)
- (2.73067,3.25573)(2.736,3.25752)(2.74133,3.25924)(2.74667,3.2609)
- (2.752,3.2625)(2.75733,3.26403)(2.76267,3.26549)(2.768,3.26689)
- (2.77333,3.26823)(2.77867,3.2695)(2.784,3.2707)(2.78933,3.27184)
- (2.79467,3.27292)(2.8,3.27393)(2.80533,3.27487)(2.81067,3.27575)
- (2.816,3.27656)(2.82133,3.27731)(2.82667,3.27799)(2.832,3.27861)
- (2.83733,3.27917)(2.84267,3.27965)(2.848,3.28008)(2.85333,3.28044)
- (2.85867,3.28073)(2.864,3.28096)(2.86933,3.28112)(2.87467,3.28122)(2.88,3.28125)
-\allinethickness{0.0055348in}%
-\path(2.82295,3.27579)(2.83249,3.27231)
-\path(2.82292,3.28106)(2.84199,3.2741)
-\path(2.82289,3.28633)(2.85149,3.27589)
-\path(2.82456,3.29098)(2.861,3.27767)
-\path(2.85228,3.28612)(2.8705,3.27946)
-\path(2.87406,3.28013)(2.87481,3.28216)
-\path(2.86813,3.27902)(2.86961,3.28307)
-\path(2.86219,3.2779)(2.86442,3.28399)
-\path(2.85626,3.27678)(2.85922,3.2849)
-\path(2.85032,3.27567)(2.85403,3.28581)
-\path(2.84439,3.27455)(2.84883,3.28672)
-\path(2.83845,3.27343)(2.84364,3.28763)
-\path(2.83252,3.27232)(2.83844,3.28854)
-\path(2.82658,3.2712)(2.83325,3.28946)
-\path(2.82295,3.27639)(2.82805,3.29037)
-\allinethickness{1.2pt}%
-\path(2.82292,3.2809)(2.82299,3.27052)(2.88,3.28125)
- (2.82286,3.29128)(2.82292,3.2809)
-\put(2.86001,3.33981){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{eps}}}}}}
-\put(2.88,3.28125){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{0.4pt}%
-\color{rgb_7f7f7f}%
-\path(2.88,3.28125)(3.52,3.28125)
-\path(3.51481,3.28031)(3.51477,3.2822)
-\path(3.50962,3.27936)(3.50954,3.28315)
-\path(3.50443,3.27842)(3.50432,3.2841)
-\path(3.49924,3.27748)(3.49909,3.28505)
-\path(3.49406,3.27653)(3.49386,3.286)
-\path(3.48887,3.27559)(3.48863,3.28695)
-\path(3.48368,3.27465)(3.4834,3.2879)
-\path(3.47849,3.2737)(3.47818,3.28885)
-\path(3.4733,3.27276)(3.47295,3.2898)
-\path(3.46811,3.27182)(3.46772,3.29076)
-\path(3.48855,3.28697)(3.46292,3.28644)
-\path(3.51417,3.28231)(3.46292,3.28125)
-\path(3.49512,3.27673)(3.46292,3.27606)
-\path(3.46292,3.28125)(3.46292,3.27087)(3.52,3.28125)
- (3.46292,3.29163)(3.46292,3.28125)
-\put(3.57535,3.28125){\makebox(0,0)[l]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \begin{minipage}{0.225in}\texttt{png mng gif}\end{minipage}}}}}
-\put(3.52,3.28125){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(1.92,2.34375){\makebox(0,0)[c]{\hbox{\color{rgb_009800}\texttt{\Large elaps}}}}
-\allinethickness{1.2pt}%
-\color{rgb_ff0000}%
-\path(0.32,1.40625)(0.96,1.40625)
-\allinethickness{0.0055348in}%
-\path(0.912435,1.4149)(0.902922,1.41097)
-\path(0.921948,1.41317)(0.902922,1.40531)
-\path(0.931461,1.41144)(0.902922,1.39966)
-\path(0.940974,1.40971)(0.91102,1.39734)
-\path(0.950487,1.40798)(0.93551,1.4018)
-\path(0.902922,1.40939)(0.908111,1.39682)
-\path(0.905721,1.41612)(0.9133,1.39776)
-\path(0.911752,1.41502)(0.918489,1.3987)
-\path(0.917783,1.41393)(0.923678,1.39965)
-\path(0.923814,1.41283)(0.928867,1.40059)
-\path(0.929845,1.41173)(0.934056,1.40153)
-\path(0.935876,1.41064)(0.939244,1.40248)
-\path(0.941907,1.40954)(0.944433,1.40342)
-\path(0.947938,1.40844)(0.949622,1.40436)
-\path(0.953969,1.40735)(0.954811,1.40531)
-\allinethickness{1.2pt}%
-\path(0.902922,1.40625)(0.902922,1.39587)(0.96,1.40625)
- (0.902922,1.41663)(0.902922,1.40625)
-\put(0.32,1.4616){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{xp}, \texttt{flx}}}}}}
-\put(0.32,1.40625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(0.97999,1.46481){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{eepic}}}}}}
-\put(0.96,1.40625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(0.96,1.40625)(0.963187,1.40615)(0.966347,1.40586)
- (0.969482,1.40539)(0.972591,1.40472)(0.975676,1.40388)
- (0.978736,1.40285)(0.981772,1.40165)(0.984785,1.40028)
- (0.987774,1.39874)(0.990741,1.39703)(0.993685,1.39516)
- (0.996608,1.39313)(0.999509,1.39094)(1.00239,1.3886)
- (1.00525,1.38611)(1.00809,1.38347)(1.01091,1.38069)
- (1.01371,1.37777)(1.01649,1.37472)(1.01926,1.37153)
- (1.02201,1.36821)(1.02474,1.36476)(1.02745,1.36119)(1.03014,1.3575)
- (1.03282,1.35369)(1.03549,1.34977)(1.03814,1.34574)(1.04077,1.3416)
- (1.04339,1.33735)(1.046,1.33301)(1.04859,1.32856)(1.05117,1.32403)
- (1.05374,1.3194)(1.0563,1.31468)(1.05884,1.30988)(1.06138,1.305)
- (1.0639,1.30004)(1.06641,1.295)(1.06891,1.2899)(1.07141,1.28472)
- (1.07389,1.27948)(1.07637,1.27418)(1.07884,1.26882)(1.0813,1.2634)
- (1.08375,1.25793)(1.0862,1.25242)(1.08864,1.24685)(1.09107,1.24125)
- (1.0935,1.23561)(1.09593,1.22993)(1.09835,1.22421)(1.10076,1.21847)
- (1.10317,1.2127)(1.10558,1.20691)(1.10799,1.2011)(1.1104,1.19528)
- (1.1128,1.18944)(1.1152,1.18359)(1.1176,1.17773)(1.12,1.17188)
- (1.1224,1.16602)(1.1248,1.16016)(1.1272,1.15431)(1.1296,1.14847)
- (1.13201,1.14265)(1.13442,1.13684)(1.13683,1.13105)
- (1.13924,1.12528)(1.14165,1.11954)(1.14407,1.11382)(1.1465,1.10814)
- (1.14893,1.1025)(1.15136,1.0969)(1.1538,1.09133)(1.15625,1.08582)
- (1.1587,1.08035)(1.16116,1.07493)(1.16363,1.06957)(1.16611,1.06427)
- (1.16859,1.05903)(1.17109,1.05385)(1.17359,1.04875)(1.1761,1.04371)
- (1.17862,1.03875)(1.18116,1.03387)(1.1837,1.02907)(1.18626,1.02435)
- (1.18883,1.01972)(1.19141,1.01519)(1.194,1.01074)(1.19661,1.0064)
- (1.19923,1.00215)(1.20186,0.998013)(1.20451,0.99398)
- (1.20718,0.990058)(1.20986,0.98625)(1.21255,0.982559)
- (1.21526,0.978989)(1.21799,0.975542)(1.22074,0.972222)
- (1.22351,0.969033)(1.22629,0.965977)(1.22909,0.963057)
- (1.23191,0.960278)(1.23475,0.957642)(1.23761,0.955152)
- (1.24049,0.952812)(1.24339,0.950625)(1.24631,0.948594)
- (1.24926,0.946723)(1.25223,0.945015)(1.25522,0.943472)
- (1.25823,0.942099)(1.26126,0.940898)(1.26432,0.939874)
- (1.26741,0.939028)(1.27052,0.938364)(1.27365,0.937886)
- (1.27681,0.937597)(1.28,0.9375)
-\path(1.28,0.9375)(1.6,0.9375)
-\allinethickness{0.0055348in}%
-\path(1.54292,0.934917)(1.54926,0.928275)
-\path(1.54292,0.942712)(1.55561,0.929428)
-\path(1.54596,0.947325)(1.56195,0.930581)
-\path(1.55497,0.945688)(1.56829,0.931735)
-\path(1.56397,0.94405)(1.57463,0.932888)
-\path(1.57298,0.942413)(1.58097,0.934041)
-\path(1.58199,0.940775)(1.58732,0.935194)
-\path(1.59099,0.939138)(1.59366,0.936347)
-\path(1.59067,0.935804)(1.59366,0.938653)
-\path(1.58135,0.934109)(1.58732,0.939806)
-\path(1.57202,0.932413)(1.58097,0.940959)
-\path(1.5627,0.930718)(1.57463,0.942112)
-\path(1.55337,0.929022)(1.56829,0.943265)
-\path(1.54405,0.927327)(1.56195,0.944419)
-\path(1.54292,0.933461)(1.55561,0.945572)
-\path(1.54292,0.940669)(1.54926,0.946725)
-\allinethickness{1.2pt}%
-\path(1.54292,0.9375)(1.54292,0.927122)(1.6,0.9375)
- (1.54292,0.947878)(1.54292,0.9375)
-\path(1.6,0.9375)(2.24,0.9375)
-\allinethickness{0.0055348in}%
-\path(2.23385,0.936381)(2.23481,0.938443)
-\path(2.22769,0.935262)(2.22962,0.939387)
-\path(2.22154,0.934143)(2.22443,0.94033)
-\path(2.21538,0.933024)(2.21924,0.941274)
-\path(2.20923,0.931905)(2.21406,0.942217)
-\path(2.20308,0.930787)(2.20887,0.943161)
-\path(2.19692,0.929668)(2.20368,0.944104)
-\path(2.19077,0.928549)(2.19849,0.945047)
-\path(2.18461,0.92743)(2.1933,0.945991)
-\path(2.18292,0.935846)(2.18811,0.946934)
-\path(2.23185,0.936017)(2.22148,0.940867)
-\path(2.22369,0.934535)(2.20297,0.944233)
-\path(2.21554,0.933052)(2.18445,0.9476)
-\path(2.20738,0.93157)(2.18292,0.943017)
-\path(2.19923,0.930087)(2.18292,0.937719)
-\path(2.19108,0.928605)(2.18292,0.93242)
-\allinethickness{1.2pt}%
-\path(2.18292,0.9375)(2.18292,0.927122)(2.24,0.9375)
- (2.18292,0.947878)(2.18292,0.9375)
-\put(1.6,0.992848){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{dvi}}}}}}
-\put(1.6,0.9375){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(2.21793,0.969823){\makebox(0,0)[br]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{ps}}}}}}
-\put(2.24,0.9375){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{0.4pt}%
-\color{rgb_7f7f7f}%
-\path(0.96,0.46875)(0.963187,0.468847)(0.966347,0.469136)
- (0.969482,0.469614)(0.972591,0.470278)(0.975676,0.471124)
- (0.978736,0.472148)(0.981772,0.473349)(0.984785,0.474722)
- (0.987774,0.476265)(0.990741,0.477973)(0.993685,0.479844)
- (0.996608,0.481875)(0.999509,0.484062)(1.00239,0.486402)
- (1.00525,0.488892)(1.00809,0.491528)(1.01091,0.494307)
- (1.01371,0.497227)(1.01649,0.500283)(1.01926,0.503472)
- (1.02201,0.506792)(1.02474,0.510239)(1.02745,0.513809)
- (1.03014,0.5175)(1.03282,0.521308)(1.03549,0.52523)
- (1.03814,0.529263)(1.04077,0.533403)(1.04339,0.537647)
- (1.046,0.541992)(1.04859,0.546435)(1.05117,0.550972)
- (1.05374,0.555601)(1.0563,0.560317)(1.05884,0.565118)(1.06138,0.57)
- (1.0639,0.57496)(1.06641,0.579996)(1.06891,0.585103)
- (1.07141,0.590278)(1.07389,0.595518)(1.07637,0.60082)
- (1.07884,0.606181)(1.0813,0.611597)(1.08375,0.617065)
- (1.0862,0.622582)(1.08864,0.628145)(1.09107,0.63375)
- (1.0935,0.639394)(1.09593,0.645074)(1.09835,0.650786)
- (1.10076,0.656528)(1.10317,0.662295)(1.10558,0.668086)
- (1.10799,0.673896)(1.1104,0.679722)(1.1128,0.685562)
- (1.1152,0.691411)(1.1176,0.697266)(1.12,0.703125)(1.1224,0.708984)
- (1.1248,0.714839)(1.1272,0.720688)(1.1296,0.726528)
- (1.13201,0.732354)(1.13442,0.738164)(1.13683,0.743955)
- (1.13924,0.749722)(1.14165,0.755464)(1.14407,0.761176)
- (1.1465,0.766856)(1.14893,0.7725)(1.15136,0.778105)
- (1.1538,0.783668)(1.15625,0.789185)(1.1587,0.794653)
- (1.16116,0.800069)(1.16363,0.80543)(1.16611,0.810732)
- (1.16859,0.815972)(1.17109,0.821147)(1.17359,0.826254)
- (1.1761,0.83129)(1.17862,0.83625)(1.18116,0.841132)
- (1.1837,0.845933)(1.18626,0.850649)(1.18883,0.855278)
- (1.19141,0.859815)(1.194,0.864258)(1.19661,0.868603)
- (1.19923,0.872847)(1.20186,0.876987)(1.20451,0.88102)
- (1.20718,0.884942)(1.20986,0.88875)(1.21255,0.892441)
- (1.21526,0.896011)(1.21799,0.899458)(1.22074,0.902778)
- (1.22351,0.905967)(1.22629,0.909023)(1.22909,0.911943)
- (1.23191,0.914722)(1.23475,0.917358)(1.23761,0.919848)
- (1.24049,0.922188)(1.24339,0.924375)(1.24631,0.926406)
- (1.24926,0.928277)(1.25223,0.929985)(1.25522,0.931528)
- (1.25823,0.932901)(1.26126,0.934102)(1.26432,0.935126)
- (1.26741,0.935972)(1.27052,0.936636)(1.27365,0.937114)
- (1.27681,0.937403)(1.28,0.9375)
-\put(0.97999,0.410187){\makebox(0,0)[t]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{tex}}}}}
-\put(0.96,0.46875){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.24,0.9375)(2.24533,0.92972)(2.25067,0.922005)
- (2.256,0.914355)(2.26133,0.906771)(2.26667,0.899251)
- (2.272,0.891797)(2.27733,0.884408)(2.28267,0.877083)
- (2.288,0.869824)(2.29333,0.86263)(2.29867,0.855501)(2.304,0.848438)
- (2.30933,0.841439)(2.31467,0.834505)(2.32,0.827637)
- (2.32533,0.820833)(2.33067,0.814095)(2.336,0.807422)
- (2.34133,0.800814)(2.34667,0.794271)(2.352,0.787793)
- (2.35733,0.78138)(2.36267,0.775033)(2.368,0.76875)
- (2.37333,0.762533)(2.37867,0.75638)(2.384,0.750293)
- (2.38933,0.744271)(2.39467,0.738314)(2.4,0.732422)
- (2.40533,0.726595)(2.41067,0.720833)(2.416,0.715137)
- (2.42133,0.709505)(2.42667,0.703939)(2.432,0.698438)
- (2.43733,0.693001)(2.44267,0.68763)(2.448,0.682324)
- (2.45333,0.677083)(2.45867,0.671908)(2.464,0.666797)
- (2.46933,0.661751)(2.47467,0.656771)(2.48,0.651855)
- (2.48533,0.647005)(2.49067,0.64222)(2.496,0.6375)(2.50133,0.632845)
- (2.50667,0.628255)(2.512,0.62373)(2.51733,0.619271)
- (2.52267,0.614876)(2.528,0.610547)(2.53333,0.606283)
- (2.53867,0.602083)(2.544,0.597949)(2.54933,0.59388)
- (2.55467,0.589876)(2.56,0.585938)(2.56533,0.582064)
- (2.57067,0.578255)(2.576,0.574512)(2.58133,0.570833)
- (2.58667,0.56722)(2.592,0.563672)(2.59733,0.560189)
- (2.60267,0.556771)(2.608,0.553418)(2.61333,0.55013)
- (2.61867,0.546908)(2.624,0.54375)(2.62933,0.540658)
- (2.63467,0.53763)(2.64,0.534668)(2.64533,0.531771)
- (2.65067,0.528939)(2.656,0.526172)(2.66133,0.52347)
- (2.66667,0.520833)(2.672,0.518262)(2.67733,0.515755)
- (2.68267,0.513314)(2.688,0.510937)(2.69333,0.508626)
- (2.69867,0.50638)(2.704,0.504199)(2.70933,0.502083)
- (2.71467,0.500033)(2.72,0.498047)(2.72533,0.496126)
- (2.73067,0.494271)(2.736,0.49248)(2.74133,0.490755)
- (2.74667,0.489095)(2.752,0.4875)(2.75733,0.48597)(2.76267,0.484505)
- (2.768,0.483105)(2.77333,0.481771)(2.77867,0.480501)
- (2.784,0.479297)(2.78933,0.478158)(2.79467,0.477083)(2.8,0.476074)
- (2.80533,0.47513)(2.81067,0.474251)(2.816,0.473437)
- (2.82133,0.472689)(2.82667,0.472005)(2.832,0.471387)
- (2.83733,0.470833)(2.84267,0.470345)(2.848,0.469922)
- (2.85333,0.469564)(2.85867,0.469271)(2.864,0.469043)
- (2.86933,0.46888)(2.87467,0.468783)(2.88,0.46875)
-\path(2.86583,0.471416)(2.82296,0.474287)
-\path(2.86567,0.466235)(2.82292,0.469098)
-\path(2.84427,0.462478)(2.82289,0.46391)
-\path(2.82817,0.478501)(2.82689,0.459429)
-\path(2.83335,0.477526)(2.8322,0.460361)
-\path(2.83854,0.476551)(2.83751,0.461293)
-\path(2.84372,0.475576)(2.84282,0.462225)
-\path(2.8489,0.474601)(2.84814,0.463157)
-\path(2.85408,0.473625)(2.85345,0.464089)
-\path(2.85927,0.47265)(2.85876,0.465021)
-\path(2.86445,0.471675)(2.86407,0.465954)
-\path(2.86963,0.4707)(2.86938,0.466886)
-\path(2.87482,0.469725)(2.87469,0.467818)
-\path(2.82292,0.469098)(2.82286,0.458721)(2.88,0.46875)
- (2.82299,0.479476)(2.82292,0.469098)
-\put(2.93535,0.46875){\makebox(0,0)[l]{\hbox{\color{rgb_7f7f7f}\texttt{\footnotesize \texttt{pdf}}}}}
-\put(2.88,0.46875){\color{rgb_7f7f7f}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\allinethickness{1.2pt}%
-\color{rgb_ff0000}%
-\path(2.24,0.9375)(2.24533,0.94528)(2.25067,0.952995)
- (2.256,0.960645)(2.26133,0.968229)(2.26667,0.975749)
- (2.272,0.983203)(2.27733,0.990592)(2.28267,0.997917)(2.288,1.00518)
- (2.29333,1.01237)(2.29867,1.0195)(2.304,1.02656)(2.30933,1.03356)
- (2.31467,1.04049)(2.32,1.04736)(2.32533,1.05417)(2.33067,1.0609)
- (2.336,1.06758)(2.34133,1.07419)(2.34667,1.08073)(2.352,1.08721)
- (2.35733,1.09362)(2.36267,1.09997)(2.368,1.10625)(2.37333,1.11247)
- (2.37867,1.11862)(2.384,1.12471)(2.38933,1.13073)(2.39467,1.13669)
- (2.4,1.14258)(2.40533,1.1484)(2.41067,1.15417)(2.416,1.15986)
- (2.42133,1.16549)(2.42667,1.17106)(2.432,1.17656)(2.43733,1.182)
- (2.44267,1.18737)(2.448,1.19268)(2.45333,1.19792)(2.45867,1.20309)
- (2.464,1.2082)(2.46933,1.21325)(2.47467,1.21823)(2.48,1.22314)
- (2.48533,1.22799)(2.49067,1.23278)(2.496,1.2375)(2.50133,1.24215)
- (2.50667,1.24674)(2.512,1.25127)(2.51733,1.25573)(2.52267,1.26012)
- (2.528,1.26445)(2.53333,1.26872)(2.53867,1.27292)(2.544,1.27705)
- (2.54933,1.28112)(2.55467,1.28512)(2.56,1.28906)(2.56533,1.29294)
- (2.57067,1.29674)(2.576,1.30049)(2.58133,1.30417)(2.58667,1.30778)
- (2.592,1.31133)(2.59733,1.31481)(2.60267,1.31823)(2.608,1.32158)
- (2.61333,1.32487)(2.61867,1.32809)(2.624,1.33125)(2.62933,1.33434)
- (2.63467,1.33737)(2.64,1.34033)(2.64533,1.34323)(2.65067,1.34606)
- (2.656,1.34883)(2.66133,1.35153)(2.66667,1.35417)(2.672,1.35674)
- (2.67733,1.35924)(2.68267,1.36169)(2.688,1.36406)(2.69333,1.36637)
- (2.69867,1.36862)(2.704,1.3708)(2.70933,1.37292)(2.71467,1.37497)
- (2.72,1.37695)(2.72533,1.37887)(2.73067,1.38073)(2.736,1.38252)
- (2.74133,1.38424)(2.74667,1.3859)(2.752,1.3875)(2.75733,1.38903)
- (2.76267,1.39049)(2.768,1.39189)(2.77333,1.39323)(2.77867,1.3945)
- (2.784,1.3957)(2.78933,1.39684)(2.79467,1.39792)(2.8,1.39893)
- (2.80533,1.39987)(2.81067,1.40075)(2.816,1.40156)(2.82133,1.40231)
- (2.82667,1.40299)(2.832,1.40361)(2.83733,1.40417)(2.84267,1.40465)
- (2.848,1.40508)(2.85333,1.40544)(2.85867,1.40573)(2.864,1.40596)
- (2.86933,1.40612)(2.87467,1.40622)(2.88,1.40625)
-\allinethickness{0.0055348in}%
-\path(2.82288,1.41337)(2.82817,1.3965)
-\path(2.82772,1.41543)(2.83335,1.39747)
-\path(2.83353,1.41441)(2.83854,1.39845)
-\path(2.83934,1.41339)(2.84372,1.39942)
-\path(2.84515,1.41237)(2.8489,1.4004)
-\path(2.85096,1.41135)(2.85408,1.40137)
-\path(2.85677,1.41033)(2.85927,1.40235)
-\path(2.86257,1.40931)(2.86445,1.40332)
-\path(2.86838,1.40829)(2.86963,1.4043)
-\path(2.87419,1.40727)(2.87482,1.40527)
-\path(2.83547,1.39787)(2.86857,1.40826)
-\path(2.82296,1.39954)(2.85714,1.41026)
-\path(2.82293,1.40512)(2.84572,1.41227)
-\path(2.82289,1.4107)(2.83429,1.41427)
-\allinethickness{1.2pt}%
-\path(2.82292,1.4059)(2.82299,1.39552)(2.88,1.40625)
- (2.82286,1.41628)(2.82292,1.4059)
-\put(2.86001,1.46481){\makebox(0,0)[b]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \texttt{eps}}}}}}
-\put(2.88,1.40625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\path(2.88,1.40625)(3.52,1.40625)
-\allinethickness{0.0055348in}%
-\path(3.50867,1.40419)(3.51287,1.40755)
-\path(3.49734,1.40213)(3.50573,1.40884)
-\path(3.48601,1.40007)(3.4986,1.41014)
-\path(3.47467,1.39801)(3.49146,1.41144)
-\path(3.46334,1.39595)(3.48433,1.41274)
-\path(3.46292,1.40262)(3.47719,1.41403)
-\path(3.46292,1.40962)(3.47006,1.41533)
-\path(3.51429,1.40521)(3.51235,1.40764)
-\path(3.50858,1.40417)(3.5047,1.40903)
-\path(3.50288,1.40314)(3.49705,1.41042)
-\path(3.49717,1.4021)(3.4894,1.41181)
-\path(3.49146,1.40106)(3.48175,1.41321)
-\path(3.48575,1.40002)(3.47409,1.4146)
-\path(3.48005,1.39899)(3.46644,1.41599)
-\path(3.47434,1.39795)(3.46292,1.41222)
-\path(3.46863,1.39691)(3.46292,1.40404)
-\allinethickness{1.2pt}%
-\path(3.46292,1.40625)(3.46292,1.39587)(3.52,1.40625)
- (3.46292,1.41663)(3.46292,1.40625)
-\put(3.57535,1.40625){\makebox(0,0)[l]{\fboxrule0.1pt%
-\fcolorbox{rgb_ff0000}{cmy_000019}{\hbox{\color{rgb_0000ff}\texttt{\footnotesize \begin{minipage}{0.225in}\texttt{png mng gif}\end{minipage}}}}}}
-\put(3.52,1.40625){\color{rgb_0000ff}$\allinethickness{0.0207555in}\circle{0.0207555}$}%
-\put(1.92,0.46875){\makebox(0,0)[c]{\hbox{\color{rgb_009800}\texttt{\Large flix}}}}
-\end{picture}%
diff --git a/graphics/epix/doc/ePiX.xp b/graphics/epix/doc/ePiX.xp
deleted file mode 100644
index c39e6b2ac0..0000000000
--- a/graphics/epix/doc/ePiX.xp
+++ /dev/null
@@ -1,156 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-void emph(const std::string& prog)
-{
- if (prog == "all")
- black();
- else
- {
- bbold(Red());
- label_color(Blue());
- label_mask(Yellow(0.1));
- label_border(Red(), "0.1pt");
- }
-}
-
-void restore(const std::string& prog)
-{
- if (prog == "all")
- emph(prog);
-
- else
- {
- plain();
- black(0.5);
- label_mask(Neutral());
- }
-}
-
-void diagram(const std::string& prog)
-{
- font_size("footnotesize");
- arrow_width(1.5);
- restore(prog);
-
- if (prog != "laps")
- emph(prog);
-
- arrow(P(0,1), P(1,1));
-
- dot(P(0,1), P(0,4), "\\texttt{xp}, \\texttt{flx}", t);
- dot(P(1,1), P(2,4), "\\texttt{eepic}", t);
- restore(prog);
-
- if (prog != "epix")
- emph(prog);
-
- spline(P(1,1), P(1.2,1), P(1.3,0.5), P(1.5,0.5));
- arrow(P(1.5,0.5), P(2,0.5));
- arrow(P(2,0.5), P(3,0.5));
-
- dot(P(2,0.5), P(0,4), "\\texttt{dvi}", t);
- dot(P(3,0.5), P(-2,2), "\\texttt{ps}", tl);
- restore(prog);
-
- if(prog == "laps")
- emph(prog);
-
- spline(P(1,0), P(1.2,0), P(1.3,0.5), P(1.5,0.5));
-
- dot(P(1,0), P(2,-4), "\\texttt{tex}", b);
-
- if (prog == "elaps") // and laps
- emph(prog);
-
- arrow(P(3,0.5), P(3.5,0), P(4,0));
-
- dot(P(4,0), P(4,0), "\\texttt{pdf}", r);
- restore(prog);
-
- if (prog == "elaps" || prog == "flix")
- emph(prog);
-
- arrow(P(3,0.5), P(3.5,1), P(4,1));
-
- dot(P(4,1), P(-2,4), "\\texttt{eps}", t);
- restore(prog);
-
- if(prog == "flix")
- emph(prog);
-
- arrow(P(4,1), P(5,1));
-
- dot(P(5,1), P(4,0),
- "\\begin{minipage}{0.225in}\\texttt{png mng gif}\\end{minipage}", r);
- restore(prog);
-
- if (prog != "all")
- {
- font_size("Large");
- font_face("tt");
- label_color(Green(0.6));
- label(P(2.5,0), prog);
- }
-
-}
-
-int main()
-{
-#ifdef SHOW_ALL
- picture(P(-0.5,0), P(5.75,10), "4 x 7.5 in");
-#else
- picture(P(-0.5,2), P(5.75,10), "4 x 7.5 in");
-#endif
-
- begin();
- // border();
-
- screen laps(P(0,0), P(5,1));
- activate(laps);
-
- diagram("laps");
- laps.v_scale(0.5, P(0,0.5));
- inset(laps, P(0,8), P(5,10));
- deactivate(laps);
-
-
- screen epix(P(0,0), P(5,1));
- activate(epix);
-
- diagram("epix");
- epix.v_scale(0.5, P(0,0.5));
- inset(epix, P(0,6), P(5,8));
- deactivate(epix);
-
-
- screen elaps(P(0,0), P(5,1));
- activate(elaps);
-
- diagram("elaps");
- elaps.v_scale(0.5, P(0,0.5));
- inset(elaps, P(0,4), P(5,6));
- deactivate(elaps);
-
-
- screen flix(P(0,0), P(5,1));
- activate(flix);
-
- diagram("flix");
- flix.v_scale(0.5, P(0,0.5));
- inset(flix, P(0,2), P(5,4));
- deactivate(flix);
-
-#ifdef SHOW_ALL
- screen all(P(0,0), P(5,1));
- activate(all);
-
- diagram("all");
- all.v_scale(0.5, P(0,0.5));
- inset(all, P(0,0), P(5,2));
- deactivate(all);
-#endif
-
- end();
-}
diff --git a/graphics/epix/doc/epix.info b/graphics/epix/doc/epix.info
deleted file mode 100644
index 3b30c42c39..0000000000
--- a/graphics/epix/doc/epix.info
+++ /dev/null
@@ -1,4696 +0,0 @@
-This is epix.info, produced by makeinfo version 4.9 from epix.texi.
-
- This is the manual for ePiX, Version 1.2 Copyright (C) 2001, 2002,
-2003, 2004, 2005, 2006, 2007 Andrew D. Hwang
-
-
-File: epix.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
-
-ePiX manual
-***********
-
-This is the manual for ePiX, Version 1.2 Copyright (C) 2001, 2002,
-2003, 2004, 2005, 2006, 2007 Andrew D. Hwang
-
-* Menu:
-
-* Introduction ::
-* Getting Started ::
-* Reference Manual ::
-* Advanced Topics ::
-* Software Freedom::
-* Acknowledgments::
-* Function Index::
-* Concept Index::
-
- --- The Detailed Node Listing ---
-
-Introduction
-
-* Changes in Version 1.2::
-* Software Dependencies::
-* Installation::
-
-Getting Started
-
-* Running `ePiX'::
-* The Drawing Model::
-* Tutorial::
-* `C++' Basics::
-* Animation::
-* Layout Tricks::
-
-Reference Manual
-
-* File Structure::
-* Picture Size and Aspect Ratio::
-* Color::
-* Scene Attributes::
-* Drawing Attributes::
-* Creating and Drawing Objects::
-* More About `C++'::
-* Attribute Quick Reference::
-
-Advanced Topics
-
-* Hidden Object Removal::
-* Extensions::
-* Programmer's Guide::
-
-
-File: epix.info, Node: Introduction, Next: Getting Started, Prev: Top, Up: Top
-
-1 Introduction
-**************
-
-`ePiX', a collection of batch utilities, creates mathematically
-accurate figures, plots, and animations containing `LaTeX' typography.
-The input syntax is easy to learn, and the user interface resembles
-that of `LaTeX' itself: You prepare a scene description in a text
-editor, then "compile" the input file into a picture. `LaTeX'- and
-web-compatible output types include a `LaTeX' picture-like environment
-written with `PSTricks', `tikz', or `eepic' macros; vector images
-(`eps', `ps', and `pdf'); and bitmapped images and movies (`png',
-`mng', and `gif').
-
- `ePiX''s strengths include:
-
- * Quality of output: `ePiX' creates accurate, publication-quality
- figures whose appearance matches that of `LaTeX'. Typography may
- be put in a figure as easily as in an ordinary `LaTeX' document.
-
- * Ease of use: Figure objects and their attributes are specified
- by simple, descriptive commands.
-
- * Flexibility: Objects are described by attributes and Cartesian
- location; as in `LaTeX', printed appearance is determined when the
- figure is compiled. A well-designed figure can be altered
- dramatically, yet precisely, with command-line switches or minor
- changes to the input file.
-
- * Power and extendibility: `ePiX' inherits the power of `C++' as a
- programming language; variables, data structures, loops, and
- recursion can be used to draw complicated plots and figures with
- just a few lines of input. External code can be incorporated in a
- figure with a command line option or by using a Makefile.
-
- * Economy of storage and transmission: For a document containing
- many figures, a compressed tar file of the `LaTeX' sources and
- `ePiX' files is typically a few percent the size of the compressed
- PostScript file.
-
- * License: `ePiX' is _free software_. You are granted the right to
- use the program for whatever purpose, and to inspect, modify,
- and re-distribute the source code, so long as you do not
- restrict the rights of others to do the same. In short, the
- license is similar to the terms under which theorems are
- published.
-
-
- `ePiX' facilitates logical, as opposed to visual, structuring of
-mathematical figures, analogous to the relationship between `LaTeX' and
-a word processor. A few stylistic defaults streamline the creation of
-simple figures, but there are few internal restrictions on the contents
-or appearance of a figure; aesthetic and practical decisions are left
-to you.
-
- If you are a:
-
- * Potential user, you may wish to skip immediately to "Software
- Dependencies" before investing additional time.
-
- * New user, proceed from here until you have enough understanding
- to run the software, then experiment with the samples files while
- reading Chapter *Note chapter:started::, , or return to the
- manual as needed.
-
- * More advanced user, browse at will, probably starting with
- Chapter *Note chapter:ref-man::, .
-
-
- This manual is relatively conversational, and occasionally redundant,
-especially between portions meant for readers at different levels of
-familiarity. Throughout, you are assumed to be familiar with `LaTeX'
-and basic linear algebra: the description of points, vectors, lines,
-and planes in three-dimensional space. Other material, such as `C++'
-syntax, is introduced as needed.
-
-* Menu:
-
-* Changes in Version 1.2::
-* Software Dependencies::
-* Installation::
-
-
-File: epix.info, Node: Changes in Version 1.2, Next: Software Dependencies, Prev: Introduction, Up: Introduction
-
-1.1 Changes in Version 1.2
-==========================
-
-`ePiX' 1.2.x has been written almost entirely from scratch. The
-conceptual model is unchanged, but there are a few changes of syntax.
-If you're new to `ePiX', please skip straight to Section *Note
-section:software_deps::, .
-
-
-
-Except as noted below, `ePiX' 1.0 files will compile under Version 1.2.
-Generally, global variables have been deprecated or removed, and should
-be replaced by function calls in new files. The following changes are
-either required, or else strongly recommended (and may become
-mandatory).
-
- * (Mandatory) The global variable tix in a `flix' file must be
- manipulated through the function tix().
-
- * (Mandatory) The command `use_pstricks()' is obsolete. PSTricks
- output is obtained systematically as an output format.
-
- * (Mandatory) Deprecated "aliases" no longer exist: `triple' (for
- the `P' class), `D' (for `Deriv'), and `I' (for `Integral').
- Lowercase trig function names conflicted with the standard
- namespace and have been removed.
-
- * (Mandatory) Geometric object commands (`circle', `plane',
- `segment', and `sphere'), which formerly created class objects,
- now perform drawing just as `ellipse', `line', `rect', etc., do.
- The classes are available with capitalized names (`Circle',
- etc.).
-
- * (Mandatory) Camera orientation is controlled with functions
- named `tilt', `pan', and `roll'; each rotates the camera about
- an axis through the viewpoint, not through the target.
-
- * (Recommended) The global size variables x_min, x_max, y_min,
- y_max, x_size, and y_size should be replaced by the function
- calls xmin(), etc. (No underscores.)
-
- * (Suggested) The camera may be accessed through the function
- `cam()'.
-
- * (Suggested) The size and bounding box are given in one command,
- such as `picture(P(-1,0), P(1,1), "4x3in")'. The old syntax will
- be retained indefinitely.
-
-
-
-
- * Output is cleanly separated from the internal representation.
- Figures may be written with a choice of macros--`PSTricks',
- `tikz', and `eepic' at present--and new output types are easily
- coded so long as the format supports arbitrary line segments,
- color, and the ability to place a `LaTeX' box at a specified
- location.
-
- * Colors are a manipulable data type, available in RGB, CMY, CMYK,
- and Gray models. `xcolor'-style operations, such as color model
- conversion, blending, superposition, and inversion are provided.
-
- The camera has a filter which affects the colors of all scene
- elements. Filters performing CMYK separation are provided.
-
- * Color filling is controlled with declarations, similarly to line
- colors in `ePiX' 1.0. Arrows and markers of type spot, dot, ddot,
- and circ are now colored like other markers. Parametric surfaces
- may be color-shaded.
-
- If a figure contains many shaded elements, a color-capable output
- format (e.g.\ `PSTricks' or `tikz') should be used for
- efficiency. Filled regions are implemented as fine hatching in
- `eepic'.
-
- * An `axis' class provides coordinate axes with labels in a
- variety of styles: decimals or scientific notation of specified
- precision, fractions, trig fractions, logarithmic labels in
- arbitrary (integer) base, and user-supplied styles.
-
- * `ePiX' 1.2.x performs page layout. Sub-figures may be manipulated
- flexibly. The sample files give several applications.
-
- * Non-member intersection operators for circles, planes, spheres,
- and segments are provided. A "non-generic" intersection does not
- throw an exception, but instead returns an undrawable "malformed"
- object.
-
-
-
-File: epix.info, Node: Software Dependencies, Next: Installation, Prev: Changes in Version 1.2, Up: Introduction
-
-1.2 Software Dependencies
-=========================
-
-If you run GNU/Linux, a BSD, or Solaris, you probably have (and can
-surely install) all the external software needed to use `ePiX'. On Mac
-OS X, you will need the Apple developer tools and an X server (XCode
-and XDarwin on the Tiger disks), and the free `fink' package manager to
-build a GNU environment. For Windows, you'll need to install Cygwin
-and several packages. Detailed instructions are given below.
-
- "Under the hood", an input file is successively converted to a
-`LaTeX' picture; `dvi'; PostScript, `pdf' or `eps'; and if desired, to
-a bitmapped image or movie. Four shell scripts--`epix', `laps',
-`elaps', and `flix'--automate the various file format conversions.
-
- `ePiX' consists of a `C++' library, header, and shell scripts, and
-requires GNU `bash' and a compiler _for normal use_. For complete
-functionality, you need `g++' (Version 3.2 or later), `bash', a text
-editor (`ePiX' works particularly well with `emacs'), a `LaTeX'
-distribution, `Ghostscript', `gv' (or your favorite PS/PDF previewer),
-and `ImageMagick'. GNU `grep' and `sed' are good to have. You may need
-additional "developer packages" (`binutils', `make') in order to build
-`ePiX'. The more up to date your software is, the better your
-experience is likely to be, but bleeding edge versions are not
-necessary, or even always desirable.
-
- Aside from their reliance on specific programs, `ePiX''s shell
-scripts are written using Unix-style pathnames. Thus, the most
-straightforward way to use `ePiX' is to install a GNU environment.
-
- Jay Belanger's `emacs' mode allows you to write, compile, and view
-`ePiX' figures without leaving `emacs'. If you use another editor,
-you'll want to create template source files so you don't have to type
-boilerplate code each time you write a new figure.
-
-
-
-Cygwin can be used to run `ePiX' under Windows. Download `setup.exe'
-from `http://www.cygwin.com', then install the packages you need. The
-following are recommended, and sufficient for the actions described in
-this manual.
-
-(Archive) bzip2, tar
-(Devel) binutils, coreutils, gcc, gcc-g++, make, sed
-(Editors) emacs, emacs-X11, vim
-(Graphics) ImageMagick, ghostscript-base, ghostscript-x11, gv
-(Publishing) tetex (all)
-(Shells) bash, bash-completion
-(X11) X-start-menu-icons, X-startup-scripts,
- XFree86-lib-compat, xorg-x11-fscl, xorg-x11-fsrv
-
-
-
-File: epix.info, Node: Installation, Prev: Software Dependencies, Up: Introduction
-
-1.3 Installation
-================
-
-`ePiX' is distributed over the World-Wide Web as source code. Packages
-may be found at `http://mathcs.holycross.edu/~ahwang/epix/ePiX.html'
-The latest stable release is also on the CTAN mirrors, in the
-`graphics' directory. (Some users of Red Hat have reported file
-permission problems when unpacking the CTAN tarballs. If you encounter
-this difficulty, please try downloading the sources from the project
-main page.) Unpack the compressed tar file with the appropriate
-command:
-
- tar -zxvf epix-x.y.z.tar.gz
- tar -jxvf epix-x.y.z.tar.bz2
- (`x.y.z' is the version number) or, if your `tar' doesn't do
-decompression,
-
- gunzip -c epix-x.y.z.tar.gz | tar -xvf -
- bzcat epix-x.y.z.tar.bz2 | tar -xvf -
- `cd' to the source directory, `epix-x.y.z'. The `INSTALL' file
-contains detailed installation instructions. If you're impatient, the
-short of it is `./configure [--options]; make; make install'. Run
-`./configure --help' for a list of options.
-
- By default, `ePiX' installs in subdirectories of `/usr/local'; if
-you want to install elsewhere, supply `./configure' with the
-appropriate `--prefix'. You may also want to consult `POST-INSTALL' for
-information on setting your `PATH' variable so your shell can find
-`ePiX'. The manual and sample files are in `/usr/local/share/doc/epix'.
-
-
-
-There are two mailing lists, one for user questions, one for
-development discussion. Please visit
-`http://savannah.nongnu.org/mail/?group=epix' to subscribe.
-
-
-File: epix.info, Node: Getting Started, Next: Reference Manual, Prev: Introduction, Up: Top
-
-2 Getting Started
-*****************
-
-This chapter describes the basics of creating figures in `ePiX' for
-readers familiar with `LaTeX' but completely new to `C++'. No detailed
-knowledge of `C++' is needed to use `ePiX', only a bit of grammar that
-is easily absorbed by example.
-
- Section *Note section:running::, describes the commands (shell
-scripts) comprising `ePiX', and explains how to set up a graphical
-environment using standard *nix programs. Section *Note
-section:overview::, briefly describes figure creation. Section *Note
-section:tutorial::, presents a few files side-by-side with their
-output, and should be read at a computer so you can run the exercises.
-
-* Menu:
-
-* Running `ePiX'::
-* The Drawing Model::
-* Tutorial::
-* `C++' Basics::
-* Animation::
-* Layout Tricks::
-
-
-File: epix.info, Node: Running `ePiX', Next: The Drawing Model, Prev: Getting Started, Up: Getting Started
-
-2.1 Running `ePiX'
-==================
-
-An "input file" is a human-written figure specification containing
-`ePiX' commands. An "output file" is machine-created, and is included
-directly into a `LaTeX' document with the appropriate packages.
-
- Conversion ("compiling" a figure) is accomplished with four shell
-scripts, `laps', `epix', `elaps', and `flix'. Each script has a
-preferred extension for its input files, and is invoked with a command
-of the form
-
- <script> [options] <input file(s)>
- Often, no options are necessary. `<script> --help' describes
-`<script>''s options.
-
- By default, output file names are constructed by replacing the input
-extension with the (preferred) output extension. For brevity,
-extensions may be omitted. If the script has doubts about your intent,
-it proceeds with default behavior and prints a warning message.
-
- The author is a great fan of <TAB> completion, under which a shell,
-based on what has been typed so far, automatically fills in a command
-when the <TAB> key is pressed. `ePiX' comes with code snippets that
-complete intelligently when the first part of a command is one of the
-shell scripts. For example, if command completion is active, typing
-`epix' <TAB> prints only names of `epix' input files. To use this
-feature, you must install Ian MacDonald's `bash completion' package.
-The `INSTALL' and `POST_INSTALL' files contain details.
-
-
-
-`laps' performs `LaTeX' to PostScript/PDF conversion, and is
-independent of the rest of `ePiX'. By default, `laps' invokes `LaTeX'
-and `dvips'. The option `--pdf' creates a PDF file by post-processing
-the PostScript with `ps2pdf'. Other `TeX'-family processors
-(`pslatex', `pdftex', etc.) may be used instead of `LaTeX' by invoking
-`laps' with an appropriate option.
-
-
-
-`epix' compiles an input file into a `LaTeX' picture. The input file
-should have extension `xp' (for eXtended Picture). Jay Belanger's
-`emacs' mode is Highly Recommended; the installation procedure can be
-found in the `POST_INSTALL' file. When this mode is active, `emacs'
-automatically inserts a preamble template when a new `xp' file is
-created. In addition, you can peruse `ePiX''s info file, or format,
-compile, and preview files, all from within `emacs'.
-
- Output files from the script `epix' have extension `eepic', after
-Conrad Kwok's enhancements to the `LaTeX' picture environment. In
-Version 1.2, however, an output file need not contain `eepic' macros at
-all.
-
- An output file is `input' directly into a `LaTeX' document whose
-preamble contains appropriate `usepackage' lines. Rotated text
-requires the `rotating' package.
-
-
-
-`elaps' creates stand-alone vector images (`eps' or `pdf') from `epix'
-input files or `eepic' figures, even those not produced with `epix'.
-`elaps' automatically loads the `LaTeX' packages needed for features
-described in this manual. Additional `LaTeX' packages and `dvips'
-options may be specified on the command line.
-
-
-
-`flix' creates bitmapped images and movies, Section *Note
-section:animation::, . Input files should have extension `flx', and
-must contain a valid `epix' header as well as additional code. Jay
-Belanger's `emacs' mode facilitates creation of `flix' files.
-
-
-File: epix.info, Node: The Drawing Model, Next: Tutorial, Prev: Running `ePiX', Up: Getting Started
-
-2.2 The Drawing Model
-=====================
-
-To draw a figure manually, you select a sheet of paper of appropriate
-size and add paths, markers, and labels. These scene elements have
-attributes (line color, line width, fill color, font size, etc.)
-affecting their appearance.
-
- `ePiX''s drawing model behaves similarly. A `picture' command sets
-the _canvas_ (or logical drawing area, a Cartesian rectangle) and the
-true size of the final figure. A `begin' command initializes the
-"virtual paper" for drawing. Subsequent _drawing commands_ add objects
-to the scene: lines, curves, function plots, labels, and the like. The
-printed appearance of scene elements is determined by the current
-"attribute state" and controlled by _style declaration_ which remain in
-effect until superseded. Finally, an `end' command closes the figure and
-prints it to the output file.
-
- In this manual, command descriptions follow a few conventions.
-Optional arguments are enclosed in square brackets. A `len' argument is
-either a number (representing a length in `pt') or a double-quoted
-string containing a number and a two-letter `LaTeX' length unit, such
-as `"1.5pt"' or `"6cm"'. A `color' argument is a named primary
-(`Red()', `Cyan()', `White()', etc.), or a `Color' specified by
-densities (`RGB(r,g,b)', `CMY(c,m,y)', etc.)
-
- * Fill color: `fill(color)', `nofill()'.
-
- * Line color and width: `plain([color])', `bold([color])'.
-
- * Text size: `font_size([size])', returns to `normalsize' if no
- argument is given.
-
-
- \noindent A complete list of style commands is found in Section
-*Note section:quickref::, , starting on page *Note section:quickref::.
-
- To handle three-dimensional scenes, a `camera' performs point
-projection from a selected spatial location to the canvas. As a user,
-you'll need to control relatively few of the `camera''s parameters.
-Keep in mind, however, that elements are added to a scene in the same
-order their commands appear in the output file, and that later elements
-generally cover earlier ones. Some three-dimensional scenes require
-manual ordering of the input file; such ordering is dependent on the
-`camera''s location.
-
- By default, `ePiX' draws thin, solid, black lines, performs no
-filling of regions, prints text in a 12 pt Roman font, and looks down
-the z axis from a large distance, giving orthogonal projection on the
-(x,y) plane. When the `camera' is moved, the z axis points vertically
-up on the page.
-
-
-File: epix.info, Node: Tutorial, Next: `C++' Basics, Prev: The Drawing Model, Up: Getting Started
-
-2.3 Tutorial
-============
-
-This section presents sample input files side-by-side with their output
-so you can compare what you write with what you'll see on the screen or
-page. `ePiX' provides standard drawing capabilities, but like all
-software has its own idioms and personality. The basic syntax, which
-comes from `C'/`C++', should be mostly self-explanatory. One-line
-comments begin with the string "//".
-
- To use the sample files interactively, you'll need working software:
-`bash', `emacs', `ePiX', `g++', `gv', and a running X server. To
-complete your "GUI", start `gv' and select "Watch file" from the "State"
-menu. The loaded file will update automatically when it changes.
-
- Create a "scratch" directory, `cd' into it, and run the command
-
- tar -zxf /usr/local/share/doc/epix/sample_src.tar.gz
- (Change the path as appropriate for your installation.) This unpacks
-copies of the sample files into your scratch directory, including all
-the files mentioned in this manual. The `README' file serves as a table
-of contents.
-
- Open a sample file in `emacs', compile it from the drop-down menu
-(or with the keyboard command), then open the `EPS' file in `gv'. Now
-you're ready to follow the tutorial interactively. A few suggested
-exercises are included with each file. Naturally, as you study more
-files, you'll be able to make more interesting changes on your own.
-
-
-
-The first sample, `hello.xp', contains code needed to specify the
-figure's size, followed by the classic greeting. The `border' command
-draws a box around the figure in the specified color and width, and
-serves here merely to delimit the output from the surrounding page.
-
-/* -*-ePiX-*- */
-#include "epix.h" // These lines are analogous
-using namespace ePiX; // to a usepackage command.
-
-int main()
-{
- picture(P(-1,-1), P(1,1), "2 x 1in"); // corners, true size
-
- begin(); // ---- Figure body starts here ----
-
- border(Black(), "1pt"); // color, line width
-
- font_size("Huge"); // May be any font size, e.g. "scriptsize"
- label(P(0,0), "Hello, world!");
-
- end(); // ---- End figure; write output file ----
-}
-
-
-[Image]
-
- * Change the color and width of the border. (`RGB(r,g,b);' creates
- an RGB color, CMY colors are analogous. Named primaries are
- available. The densities should be between 0 and 1 for
- "expected" behavior.)
-
- * Add `backing(Cyan());' after the `border' command.
-
- * Put the command `crop_ellipse();' before the `border' command.
- Permute the `crop_ellipse' command with the `border' and
- `backing' lines, and note how the attribute (`crop') affects
- objects (`border', `backing').
-
-
-
-
-Our next file uses simple objects to draw a 2-D house-and-sun scene.
-
-
-int main()
-{
- picture(P(0,0), P(5,2), "3.75 x 1.5in");
-
- begin();
-
- triangle(P(0.9, 1), P(3.1, 1), P(2, 1.5)); // vertices
- circle(P(4,1.5), 0.25); // center and radius
-
- rect(P(1,0), P(3,1)); // opposite corners
-
- fill(Black(0.1)); // light gray
- rect(P(2.3,0), P(2.7,0.8)); // the door
- nofill();
-
- bold(); // draw thicker lines
- grid(P(1.4, 0.2), P(2, 0.6), 2, 2); // corners, number of squares
-
- line(P(xmin(), 0), P(xmax(), 0)); // endpoints
-
- end();
-}
-
-
-[Image]
-
- * Add declarations such as `bold(RGB(1,0.9,0.5))' or
- `fill(Yellow())' to color the scene. (Color and filling are
- orthogonal attributes.)
-
- \noindent The sample file `house.flx' uses loops to draw gradient
-fills of the lawn, sky, and sun, and animates a sunset.
-
-
-
-Plotted functions must be defined in the "preamble", before `main'.
-"High-level" elements--coordinate axes and grids, axis labels, and
-graphs--are drawn with mnemonically-named commands.
-
-// double = double-precision floating point
-double f(double x) { return 0.75*Sin(x) - 0.25*Sin(2*x); }
-
-int main()
-{
- picture(P(-2,-1), P(2,1), "5 x 1in"); // [-2,2] x [-1,1]
-
- begin();
- revolutions(); // set angle units, [0,1] = one turn
-
- h_axis(16); // axes w/default endpts
- v_axis(4);
- h_axis_labels(4, P(0,-4), b); // shift down 4pt, align below
-
- plain(Red());
- plot(f, xmin(), xmax(), 120); // use 120 intervals
-
- end();
-}
-
-
-[Image]
-
- * Define and plot some different functions; adjust the bounding
- box as necessary. (Use repeated multiplication for polynomials.
- The `polarplot' command graphs r=f(\theta).)
-
- * Change the arguments to `h_axis_labels'. The first specifies the
- number of intervals to label; the second gives the label offset
- in `pt'. The last puts each label below (`b') its Cartesian
- location.
-
-
-
-
-Functions of two or three variables are defined just like functions of
-one variable, but for plotting the return type must be a point (`P'),
-not a real number (`double'). The `domain' class specifies the set of
-inputs to plot.
-
-
-P f(double r, double th)
-{
- return P(r*Cos(th), r*Sin(th), pow(r, 3)*Cos(3*th));
-}
-
-int main()
-{
- picture(P(-1,-1), P(1, 1), "2 x 1in");
- begin();
- pst_format(); // use PSTricks macros for output
-
- // corners ([0,1] x [0,2\pi]) and fineness
- // (8x40 rectangles, plotted at 16x120 resolution)
- domain R(P(0,0), P(1, 2*M_PI), mesh(8,40), mesh(16,120));
-
- camera.at(P(3,1,2)); // set the viewpoint
- arrow(P(0,0,0), P(1.25,0,0)); // coordinate axes
- arrow(P(0,0,0), P(0,1.25,0));
-
- plain(Blue(1.2)); // line color and width
- fill(Yellow()); // shading color
- surface(f, R);
-
- end();
-}
-
-
-[Image]
-
-
-
-A function can be defined by an arbitrary algorithm, and a `domain' may
-be used to plot a family of functions for several values of one
-variable.
-
-
-P sin_n(double x, double n) // Taylor polynomial of sin x
-{
- const int N((int) floor(n)); // convert n to an index bound
- const double sqx(-pow(x, 2)); // -x^2
- double val(x), summand(x);
-
- for (int i=1; i <= 2*N+1; i += 2)
- {
- summand *= (sqx/((i+1)*(i+2))); // (-1)^i x^{2i+1}/(2i+1)!
- val += summand;
- }
-
- return P(x, val); // return (x, y)
-}
-
-int main()
-{
- picture(P(0, -1), P(6*M_PI, 1), "5 x 1in");
-
- begin();
-
- set_crop();
- bold(Green());
- plot(Sin, 0, xmax(), 120);
-
- domain R(P(0,1), P(6*M_PI, 41), mesh(60, 40), mesh(120, 40));
- for (int i=3; 0 <= i; --i) // print in descending degree
- {
- bold(RGB(0.25*i, 0, 1-0.25*i)); // degree-dependent color
- plot(sin_n, R.slice2(5*i+1)); // plot for n = 5i+1
- }
- end();
-}
-
-
-[Image]
-
-
-
-Page layout can be composed from sub-pages with `screen' objects. In
-the loop body below, objects are added to the "active" `screen', then
-`inset' into the "canvas", the screen representing the entire figure.
-
-
-P f(double u, double v)
-{
- return P((u-v)*(u+v), 2*u*v, u);
-}
-
-int main()
-{
- picture(P(0,0), P(2,3), "5x7.5in"); // overall size
-
- begin();
-
- domain R(P(-1,-1), P(1,1), mesh(12,12), mesh(24,24));
-
- for (int i=0; i<2; ++i)
- for (int j=0; j<3; ++j)
- {
- screen my(P(-3,-3), P(3,3));
- activate(my);
- border(Red(0.6), "1pt");
- // frame-dependent viewpoint
- camera.at(sph(10, (2*j+i+1)*M_PI/8, M_PI/6));
-
- plot(f, R);
- arrow(P(0,0,0), 2*E_1);
- arrow(P(0,0,0), 2*E_2);
- // SW corner at (i, 2-j), padded by 0.05 on all sides
- inset(P(i+0.05,2.05-j), P(i+0.95,2.95-j));
- }
-
- end();
-}
-
-
-[Image]
-
-
-File: epix.info, Node: `C++' Basics, Next: Animation, Prev: Tutorial, Up: Getting Started
-
-2.4 `C++' Basics
-================
-
-An `ePiX' source file is a `C++' program. If you've successfully
-modified and compiled the sample files, you know enough `C++' to use
-`ePiX'. In the author's experience, `C' grammar suffices for most
-applications. An excellent introduction to definitions of functions
-and variables, control statements, and overall program structure is
-Kernighan and Ritchie's _The `C' Programming Language_, second edition
-`KnR'.
-
-
-
-Jay Belanger's `emacs' mode for `ePiX' inserts a file template when an
-empty buffer is opened with the extension `xp'. This section explains
-the purposes served by the template. A few additional remarks may help
-you avoid basic syntax pitfalls.
-
- A `C++' file consists of "statements", analogous to ordinary
-sentences. Common types include _declarations_ (which "register" a
-function, variable, or type name with the compiler), _definitions_
-(which assign meaning to declared names), and _function calls_ (which
-cause a named function to execute). Most statements in an `ePiX' input
-file are function calls ("commands"). Plain declarations are
-relatively rare in user files, since a definition serves to declare any
-new names that it contains.
-
- Every statement ends with a semicolon, and conventionally a file
-contains at most one statement per line. The compiler ignores nearly
-all whitespace (spaces, tabs, and newlines), which should be used
-freely to make files easy to read. Other punctuation (periods, commas,
-(semi)colons, parentheses, braces, and quotes) dictates file parsing,
-and must adhere stringently to grammar.
-
- An `ePiX' file always begins with the lines
-
-#include "epix.h" // N.B. pre-processor directive, no semicolon
-using namespace ePiX;
- The first line is analogous to a `LaTeX' `usepackage' command: It
-loads the contents of the "header" file `epix.h', importing the names
-of commands provided by `ePiX'. To avoid name conflicts, `ePiX''s
-commands are enclosed in a "namespace". For example, the `label'
-command is actually known to the compiler as `ePiX::label'. The second
-line above tells the compiler to apply the prefix tacitly.
-
-
-
-Definitions of variables and functions play the same role in a figure
-that macro definitions play in a `LaTeX' document: gathering and
-organizing information on which the figure depends. A variable is
-defined by supplying its type, name, and initial value. By far the most
-common data types in `ePiX' are `double' (double-precision floating
-point number), `P', and `int'. The name of a variable may consist
-(only) of letters (including the underscore character) and digits, and
-must begin with a letter:
-
-my_var, var2, MY_var, aLongVariableName; // valid
-my-var, 2var, \v@@riable, $x, ${MY_VARIABLE}; // not valid
- Variable names are case-sensitive, and numerous (non-universal)
-conventions govern the significance of capitalization. Generally, make
-names descriptive but not unwieldy, and avoid language keywords (such
-as `const', `true', `double', `class', or `public') and names that
-begin with an underscore.
-
- A function accepts "arguments" and "returns a value". To define a
-function in `C++', you must specify the return type, the name of the
-function, the types of the arguments, and the algorithm by which the
-value is computed from the inputs. The code block
-
-double f(double x)
-{
- return sqrt(1-x*x);
-}
- specifies the `double'-valued function f of one `double' variable
-defined by the formula f(x)=\sqrt1-x^2.
-
-
-
-`C++' has two types of comments. `C'-style comments, which may span
-several lines, are delimited by the strings `/*' and `*/'. One-line
-comments, analogous to the `LaTeX' `\%', are begun with `//'. A
-one-line comment may appear within a multi-line comment, but a
-`C'-style comment may not; the compiler will mistake the first `*/' it
-encounters as the end of the current multi-line comment.
-
-
-
-All the "action" in a `C++' program occurs inside the special function
-`main'. Running a compiled `C++' program is viewed by the operating
-system as calling the program's `main' function. The return value (an
-`int') is the program's exit status. The contents of the output file
-start with `begin()' and terminate with `end()'. Intervening
-statements constitute the _body_ of the file.
-
- In `C++', a function may not be defined inside another function.
-Thus, variables may be defined inside `main', but functions cannot be.
-
-
-
-In `C++', a `string' is a sequence of characters. Most `string's in
-`ePiX' input files are _literals_, double-quoted `string's whose value
-is read from the input. In a string literal, backslash is an escape
-character; a single backslash is produced by a double backslash in the
-input file. Certain letters have special meanings when
-backslash-escaped, including "\n" (newline) and "\t" (<TAB>). Unlike
-`LaTeX', `C++' does not require a space to separate an escape sequence
-from following text; the string "\\textwidth" literally represents a
-`LaTeX' command, while "\textwidth" is read "`TABextwidth'" by the
-compiler.
-
- Though not commonly needed, raw text can be printed to the output
-file. The functions `write', `pre_write', and `post_write' accept
-`string' arguments. `write' prints its argument where the call appears
-in the input file. The other functions print their arguments before or
-after the completed picture, respectively. These commands must be in
-the file body. As an application, a complete `LaTeX' `figure'
-environment (with caption and label) can be produced by an `ePiX' file,
-Figure *Note fig:captioned::, .
-
-
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- picture(P(-1,-1), P(1,1), "10cm x 3in);
- begin();
- pre_write("\@float Figure[hbt]"); // comes before the picture
-
- post_write("\@caption{A \@code{LaTeX}\ figure.}"); // and after
- post_write("\@end float");
-
- < ... other ePiX commands ... >
- write("%% A comment near the end, but inside the picture.");
- end();
-} // End of main()
-
-Figure: Generating a self-contained figure in `ePiX'.
-
-
-
-An algorithm's behavior usually depends on internal state. A
-_conditional statement_ causes blocks of code to be executed according
-to criteria. A _loop_ repeatedly executes a code block, usually
-changing the values of variables in a predictable way, so that the loop
-exits after finitely many traversals.
-
-
-File: epix.info, Node: Animation, Next: Layout Tricks, Prev: `C++' Basics, Up: Getting Started
-
-2.5 Animation
-=============
-
-`ePiX' is well-suited to the creation of mathematically accurate
-animations: If a figure depends suitably upon a "time" parameter, then
-a loop can be used to draw the entire figure for multiple time values,
-yielding successive "snapshots" of the figure as time progresses. The
-shell script `flix' automates the process of compiling a suitable input
-file into a collection of `png's and assembling these frames into a
-`mng' or `gif' animation. ImageMagick is the image-handling engine.
-
- A `flix' file is an `epix' file with two restrictions:
- * The `double' variable `tix()' is used as "clock".
-
- * `main' accepts two command line arguments and sets `tix()'
- accordingly.
- Jay Belanger's `emacs' mode recognizes the file extension `.flx' and
-inserts template code if an empty buffer is opened. Creation of `flix'
-files is as easy as creation of `epix' files. The `samples' directory
-contains a handful of `flix' files that may be consulted for ideas.
-
- By default, `flix' creates movies with 24 frames, in which `tix()'
-runs from 0 to 1, and animates at 0.08 sec/frame. These and other
-parameters can be changed with command-line options.
-
- A "typical" `.flx' file may take 30 seconds to a few minutes to
-compile, depending on the number of frames and the complexity of each
-frame. To facilitate debugging, `elaps' can be run on a `flix' file.
-`elaps' runs in a fraction of the time, and if `elaps' can't produce a
-viewable image, `flix' will surely fail. While running, `flix' prints
-a progress bar counting the number of `eps' files that have been
-created. There will be a delay of a few seconds (or more) after the
-last frame is produced, during which ImageMagick's `convert' utility
-assembles the movie.
-
-
-File: epix.info, Node: Layout Tricks, Prev: Animation, Up: Getting Started
-
-2.6 Layout Tricks
-=================
-
-
-
-Stereograms are created by drawing a single scene twice from slightly
-different points of view. To create a stereogram with `ePiX', write a
-"scene" function containing the necessary drawing commands, then set
-the camera appropriately and call the scene function twice, once for
-each frame.
-
-
-
-The sample files `lorenz.xp' and `twisted_cubic.xp' use page layout to
-draw crossed-eyes stereograms. For each frame, create and activate a
-`screen', set the camera, and call the scene function. The frames are
-inset side by side in the final picture. For a crossed-eyes stereogram,
-the frame from the "rightmost" camera position is placed on the left.
-
-
-
-The sample files `cube.flx' and `mirrorball.flx' contain animated
-red-cyan stereograms, suitable for viewing with 3-D glasses. The
-technique works best with black-and-white line drawings, but the basic
-approach is the same as for crossed-eyes stereograms: Create a scene
-function and call it twice, setting the camera appropriately. Layout is
-unnecessary since the frames are superposed. Pen colors should be
-close to red and cyan, but "optimal" choices depend on one's eyes and
-3-D glasses.
-
-
-
-Either form of stereogram can be animated in a `.flx' file, but keeping
-one's eyes properly crossed requires practice while most people can
-instantly see depth with 3-D glasses. As always when using `flix',
-debug the scene with `elaps' before compiling a movie. If a
-stereoscopic effect is difficult to see in a still image, it will be
-even harder to perceive in a movie.
-
-
-
-`ePiX' can place external images into a figure, similarly to Rolf
-Niepraschk's `overpic' package. You provide the Cartesian center point,
-the file name, and optionally the true height and/or width of the image:
-
- label(P(a,b), "\\includegraphics[width=w,height=h]{file}");
- This effect requires the `graphicx' package. When compiling a
-stand-alone graphic containing an external image, you must specify the
-`graphicx' package on the command line: `elaps -p graphicx <file>'
-
-
-File: epix.info, Node: Reference Manual, Next: Advanced Topics, Prev: Getting Started, Up: Top
-
-3 Reference Manual
-******************
-
-This chapter details `ePiX''s capabilities, discussing attributes and
-data types, and listing available commands in the form
-
- label(P posn, [P offset], string text, [align]);
- circle(P ctr, double rad=1, normal=P(0,0,1));
- As in Chapter *Note chapter:started::, , function arguments are given
-by type (`P', `double', `string', etc.)\ and name, or by name alone if
-the type is clear. Optional arguments are enclosed in square brackets.
-A few argument types, such as `[align]' above, admit only a small
-number of values; these cases are explained when the corresponding
-command is first introduced.
-
- A name followed by an equals sign and a value indicates a default
-argument; if omitted in an input file, the compiler substitutes the
-default value. Only trailing arguments may be specified this way. For
-example, if the `rad' argument of the `circle' command is omitted, the
-`normal' argument _must_ be omitted as well.
-
- In an input file, only an argument's value is given, not the type:
-
- label(P(0,0), P(0,-4), "Hello world", b);
- circle(P(0,-0.25), sqrt(2)); // use default normal
-
- Generally, `len' signifies either a number (representing a length in
-`pt') or a double-quoted string containing a number and a two-letter
-`LaTeX' length unit, such as `"1.5pt"' or `"6cm"'. `color' represents a
-`Color' object constructed from a named primary (`Blue()',
-`Magenta(0.7)', etc.), a color specification (`RGB(r,g,b)',
-`CMY(c,m,y)', etc.), or an operator applied to an existing `Color'.
-
-* Menu:
-
-* File Structure::
-* Picture Size and Aspect Ratio::
-* Color::
-* Scene Attributes::
-* Drawing Attributes::
-* Creating and Drawing Objects::
-* More About `C++'::
-* Attribute Quick Reference::
-
-
-File: epix.info, Node: File Structure, Next: Picture Size and Aspect Ratio, Prev: Reference Manual, Up: Reference Manual
-
-3.1 File Structure
-==================
-
-An `ePiX' input file constitutes a short `C++' program. When this
-program is compiled and run by one of the shell scripts, it creates a
-figure file suitable for inclusion in `LaTeX'.
-
- Like a `LaTeX' document, an `ePiX' file contains a _preamble_, which
-sets up a drawing environment, and a _body_, which contains actual
-figure-generating commands. The minimal file has the form
-
-#include "epix.h" // N.B. no semicolon
-using namespace ePiX;
-
-int main() {
- picture(P(a1,b1), P(a2,b2), "n1 [unit1] x n2 unit2");
- begin(); // end of preamble, start of body
- end(); // end of body
-}
- `ePiX' commands are of four general types: drawing, attribute setting,
-definitions (of data and functions), and operations on existing
-objects. Except as noted below, drawing and attribute commands must
-appear in the body, between `begin()' and `end()'. Function definitions
-must come in the preamble, before `main()'. Data definitions may appear
-in the preamble or body.
-
-
-
-The `end()' command writes the output file to `stdout', using `eepic'
-macros by default. The shell scripts redirect `stdout' to an
-appropriate disk file.
-
- The attribute-setting command `pst_format()' causes the output file
-to be written using `PSTricks' macros when `end' is called. Similarly,
-`tikz_format()' causes the file to be written using `tikz' macros, and
-`eepic_format()' causes the file to be written using `eepic' macros.
-These commands may appear anywhere in the figure body. There is no
-reason for a file to contain more than one such command.
-
- The output format may be selected on the command line, overriding any
-explicit request in the input file. Supplying `epix', `elaps', or
-`flix' with one of the options `--pst', `--tikz', or `--eepic' is
-tantamount to issuing a `pst_format()' (etc.)\ command just before the
-end of the file. These options are listed in decreasing precedence. If
-more than one is given, the "strongest" applies, regardless of the
-command line order.
-
- A figure may be written directly to a specified disk file, in a
-format unaffected by the command line flags above. The command
-
- print_eepic("file.tex");
- writes the figure to the named file using `eepic' macros. Analogous
-commands exist for the formats `pst' and `tikz'. These commands perform
-an immediate action. Consequently, the command's location in the input
-file is significant, and multiple commands may appear in a single file,
-so long as distinct file name arguments are provided. Applications
-include writing the same figure in multiple formats, or creating
-successive "snapshots" of a lengthy computation.
-
-
-File: epix.info, Node: Picture Size and Aspect Ratio, Next: Color, Prev: File Structure, Up: Reference Manual
-
-3.2 Picture Size and Aspect Ratio
-=================================
-
-The `picture' command specifies a figure's logical and true sizes. In
-the "minimal file" snippet above, the _canvas_ is the Cartesian
-rectangle [a_1,a_2]\times[b_1,b_2] whose corners are given. Either pair
-of opposite corners is acceptable, but confusion is less likely when
-the SW and NE corners are given, in this order.
-
- The true (printed) width and height are read from `picture''s third
-argument, a "size `string'" such as "4cm x 1in", containing a number
-and optional `LaTeX' length unit, an `x', another number, and a
-mandatory length unit. Spaces may be used for legibility. The
-mandatory length unit becomes the `LaTeX' `unitlength'. The argument
-"4cm x 1in" creates a picture 4 cm wide and 1 in high, but internally
-converts 4 cm to inches. Recognized length units are `pt' (points, the
-default), `cm' (centimeters), `in' (inches), `mm' (millimeters), `pc'
-(picas), and `bp' (big points). (`1in = 2.54cm = 72bp = 72.27pt', `1pc
-= 12pt'.)
-
- The logical and true sizes may be defined separately with the
-commands
-
- bounding_box(P(a1,b1), P(a2,b2));
- picture(n1, n2);
- unitlength(len); // len a length string, not a double
- One way or another, the logical and true dimensions _must_ have
-positive values when the `begin()' command is issued.
-
- `LaTeX' treats the contents of a picture environment as a single box,
-aligned by default on its lower left corner. An `offset' command
-accepts two `double' arguments or a size `string' and shifts the page
-location accordingly. The command `offset("0.25 x -0.5cm")' shifts the
-picture right 0.25 cm and down 0.5 cm. If the `unitlength' is 1 cm,
-the command `offset(0.25, -0.5)' has the same effect.
-
- A non-zero `offset' causes a picture's contents to appear in a
-location where `LaTeX' does not expect them. This can be useful in a
-`LaTeX' document, but should be avoided when compiling a stand-alone
-image, since `dvips' may crop according to rules of its own.
-
- The canvas's corners are `(xmin(),ymin())' and `(xmax(),ymax())',
-while its width and height are `xsize()' and `ysize()'. The canvas is a
-virtual, advisory data structure; its dimensions are not directly
-related to the figure's printed size, and picture elements may lie
-outside the canvas. Affine scaling maps the canvas to the page when the
-output file is written.
-[Image]
-
- The figure's aspect ratio is controlled by sizing the canvas. The
-aspect ratio is "true" if the canvas and page rectangles are
-geometrically similar, e.g., if both boxes are 1.5 times as wide as
-they are tall.
-
-
-File: epix.info, Node: Color, Next: Scene Attributes, Prev: Picture Size and Aspect Ratio, Up: Reference Manual
-
-3.3 Color
-=========
-
-`ePiX' provides a `Color' data type. Four models are implemented:
-`RGB', `CMY', `CMYK', and `Gray'. A `Color' holds primary color
-"channels", each carrying an intensity between 0 (no color) and 1 (full
-saturation). "No color" means black in `RGB' and `Gray', white in
-`CMY(K)'. `RGB', `CMY', and `CMYK' colors are written to the output
-file as commands in the corresponding model. `Gray' shades are written
-in `RGB'.
-
- Operations on red-green-blue colors are described below.
-Functionally, colors are converted to `RGB', operated upon, then
-converted back to the original model. Conversions are as described in
-Uwe Kern's `xcolor' manual `xcolor'.
-
-
-
-Each color model has a "constructor" creating a color of specified
-densities. The `RGB' and `CMY' models have named "primary"
-constructors; the density argument is optional and defaults to 1.
-
- // red-green-blue colors
- RGB(double r=0, double g=0, double b=0);
- Red(d=1); Green(d=1); Blue(d=1);
- White(d=1); Black(d=1);
-
-
- // cyan-magenta-yellow colors
- CMY(double c=0, double m=0, double y=0);
- Cyan(d=1); Magenta(d=1); Yellow(d=1);
- CMY_White(d=1); CMY_Black(d=1);
-
- // gray
- Gray(double d=0); // equivalent to RGB(d, d, d)
- Each `CMY' constructor has a corresponding `CMYK' function, e.g.\
-`CyanK()' or `CMYK_White()'.
-
- Though color densities lie between 0 and 1, `ePiX''s primary color
-constructors take arguments mod 4, viewed as elements of [-2,2].
-Consider `Red(d)', "red with density d". For integer values of d, the
-constructor has the following meanings: `Red(0)' is black, `Red(1)' is
-red, `Red(2)'=`Red(-2)' is white, and `Red(-1)' is anti-red, or cyan.
-For non-integer d, the constructor interpolates between the bracketing
-integer values, Figure *Note fig:densities::, . Other primary
-constructors work analogously.
-
-
-[Image]
-
-Figure[hbt]
-
- Let \delta:[-2,2]\to[0,1] be the piecewise-linear function that
-converts real numbers to primary color densities, \clip:R\to[0,1] the
-clipping function. The non-primary constructor `RGB(r, g, b)' computes
-the density of the red channel as
-\clip\bigl(\delta(r)+\delta(-g)+\delta(-b)\bigr); the green and blue
-channel densities are computed similarly. Every color can be created
-with arguments between 0 and 1, but the constructor accepts arbitrary
-real arguments and returns colors varying "continuously and
-periodically".
-
- Colors possess an "alpha-channel" for transparency. Except as
-supported by the output format, this feature is a stub.
-
-
-
-Colors can be scaled, inverted, blended, superposed, and filtered. In
-the code below, `tint' is a `Color'. The effect of each operation is
-described in the `rgb' model; the visual result is the same in all
-models.
-
- tint *= double c; // multiply channels by c, rebuild
- tint.invert(); // (r, g, b) -> (1-r, 1-g, 1-b)
- tint.blend(Color col, double t); // (1-t)*tint + t*col
- tint.superpose(col); // add channels, then clip to [0,1]
- tint.alpha(double d); // set alpha channel to clip(d)
-
- tint.filter(col); // return min density in each channel
- Except for `filter', these operators modify their object. `filter'
-simulates the effect of viewing `col' through a transparent sheet of
-`tint', and returns a new `Color' object having the same model as
-`tint' without modifying `tint' itself.
-
-
-File: epix.info, Node: Scene Attributes, Next: Drawing Attributes, Prev: Color, Up: Reference Manual
-
-3.4 Scene Attributes
-====================
-
-Objects in a scene sit in 3-dimensional space. A _camera_ maps objects
-to the _active screen_. The active `screen' may, in turn crop its
-contents. Each drawing command creates an object, "photographs" it, and
-adds the image to the active `screen'. This section describes the
-`Camera' and `screen' classes and a few associated concepts.
-
-
-
-By default, angles are measured in `radian's. Two other angular modes
-are available: `degrees' and `revolutions'. The angular mode is set
-with a named command, `radians()', `degrees()', or `revolutions()'. The
-current angular mode affects all trigonometric functions and operations.
-
-
-
-Three-dimensional scenes are drawn on flat paper by applying a
-mathematical transformation. By default, `ePiX' uses _point
-projection_, the technique used by art students when they trace on a
-window with grease pencil, Figure *Note fig:camera::, .
-
-
-[Image]
-
-Figure[hbt]
-
- `ePiX' depicts a Cartesian world by projecting mathematically to a
-screen plane, then affinely scaling to a printed page. The camera,
-which maps the world to the screen, consists of a _body_ (data that
-determines the position and orientation of the camera), a _lens_ (the
-actual mapping to the screen plane), and a _filter_ (a color through
-which the scene is viewed).
-
-
-
-The camera's spatial orientation is described by a triple of mutually
-perpendicular unit vectors. In memory of happy days at the beach,
-these vectors are called _sea_, _sky_, and _eye_. The screen plane is
-parallel to the sea-sky plane; the sea vector points horizontally to
-the right, sky points vertically upward. The eye is their cross
-product, which points directly at the viewer.
-
- The sea-sky-eye basis is located at the _viewpoint_, the camera's
-spatial location. The _target_, the origin of the screen plane, lies on
-the line through the viewpoint in the direction opposite the eye
-vector. The distance from the viewpoint to the target is the _range_.
-The _camera sphere_ is centered at the viewpoint and passes through the
-target. The orientation, viewpoint, target, and range completely (and
-redundantly) determine the camera's geometric situation in the world.
-
-
-
-A _lens_ maps the world to the screen. `ePiX' comes with four lenses:
-_shadow_ (the default), _orthogonal_, _fisheye_, and _bubble_. Each
-lens simulates the appearance of world objects as seen by an observer
-at the viewpoint. The shadow lens is point projection from the
-viewpoint to the screen plane. The orthogonal lens projects from
-infinite distance. Each of the other lenses performs radial projection
-to the camera sphere, then maps the sphere to the screen plane; the
-fisheye lens does orthogonal projection (so the entire image lies
-inside the disk centered at the target whose radius is the range) while
-the bubble lens does stereographic projection from the target's
-antipode.
-
- An input file normally uses a single camera, so a global object named
-`camera' is defined automatically. At the start of a figure, the
-`camera' looks down on the (x_1,x_2)-plane from a distant point on the
-x_3-axis. The resulting view, essentially projection along the axis, is
-suitable for 2-dimensional figures.
-
- The `camera' is manipulated similarly to a real camera:
-
- camera.at(P posn); // set viewpoint to posn
- camera.look_at(P targ); // set target to targ
- camera.range(double dist); // fix target, move viewpoint
- camera.focus(double dist); // fix viewpoint, move target
- camera.tilt(double angle); // rotate about the sea axis
- camera.pan(double angle); // rotate about the sky axis
- camera.roll(double angle); // rotate about the eye axis
- camera.clip_range(dist); // cull scenery closer than dist
- Explicitly setting the viewpoint or target makes the sky vector
-parallel to the projection of the x_3 axis when possible; otherwise the
-x_2-axis is used. Setting the range or focus moves the `camera'
-parallel along the eye line. Each command re-sizes the image; note that
-increasing the focus _enlarges_ the image. The three rotation
-operations fix the viewpoint, but only roll fixes the target.
-
-
-
-The `camera' has a _filter_ through which all scene `Color's pass. For
-uniformity, the filter should only be set at the start of the file
-body, before any visible elements have been placed in the scene. The
-filter has two primary uses--model conversion and color separation--but
-can also be used for special effects.
-
- There is a `Neutral' color, for which filtering has no effect at
-all. The `camera''s default filter is `Neutral'. In addition, each
-color model has a _neutral_ representative, `RGB_Neutral', etc. Passing
-`Color's through a neutral filter preserves their appearance but
-converts them to the neutral `Color''s model.
-
- Filtering can be used to "split" a `Color' into primary
-constituents. For `RGB' channels, the primaries themselves are suitable
-filters. For `CMYK' channels, there are special _process_ filters,
-named C_Process, etc.
-
- camera.filter(CMY_Neutral()); // convert all colors to CMY
- camera.filter(Gray_Neutral()); // black and white photography
- camera.filter(Green()); // the green channel
- camera.filter(M_Process()); // the magenta channel
- camera.filter(Red(1.4)); // la vie en rose?
-
-
-
-
-Two operations handle elements lying far from the target. _Cropping_
-culls elements based on their screen location, and is described later.
-_Clipping_ removes objects whose spatial location lies outside the
-"clip region".
-
- Initially, the clip region is a very large box centered at the
-origin. Commands are provided to resize this box, keeping the faces
-parallel to coordinate planes.
-
- clip_box(P pt1, P pt2); // opposite corners
- clip_box(P pt); // opposite corners pt and -pt
- clip_to (P pt); // pt and P(0,0,0)
- clip_box(); // very large box
- Additional "clippers" may be added manually. Individual clipping
-planes are specified by a point and inward-pointing normal vector.
-Parallel planes cutting a "slice" or "slab" are described by a
-location, direction, and a distance. The location lies halfway between
-the clipping planes, and the planes' normals point toward the location.
-
- clip_face(P loc, P perp); // perp points inward
- clip_slice(loc, perp); // very close parallel planes
- clip_slice(loc, perp, dist); // planes separated by dist
- clip_restore(); // remove manually-added clip planes
- Like `clip_restore', the `clip_box' and `clip_to' commands remove all
-user-specified half spaces.
-
-
-
-By default, drawing occurs in the Cartesian coordinate system of the
-`canvas'. However, insets and subfigures are most naturally composed in
-"local" coordinates, then placed into their final location as a unit, a
-process called _layout_. `ePiX' implements layout with the `screen'
-class.
-
-
-
-A `screen' is a Cartesian plane containing a distinguished coordinate
-rectangle, its _bounding box_. The `canvas' of a figure is a `screen',
-as is the internal representation of the printed page. At any point of
-a file body, some `screen' is _active_, or "open for drawing". A new
-`screen' is created from a pair of opposite corners, but is not used
-until explicitly activated.
-
- screen subfig(P(a1,b1), P(a2,b2)); // [a1, a2] x [b1, b2]
- activate(subfig); // open subfig for drawing
- // commands to draw in subfig
- deactivate(subfig); // re-activate the previous screen
-
- The `canvas' is automatically drawn at the `end' of the input file.
-The contents of other `screen's must be incorporated into the `canvas'
-explicitly with an `import' or `inset' command. `import' affinely
-scales the bounding box of the "child" `screen' to the `canvas'. `inset'
-specifies corners in the "parent" where the child is placed.
-
- import(); // active screen to canvas
- import(subfig); // subfig to canvas
- inset(P sw, P ne); // active screen to specified rectangle
- inset(subfig, sw, ne); // subfig to specified rectangle
- inset(subfig); // inset to subfig's corners
-
-
-
-The portion of a `screen' enclosed by a specified rectangle can be
-_extracted_. Each of the commands
-
- subfig.extract(P sw, P ne);
- canvas().extract(P sw, P ne);
- returns the `screen' having stated corners and containing part of
-`subfig' or the `canvas', respectively. Elliptical and diamond-shaped
-portions of a `screen' may be extracted. The contents occupy the
-ellipse or diamond inscribed in the given rectangle.
-
- subfig.extract_ellipse(sw, ne);
- canvas().extract_diamond(sw, ne);
- The `screen' returned by `extract' (or its variants) may be used just
-like a manually-constructed `screen', for example to construct a
-magnified inset.
-
-
-
-On occasion, it is necessary to draw at known page size, independently
-of the unit length. For 2-dimensional drawing in the (x_1,x_2)-plane
-with the `camera' in its default location, the coordinates (horizontal,
-vertical, or both) of a `screen' may be interpreted as true pt offsets
-relative to a specified point rather than as Cartesian coordinates.
-
- inlay(subfig, P loc);
- inlay_horizontal(subfig, loc);
- inlay_vertical(subfig, loc);
- Each command maps the origin of `subfig' to the specified location in
-the active `screen'. The first performs affine scaling so that one
-Cartesian unit in `subfig' maps to one true pt on the page. The second
-and third commands perform this scaling only in the named direction.
-
- The `inlay' functions are suitable only for 2-dimensional effects.
-For 3-dimensional true-size drawing, the function `pt_to_screen'
-converts a true length of 1 pt into Cartesian coordinates in the active
-`screen'. For example, the command `line(P(0,0),
-P(pt_to_screen(12),0))' draws a line segment 12 pt long with its left
-endpoint at the Cartesian origin. True size drawing is unusual in an
-input file, but has definite uses in library code; `ePiX''s right angle
-marker is a typical application.
-
- Either type of true-size drawing works as described when drawing in
-the `canvas', and _only_ when drawing in a `screen' imported to the
-`canvas' at "true Cartesian" size (one `screen' unit maps to one
-Cartesian unit in the `canvas'). In other situations, the true size
-coordinate(s) will be scaled by additional affine transformation(s).
-
-
-
-A `screen' has a _crop mask_: rectangular (default), elliptical, or
-diamond-shaped. If cropping is switched on in the active `screen',
-added elements are cropped to the crop mask. For example, cropping by
-the default crop mask in the `canvas' ensures the figure lies inside
-the printed region allocated by `LaTeX'.
-
- The `crop' commands below affect the active `screen' only. Cropping
-is not a "global" attribute, but must be set or unset explicitly for
-each `screen'. By default, cropping is switched off.
-
- set_crop(); // activate cropping
- set_crop(false); // deactivate cropping
- crop_diamond(); // <>-shaped mask, set crop state
- crop_ellipse(); // etc...
- crop(); // crop active screen's contents
- Normally the crop mask is inscribed in the `screen''s bounding box.
-The commands `crop_diamond' and `crop_ellipse' also accept a pair of
-`P' arguments, which are treated as corners of the crop box.
-
- The active `screen' may be decorated with a `border' (outline of
-specified color and line width) and `backing' (solid fill color). The
-crop mask determines the shape of the `border' and `backing'.
-
- border(color, len);
- backing(color);
- Identically-named member functions can be applied to an arbitrary
-`screen' whether or not it is active:
-
- scr.crop_rectangle().backing(Blue(1.8));
- canvas().crop();
-
-
-
-A _plane affine map_ has the form T(x) = Ax+b for some invertible
-2\times2 matrix A and a constant vector b. `ePiX''s `affine' class
-allows affine maps to be built and applied to `screen's' contents.
-
- An affine map is uniquely determined by the images of three
-non-collinear points. The constructor returns the affine map sending
-the points (1,0), (0,1), and (0,0) to `pt1', `pt2', and `pt0',
-respectively.
-
- affine af(P pt1, P pt2, P pt0=P(0,0));
- To emphasize, the arguments are locations, not displacements, and the
-image of the origin comes last. There is also a `void' constructor
-(taking no arguments) which returns the identity map.
-
- To facilitate construction of affine maps, an existing `affine' may
-be post-composed with a variety of "elementary" affine transformations.
-In the commands below, `th' is an angle (in current units), `sc' is a
-non-zero `double', and `ctr' is a point fixed by the composing
-transformation. In each command, `ctr' defaults to (0,0).
-
- affine af; // the identity map
- af.shift(P arg); // translate by arg
- af.rotate(th, [ctr]); // counterclockwise rotation about ctr
- af.reflect(th, [ctr]); // reflect across line through ctr
-
- af.h_scale(sc, [ctr]); // horizontal scaling
- af.v_scale(sc, [ctr]); // vertical scaling
- af.scale(sc, [ctr]); // dilatation
-
- af.h_shear(sc, [ctr]); // shear preserving horizontals
- af.v_shear(sc, [ctr]); // shear preserving verticals
-
- af.invert(); // the inverse
- af.postcomp(affine f); // post-compose with f
- af(f); // pre-compose, af not modified
- A non-invertible `affine' can be created _only_ by shearing or scaling
-with an extremely large or extremely small argument, or by supplying
-three collinear points to the constructor. Calling `invert' on a
-non-invertible map merely issues a warning and performs no action.
-
- An `affine' may be applied to a `screen''s current contents. The
-`screen' class has eight member functions (`shift' through `shear')
-with syntax identical to the affine map functions. In addition, an
-arbitrary `affine' may be applied to a `screen':
-
- scr.shift(arg); // shift scr's contents by arg; etc.
- scr.apply(f); // apply f to scr's contents
- To apply a composition of several maps to a `screen', it's best to
-build an `affine' map by composition, then `apply' the map. Composing
-`affine's is cheap; `apply'ing an `affine' is costly in proportion to
-the number of elements in the `screen'.
-
- Applying an `affine' to a `screen' has no effect on the bounding
-box, `border', or `backing', and may move elements outside the bounding
-box even if cropping is active. To ensure a `screen''s contents lie
-inside the bounding box, `crop' the `screen' _after_ `apply'ing the
-`affine'(s).
-
- The sample file `inverse.xp' uses `affine' maps to depict branches
-of inverse functions in one variable, `symmetry.xp' depicts the
-permutation group S_3 by its action on a regular hexagon.
-
-
-File: epix.info, Node: Drawing Attributes, Next: Creating and Drawing Objects, Prev: Scene Attributes, Up: Reference Manual
-
-3.5 Drawing Attributes
-======================
-
-`ePiX' maintains drawing states for filled regions, paths, and text
-objects.
-
-
-
-Filling is either on or off. When filling is active, closed paths are
-filled with the current _fill color_.
-
- fill(); // turn filling on
- fill(color); // turn filling on, specify color
- nofill(); // turn filling off, same as fill(false);
-
-
-
-Paths and borders of filled regions are drawn with two _pen_s, each
-described by color and line width. The _line pen_ draws all path-like
-objects. The _base pen_ does nothing unless it is wider then the line
-pen, in which case it draws an "underlayer" or "border" on the line pen.
-
- pen(len); // set line pen width
- pen(color); // set line color, keep width
- pen(color, len); // set color and width
- As usual, `len' may be either a length string or a `double',
-interpreted as a width in `pt'. There are `base' functions with the
-same signatures and analogous meanings for the base pen.
-
- The line width can be set with named declarations; the optional
-argument sets the line color:
-
- plain([color]); // 0.4pt
- bold([color]); // 0.8pt
- bbold([color]); // 1.6pt
-
-
-
-By default, path-like objects are drawn with solid lines. Dashed,
-dotted, and free-form path style patterns are also available. (The
-`base' underlayer is always solid.) The page length of a pattern
-defaults to 12 pt, but can be set.
-
- line_style(string);
- dash_size(len=12);
- The path style is set with a WYSIWYG string of dashes, spaces, and
-periods, representing a pattern of dashes, gaps, and dots. In the
-sample styles below, the repeating units have the same page size, 12 pt.
-[Image]
-
- For brevity and uniformity, named commands are provided.
-
- solid(); "-" dashed(); "- -" dotted(); " . "
- A sequence of n dashes, spaces, and dots corresponds to a dash/dot
-pattern in an interval divided into n subintervals of equal length. If
-the ith character is a dash or space, the ith subinterval is drawn
-solid or empty, respectively. If the ith character is a period, a dot is
-placed at the midpoint of the ith subinterval.
-
- This pattern is applied to a path-like object as follows. The page
-length of each edge is divided by the current `dash_size' and the
-ceiling (next largest integer) taken. This many copies of the current
-path style are scaled onto the edge. The first and last characters are
-adjacent in repeated units.
-
- There are three inequivalent ways to adjust the dash length/dot
-spacing in a non-line path: Change the `dash_length', create a path
-with a different number of points, or use a longer, repetitive pattern.
-For best results, the style string should not be longer than about a
-dozen characters.
-
- If you need several dashed/dotted line styles in multiple figures,
-it's best to define a custom header instead of hard-coding line styles.
-See Section *Note section:extensions::, for guidance.
-
-
-
-Two types of textual element may appear in a file: _labels_ (text
-boxes) and _markers_ (`LaTeX' symbols). A marker occupies a box of zero
-size, and is placed at a specified Cartesian location. A label has
-typographical size, and is usually offset from its Cartesian location.
-For placement, an _alignment point_ is attached to each label, and
-Cartesian coordinates position the alignment point.
-
-
-
-A label is printed as a `LaTeX' box. By default, the alignment point
-is its reference point, the intersection of the left edge and the
-baseline, which is used by `LaTeX' to position the box on the
-page:[Image]
-
- The alignment point may be _offset_ manually by a specified number
-of `pt'. Additionally, a label's location with respect to the alignment
-point can be chosen with an optional `LaTeX'-style alignment option.
-This scheme allows labels to be placed easily where they will not
-overlap other parts of the figure, and ensures labels stay properly
-positioned when the size or aspect ratio of a figure changes.
-
- label(P posn, P offset, string msg, [align]);
- label(posn, msg);
- The first two components of the `offset' argument are numbers of `pt'
-to shift the alignment point right and up. The optional `align'
-argument may be one--or an appropriate pair--of `t', `b', `r', or `l'
-(top, bottom, right, left), or `c' (center). These alignment options
-specify the position of the label _relative to the Cartesian location_
-`posn', namely they work _opposite_ to the way they work in `LaTeX'.
-[Image]\qquad [Image]
-
- The `msg' argument is usually a snippet of `LaTeX' code enclosed in
-double quotes. `C++' treats "\" as an escape character, so a double
-backslash is needed in the source to get a single backslash in the
-output. For example,
-
- label(P(0,0), P(2,-1), "$\\rho = \\sin\\theta$", br);
- positions an alignment point `2pt' right and `1pt' below the
-(Cartesian) origin, and typesets the equation \rho=\sin\theta below and
-to the right.
-
- Labels can be rotated; the (counterclockwise) angle is set in current
-angle units with the command `label_angle(theta)'. For example, a
-rotation angle of 90 degrees prints labels along a vertical axis.
-Though label rotation has legitimate uses, it can make labels more
-difficult to read, defeating their purpose. Do not use rotated labels
-merely because they are available. As a practical matter, if an output
-file contains rotated labels, the enclosing document must use the
-`rotating' package. `elaps' automatically loads this package.
-
- An `affine' behaves moderately intelligently when acting on a marker
-or label. The mapping is applied to the label's location, and the
-"linear part" is used to adjust the offset and label angle. No attempt
-is made to treat alignment. For best results, if a `screen' will have
-an `affine' applied to it, label positions should be fine-tuned only
-with offsets, not alignment arguments. In all situations, the font
-itself is unchanged; no attempt is made to print sheared, scaled, or
-reflected text. The sample file `inverse.xp' illustrates the effect of
-affine maps on labels.
-
-
-
-By default, the font in an `ePiX' figure is that of the enclosing
-document. The font size and face are changed with "declaration-style"
-commands such as
-
-font_size("Large");
-font_face("sc");
- The argument of font_size is a valid `LaTeX' size. If no argument is
-given, `normalsize' is understood. font_face accepts a two-letter
-string, appended to the string "`text'" to give a `LaTeX' font
-declaration command ("`textsc'" above). Finer-grained control is
-accomplished by placing `LaTeX' commands into the label text.
-
-
-
-Each label command has a corresponding "mask" version (`masklabel')
-that draws an opaque rectangle under the label text. The mask size
-exceeds the label's size by an amount of _padding_, and the mask is
-itself surrounded by a rectangular _border_, of specified color and
-width.
-
- label_color(color); // set label text color
- label_mask(color=White()); // set mask color
- label_pad(string len);
-
- label_border(color, [len]); // set color (and line width)
- label_border(len); // set line width only
- no_label_border(); // turn off label borders
-
-
-
-`ePiX''s marker types, listed in Table *Note table:marker::, , are
-obtained with the command marker(P pt, <MARKER TYPE>); Several
-"dot-like" marker types are available by name: [Image]
-
- spot(P pt); dot(P pt); ddot(P pt);
- --- box(P pt); bbox(P pt);
- ring(P pt); circ(P pt); ---
- A `circ' is filled with the current `mask_color', and a `ring' is
-"hollow". Each dot-like marker can also be called with label syntax,
-generating a labeled marker with one command.
-
- dot(P posn, offset=P(0,0), msg="", align=none); // etc.
-
- By default, `spot' and `ring' are 4 pt in diameter; `dot', `box',
-and `circ' are 3 pt in diameter; `ddot' and `bbox' are 2 pt in
-diameter. At arbitrary diameter, a `spot' is 4/3 the diameter of a `dot'
-and a `ddot' is 2/3 the diameter. The command `dot_size(diam=3)' sets
-the diameter of a `dot', and hence the size of all dot-like markers.
-
-
-[Image]
-
-Table[tb]
-
-
-
-When constructing and placing a label,
- * Offsets are specified in `pt' (true length), not Cartesian
- units: A label's location relative to its alignment point should
- not depend on the logical or printed size of the figure.
-
- * The label text is enclosed in double quotes (the single
- character `"'), and contains the `LaTeX' code to generate the
- label. Backslashes are doubled.
-
-
-
-Old-style color declarations set the fill color, line color, and text
-color.
-
- rgb(r, g, b); cmyk(c, m, y, k);
- rgb(P); cmyk(P); // for function-controlled colors
- red(d); // similarly for other primaries
-
-
-
-File: epix.info, Node: Creating and Drawing Objects, Next: More About `C++', Prev: Drawing Attributes, Up: Reference Manual
-
-3.6 Creating and Drawing Objects
-================================
-
-Scene elements include geometric objects, coordinate grids, axis
-labels, and function plots. A few commands create an object (a point,
-line segment, circle, sphere, or plane) that can be used in subsequent
-computations, but most drawing commands automatically create, draw, and
-discard objects.
-
-
-
-The simplest object in the world, and by far the most common named data
-structure, is `P', an ordered triple of real numbers (double-precision
-floats). The function `P(x1,x2,x3)' creates the point (x_1,x_2,x_3). If
-only two arguments are provided, x_3=0 by default. This convention
-allows `ePiX' to treat 2- and 3-dimensional figures uniformly. The
-standard basis is available: `E_1=P(1,0,0)', etc.
-
- Depending on context, a `P' may represent either a _location_
-(point) or a _displacement_ (vector). Almost all `ePiX' functions treat
-a `P' as a point. However, algebraic operators and commands that plot
-vector fields treat `P' arguments as displacements.
-
- Polar, cylindrical, and spherical coordinate `P' constructors are
-sensitive to the current angular mode.
-
- P pt=polar(r,t); // (r*Cos(t), r*Sin(t), 0)
- P pt=cis(t); // (Cos(t), Sin(t), 0) = polar(1, t)
- P pt=cyl(r,t,z); // (r*Cos(t), r*Sin(t), z)
- P pt=sph(r,t,phi); // polar(r,t)*Cos(phi) + (0,0,r*Sin(phi))
-
- Algebraic operations--addition/subtraction, scalar multiplication;
-scalar, cross, and componentwise products; orthogonalization--can be
-performed on `P's. In compound expressions, the binary operators below
-should be enclosed in parentheses, and scalars must be collected at
-left, `P's at right.
-
- double u=pt.x1(); // first coordinate of pt, etc.
- P(a,b,c)|P(x,y,z); // scalar product, ax+by+cz
- P(a,b,c)&P(x,y,z); // componentwise product (ax, by, cz)
- P(a,b,c)*P(x,y,z); // cross product (bz-cy, cx-az, ay-bx)
- J(p); // quarter turn about the x3-axis
- p%q; // orthogonalization, p (mod q)
- Explicitly, `p\%q' is the unique vector `p+k*q' perpendicular to `q'.
-
- `P' operations express mathematical relationships, and therefore
-imbue a figure with logical structure, making the input file easier to
-read, modify, and maintain. Commonly, a file preamble will define a few
-named points with hard-coded coordinates, then define additional points
-of interest using `P' operators.
-
-
-
-In addition to `P', objects of type `Circle', `Plane', `Segment', and
-`Sphere' can be used for Euclidean geometry constructions. Simple
-affine operations are supplied for each type, as is a `draw()'
-function, which represents the object as a path in the screen.
-
- obj.shift(P arg); // translate by arg
- obj.move_to(P arg); // move center to arg
- obj.scale(double c); // scale about center by c
- obj.draw();
- A `Segment''s "center" is its midpoint. A `Plane' has no center;
-`move_to' translates the `Plane' to pass through `arg', and `scale' has
-no effect.
-
- A `Circle' data structure consists of a center, radius, and a
-perpendicular unit vector. Three constructors are provided:
-
- Circle(center=P(0,0,0), double rad=1, normal=E_3);
- Circle(P center, P point);
- Circle(P p1, P p2, P p3);
- The second constructor creates the `Circle' parallel to the (x_1,x_2)
-plane, with given center, and radius equal to the distance between the
-arguments. (A warning is printed if the second argument does not lie on
-the circle, namely, if the arguments do not lie in a plane parallel to
-the (x_1,x_2) plane.) The third returns the `Circle' passing through
-the given points; the points must not be collinear.
-
- The data defining a `Circle' are recovered with member functions
-named `center()', `radius()', and `perp()'.
-
- A `Plane' is specified by a point and normal vector, or by three
-non-collinear points. The `draw()' function clips the plane and draws
-the resulting polygon. Unless the clip box has been set manually, the
-clipped polygon's vertices will have large coordinates.
-
- A `Segment' is constructed from its endpoints. The member function
-`midpoint()' returns the center.
-
- A `Sphere' is specified by a point and a radius--by default the
-origin and unity, or by the center and a point on the sphere. Member
-functions `center()' and `radius()' return the defining data.
-Capabilities specific to geography and spherical geometry are described
-below, pp. *Note non-eucl::ff.
-
- The `draw()' function of a `Sphere' draws the horizon visible from
-the current viewpoint. While this horizon is a circle in object space,
-its image in the screen is generally an ellipse. Antipodal points are
-not generally mapped to points symmetrically placed with respect to the
-center of this ellipse. These effects are most pronounced when the
-viewpoint is close to the `Sphere' and the center is not close to the
-`target'.
-
-
-
-To facilitate geometric computation, `ePiX''s `Circle', `Plane',
-`Segment', and `Sphere' classes can be intersected with the `*'
-operator.
-
- A `Circle' has a center, radius, and unit normal; a `Plane' has a
-distinguished point and unit normal; a `Segment' has two endpoints; a
-`Sphere' has a center and radius. An object is _malformed_ if these
-conditions are not met. The constructors return well-formed objects
-with two exceptions: `Circle' and `Plane' create malformed objects if
-called with three collinear points. The operator `*' returns a
-malformed object if either argument is malformed, or if the operands
-are disjoint, tangent, or coincident. Malformedness is benign: Calling
-`draw()' on a malformed object does nothing.
-
-
-
-A `frame' comprises three mutually perpendicular unit vectors. The
-constructor takes three vectors. The `frame''s third vector e_3 is
-positively proportional to `v3', the second vector e_2 is positively
-proportional to `v2\%v3', and the first is the cross product,
-e_1=e_2\times e_3. Thus, a `frame' is right-handed, and does not depend
-on `v1'.
-
- The elements of a `frame' are named `sea', `sky', and `eye', just as
-for the `camera'. A `frame' can be rotated through an arbitrary angle
-about any of its elements.
-
- frame(); // the standard basis {E_1, E_2, E_3}
- frame fr(v1, v2, v3); // orthonormalize {v1, v2, v3}
- fr.sea(); // the first element of fr, etc.
- fr.rot1(theta); // rotate fr through theta about sea, etc.
-
-
-
-Basic path-like objects are drawn with named commands. Arguments of
-polygon commands are endpoints/vertices. Except for `line' and `Line',
-the following are subject to filling.
-
- line(P p1, P p2, [double expand]);
- Line(p1, p2); // draw line through p1, p2 (crop required)
- triangle(P p1, P p2, P p3);
- rect(P p1, P p2);
- quad(P p1, P p2, P p3, P p4); // quadrilateral
- circle(ctr=P(0,0,0), rad=1, normal=E_3);
- circle(ctr, pt);
- circle(pt1, pt2, pt3);
- The optional `line' argument is an expansion parameter:
-`line(p1,p2,t);' draws a segment centered at the midpoint of `p1' and
-`p2', with length scaled by 2^t/100. (Setting t=100 doubles the length,
-while t=-100 halves the length.) The arguments of `rect()' must lie in
-a plane parallel to a coordinate plane. The arguments to `circle'
-commands are the same as for `Circle' constructors.
-
- Quadratic and cubic splines are described by their control points. A
-list of `P' is drawn as a "natural" spline (the C^2 piecewise cubic
-curve with vanishing second derivatives at the endpoints); the number
-of points per cubic segment must be specified. Circular and elliptical
-arcs are given by center, a basis, angular range, and an optional
-number of intervals.
-
- spline(P p1, P p2, P p3, [int n]); // quadratic
- spline(P p1, P p2, P p3, P p4, [int n]); // cubic
- spline(vector<P>, int n); // natural spline
-
- arc(P ctr, rad, t_min, t_max); // parallel to (x1,x2)-plane
- ellipse(P ctr, P v1, P v2); // in plane spanned by v1, v2
- ellipse(P ctr, P v1, P v2, t_min, t_max, [int n]);
- If parameter bounds are omitted in an `ellipse' command, the entire
-ellipse is drawn. When the angular range subtends one or more full
-turns in an `arc' or `ellipse' the curve is subject to filling.
-
- Commands for planar (half-)ellipses remain from `ePiX''s early days:
-
- ellipse(P ctr, P radius);
- ellipse_left(P ctr, P radius);
- ellipse_right(P ctr, P radius);
- ellipse_top(P ctr, P radius);
- ellipse_bottom(P ctr, P radius);
- If `radius' is `P(a,b)', these commands draw all or half of the
-ellipse with given center in the (x_1,x_2) plane, axes parallel to the
-coordinate axes, and axis lengths 2a and 2b.
-
- Two commands are available to mark off right angles or a subtended
-angle. Each accepts a spatial location and two non-zero directions, and
-draws a scene element in the plane spanned by the vectors.
-
- right_angle(P loc, P v1, P v2, scale=8);
- arc_measure(P loc, P v1, P v2, scale=8);
- arc_measure(P loc, P v1, P v2, offset, text, align, scale=8);
- The `right_angle' command does not check its arguments for
-perpendicularity. The `arc_measure' commands mark the _small_ angle
-subtended by the directions; the label form places a label at the
-midpoint of the arc. The (optional) `scale' argument is the true size
-in `pt' of the marker.
-
-
-
-Consider a path made up of equal-length segments that can point at any
-angle of the form 2\pi k/n radians, for 0\leq k<n, like spokes on a
-wheel. A path is specified by a finite sequence of integers, taken
-modulo n. For example, if n=6, then the sequence 0, 1, -1, 0 corresponds
-to the ASCII path _/_. `ePiX''s fractal approximation starts with such
-a "seed" then recursively (up to a specified depth) replaces each
-segment with a scaled and rotated copy of the seed, Figure *Note
-fig:fractal::, . The seed above generates the standard von Koch
-snowflake fractal. In code:
-
- const int seed[] = {6, 4, 0, 1, -1, 0};
- fractal(P(a,b), P(c,d), depth, seed);
- The first entry of `seed[]' (here 6) is the number of "spokes" n, the
-second (4) is the number of terms in the seed, and the remaining
-entries are the seed proper. The final path joins (a,b) to (c,d). The
-number of segments in the final path grows exponentially in the depth,
-so depths larger than 5 or 6 are likely to exceed the capabilities of
-`LaTeX' and/or PostScript.
-
-[Image]
-
-Figure[hbt]
-
-
-
-Line segments, splines, and arcs can be drawn with arrowheads at one
-end. In profile, an arrowhead's width is `3pt', and its height is 5.5
-times the width. The actual printed height depends on the head's
-orientation with respect to the camera. By default, an arrowhead is a
-filled triangle. The shape and size are adjusted with declarations:
-
- arrow_width(w=3); // width in pt
- arrow_ratio(r=5.5); // height-to-width
- arrow_inset(c=0); // base indent as frac of ht
- [Image]\qquad [Image]\qquad [Image] \\ The `inset' must be between -1
-and 1. Each `arrow' command accepts an optional `scale' argument, which
-scales the arrowhead.
-
- arrow(P tail, P tip, [scale]);
- arrow(P p1, P p2, P p3, [scale]); // spline arrows
- arrow(P p1, P p2, P p3, P p4, [scale]);
- arrow(P ctr, P v1, P v2, t_min, t_max, [scale]); // ellipse
- A few "special-purpose" commands are supplied:
-
- dart (P p1, P p2); // same as arrow(p1, p2, 0.5);
- aarrow(P p1, P p2); // double-headed arrow <--->
- arc_arrow(ctr, rad, t_min, t_max, [scale]);
- If an `arc_arrow' is too short, nothing is drawn.
-
-
-
-`ePiX' provides an `axis' class for coordinate axes. Labels are
-generated automatically in a variety of styles: decimal, scientific
-notation, fraction, and trigonometric fraction. Logarithmic axes and
-labels are available. Axis and labeling commands from Version 1.0 have
-been retained.
-
-
-
-An `axis' consists of a line segment divided into a specified number of
-equal-length subintervals by "major" (long) tick marks. Each
-subinterval may be divided further by "minor" (short) tick marks.
-Minor ticks may be equally-spaced ("Cartesian") or logarithmically
-placed. Finally, a label is written at each major tick mark with
-specified offset and alignment. Labels are generated automatically from
-the endpoints, so the line should be parallel to a coordinate axis.
-Label attributes (masking, borders, font size and face, rotation angle)
-are determined by the current label style, not by the `axis'.
-
- The command
-
- axis(P tail, P head, int n, P offset=P(0,0), [align = none]);
- creates an axis joining `tail' to `head', divided into `n' segments of
-equal length, with a major tick mark and label at each division point
-and endpoint. The `offset' and `align' arguments have the same meaning
-as for ordinary labels.
-
- The number and length of minor ticks, and the alignment of ticks, are
-controlled with member functions:
-
- axis Ax(P(a,c), P(b,c), n);
- Ax.subdivide(n); // put n-1 minor ticks in each axis segment
- Ax.tick_ratio(r); // minor length = r*major length
- Ax.align(AL=c); // align all ticks; AL = t, b, l, r, or c
- By default, major ticks are `6pt' long and twice the length of minor
-ticks. The global declaration `tick_size(len)' sets the major length,
-subject to "reasonable stylistic limits". For visual consistency, tick
-lengths should not be changed casually.
-
- Labels on an `axis' may be drawn in several styles, selected with
-member functions:
-
- Ax.dec(); // decimals (default)
- Ax.frac(); // fractions, e.g. 0.5 -> \frac{1}{2}
- Ax.trig(); // fractional multiples of \pi
- Ax.sci(); // scientific notation, k\times base^N
-
- Ax.unmark(double); // remove label at selected location
- Ax.precision(p); // set number of digits for decimal labels
- Ax.align_labels(AL); // re-align labels
- Arbitrary textual labels depending on one coordinate are obtained by
-writing a `string'-valued function of `double' and "registering" it:
-
- // f represents x as a string in given precision and base
- std::string f(double x, unsigned int prec, unsigned int base);
- Ax.label_rep(f);
- For example, textual tags can be printed instead of numeric labels.
-
- By default, an `axis' is Cartesian. The member function `log(int
-b=10)' converts an `axis' to "log mode" with specified base; this
-affects both tick marks and labeling. If `b' is at least 3, minor tick
-marks appropriate for a logarithmic axis base `b' are drawn. Second,
-labels are written in decimal or scientific notation appropriately for
-a logarithmic axis; that is, "k\times b^N" (or its decimal value) is
-written at location N+\log_b k.
-
- Minor ticks of a log `axis' may be labeled individually; again, this
-is controlled with member functions:
-
- Ax.tag(d); // labels at N+log_b(d)
- Ax.tag235(); // tag 2, 3, and 5 if b=10
- Ax.tags(); // tag 1, ..., b-1
- Ax.untag(); // remove all tags, including 1
- Ax.untag(double); // remove one tag, e.g. Ax.untag(9);
-
- For convenience, an `axis' object along an edge of the active
-`screen' can be created with a named command:
-
- top_axis(n, offset, align);
- bottom_axis(n, offset, align);
- left_axis(n, offset, align);
- right_axis(n, offset, align);
- The ticks automatically point into the bounding box.
-
- The functions above create objects or set `axis' attributes, but
-write no output. Tick marks and labels can be printed separately, or at
-once:
-
- Ax.draw(); // axis, tick marks, and labels
- Ax.draw_ticks(); // axis and ticks only
- Ax.draw_labels();
-
-
-
-`ePiX' formerly supplied commands for drawing simple axes and their
-labels. These commands have been kept for compatibility. Horizontal
-axes are generated with
-
- h_axis(p1, p2, n, align=c); // n subintervals (n+1 ticks)
- h_log_axis(p1, p2, n, align=c, base=10);
- For vertical axes, use `v_axis'. The style of tick mark is
-appropriate for an axis of the given type. Horizontal axis tick marks
-may be aligned `t' (above the axis) or `b' (below). Similarly, vertical
-axis ticks may be aligned `r' or `l'.
-
- The endpoint arguments of a coordinate axis may be omitted, in which
-case they default to p_1=(x_min,0) and p_2=(x_max,0) for a horizontal
-axis, or to p_1=(0,y_min) and p_2=(0,y_max) for a vertical axis. If the
-bounding box has integer width and/or height, omitting the number of
-points draws tick marks one unit apart.
-
- Labels for a horizontal Cartesian or logarithmic axis are generated
-with the commands
-
- h_axis_labels(P p1, P p2, int n, P offset, [align]);
- h_axis_masklabels(p1, p2, n, offset, [align]);
- h_axis_log_labels(p1, p2, [n], offset, [align], base=10);
- h_axis_log_masklabels(p1, p2, [n], offset, [align], base=10);
- Labels for a vertical axis are generated with `v_axis_labels', etc.
-The labels are automatically generated to match their horizontal
-location. The first puts (n+1) evenly-spaced labels on the segment
-joining `p1' and `p2'. As with ordinary labels, the `offset' is in
-`pt', and the optional `LaTeX'-style alignment option positions the
-labels using their corners. The second command draws masked labels
-according to the current label masking attributes. The third writes
-labels in exponential notation, using the Cartesian coordinate as
-exponent.
-
- As for coordinate axes, the initial and final points may be omitted
-in an `axis_[mask]labels' command, with the same defaults. The
-`offset' and number of labels must always be specified.
-
-
-
-Broken axes are best drawn using page layout, especially if axis labels
-are to be drawn. To accomplish the task, create a screen for each piece
-of axis, using appropriate Cartesian coordinates for the corners, then
-`inset' the screens so the axis pieces are nearly end to end. A zig-zag
-glyph signifies the break:
-
- axis_break(P, P, scale=12);
- The `P' arguments are the screen coordinates of the ends to be joined;
-the optional third argument is the true height and width in `pt' of the
-glyph. The sample file `coord_tricks.xp' uses layout and axis breaks.
-
-
-
-Cartesian grids fill a coordinate rectangle, and have a specified
-number of lines in each direction. A polar grid has specified radius,
-and numbers of rings and sectors.
-
- grid(n1, n2); // fills the bounding box
- grid(p1, p2, n1, n2); // fills the box with corners p1, p2
- polar_grid(r, n1, n2);
-
- Log and semi-log grids are drawn with analogous syntax:
-
- log_grid (p1, p2, n1, n2, [base1], [base2]); // log-log
- log1_grid(p1, p2, n1, n2, [base]); // log-lin
- log2_grid(p1, p2, n1, n2, [base]); // lin-log
- The n_i arguments dictate the number of squares, namely the number of
-orders of magnitude spanned in the logarithmic direction(s). The
-(optional) base arguments default to 10, and control the number of
-lines drawn per order of magnitude. As with Cartesian grids, the
-corners are optional; if omitted, the grid fills the bounding box.
-
- Graph paper may be created by superimposing grids:
-
- pen(0.25);
- grid(10*xsize(), 10*ysize());
- pen(0.5);
- grid(2*xsize(), 2*ysize());
- pen(1);
- grid(xsize(), ysize());
-
-
-
-A `path' data structure is an ordered list of points that can be
-cropped, clipped, mapped, concatenated, and drawn. The first four
-constructors mirror polygon-drawing commands above. Function graphs
-and parametric paths are built from a real- or `P'-valued function `f'
-of one variable.
-
- path(p1, p2, expand=0); // line (endpoints)
- path(p1, p2, p3, [n]); // quadratic spline
- path(p1, p2, p3, p4, [n]); // cubic spline
- path(p1, v1, v2, t_min, t_max, [n]); // ellipse
- path(f, t_min, t_max, [n]);
-
- The member function `pt()' accepts a `P' or three (or two) doubles
-and appends the specified point to a `path'. This snippet creates a
-regular n-gon:
-
- path ngon; // declare new path
- for (int i=0; i<=n; ++i)
- ngon.pt(cis(i*full_turn()/n)); // works in all angle modes
- Compound paths may be built by concatenation. If `path1' and `path2'
-share an endpoint, the commands
-
- path1 += path2;
- path1 -= path2;
- replace `path1' with the result of traversing `path1' "forward", then
-following `path2' in the forward or reverse direction (respectively).
-For expected results, the first (or last) point on `path2' should be
-the last point of `path1'. The notation suggests 1-dimensional homology
-chains. The sample file `contour.xp' illustrates path creation and
-manipulation.
-
- A `path' is a data structure, and must be drawn explicitly to create
-visible output. By default a `path' is not a closed loop (even if the
-first and last points are the same), and is not filled when drawn.
-Member functions perform these tasks. Continuing the n-gon snippet
-above,
-
- ngon.close(); // mark path as closed
- ngon.fill(); // draw filled region if filling is active
- ngon.draw(); // print to the screen
- `path::close()' adds a closing edge if necessary. Once a `path' is
-closed, no more points can be added. A closed path clips and crops
-differently than an open `path' with the same data. `path::fill()' has
-no effect on an unclosed `path'.
-
-
-
-The noun "map" refers to a `C++' function that accepts one or more
-`double' arguments and returns a `double' or a `P'. Mathematically, a
-map can be depicted in two ways: as a graph (which retains information
-about the domain), or as a parametrized curve or surface (which
-discards domain information). `ePiX' assumes that `double'-valued maps
-are graphed and `P'-valued maps are drawn parametrically. Either sort
-of depiction is called a "plot". `ePiX' plots are either "wire mesh",
-produced by a `plot' command, or "shaded", produced by a `surface'
-command.
-
-
-
-For the moment, "function" means "function of one variable" (precisely,
-a `double'-valued function of a `double' variable). A function graph
-depends on the domain and the number of points to use. Each of the
-commands
-
- plot(f, t_min, t_max, n);
- polarplot(f, t_min, t_max, n);
- shadeplot(f, t_min, t_max, n);
- graphs the function `f' on the interval `[t_min, t_max]' by dividing
-the interval into `n' subintervals of equal length. The first gives a
-Cartesian plot, the second a polar plot with bounds in current angular
-units, the third shades the region between the graph and the horizontal
-axis. If two functions are given to `shadeplot', the region between
-their graphs is shaded.
-
-
-
-An `ePiX' `domain' is a coordinate box of dimension one, two, or three,
-specified by a pair of opposite corners and two _meshes_ ("coarse" and
-"fine", respectively) which specify the amount of data to be plotted.
-Plotting is explained in detail below.
-
- // [a1,a2] x [b1,b2]: n1 x n2 rectangles, m1 x m2 intervals
- domain R2(P(a1,b1), P(a2,b2), mesh(n1,n2), [mesh(m1,m2)]);
-
- // [a1,a2] x [b1,b2] x [c1,c2] divided analogously
- domain R3(P(a1,b1,c1), P(a2,b2,c2),
- mesh(n1,n2,n3), [mesh(m1,m2,m3)]);
- If unspecified, the fine mesh is the same as the coarse mesh. For
-expected behavior, the coarse mesh should "divide" the fine mesh, in
-that m_i should be a (usually small) integer multiple of n_i for each i.
-
- A `domain' may be _resized_ in any coordinate for which the
-thickness is positive, and can be _sliced_ by setting one variable to a
-constant. The result of slicing is a `domain' whose dimension is one
-smaller than the original. Finally, "`slices'" operators return the
-list of `domain's obtained by setting one variable to evenly-spaced
-constants. By default, the number of slices is specified by the coarse
-mesh. An optional argument specifies the number of slices. This
-argument need not be related to the coarse mesh.
-
- R2.resize2(a,b); // [a1,b1] x [a,b]
- R2.slice1(t); // set x1 = t
- R3.slices3([n]); // (n+1) domains with x3 = const
-[Image]
-
- \smallskip When possible, resizing preserves grid square sizes.
-Generally, though, integer truncation occurs: If `R=domain(P(0,0),
-P(1,1), mesh(10,6))', then `R.resize1(0,0.25)' is the rectangle
-[0,0.25]\times[0,1] subdivided into 2\times6 subrectangles, since
-10\div4=2 in integer arithmetic. For expected behavior, choose mesh
-sizes to avoid integer truncation.
-
- The arguments of a `plot' command are a map, followed by either a
-domain or its logical equivalent.
-
- double f(double t) { return t*t; }
- P F(double u, double v) { return P(u, v, exp(u)*Sin(v)); }
- P G(double u, double v, double w) { return P(v*w, u*w, u*v); }
-
- plot(f, a, b, n); // f:[a,b] -> R, using n intervals
- plot(F, R2); // graph of exp(u)*Sin(v)
- plot(G, R3.slice2(0.5); // G: R^3 -> R^3 restricted to y=0.5
- By (compiler-enforced) convention, `plot' commands involving a
-`P'-valued map accept a `domain' argument, as in the second and third
-commands above. To plot a `double'-valued function, by contrast, supply
-the logical equivalent of a `domain', usually the endpoints and the
-number of intervals, as in the first `plot' command above.
-
- Resizing and slicing allow a map `F' to be plotted selectively over
-parts of its domain. This can be used to emphasize parts of the image,
-layer scene elements, patch surfaces together, and so forth. Resize
-and slice(s) commands may be used directly in a `plot' command:
-
- plot(F, R2.resize1(0,0.5));
- plot(F, R2.slices1());
-
-
-
-The `P' arguments of a `domain' are a pair of opposite corners. The
-first `mesh' argument, the _coarse_ mesh, specifies the number of
-subdivisions in each coordinate direction. The second `mesh', the
-_fine_ mesh, determines the number of points used in each direction
-when plotting.
-
- Separating the roles of coarse and fine meshes allows a plot to
-conform closely to a surface without using a fine grid of curves. Both
-parts of Figure *Note fig:plot::, are drawn with a 6\times20 coarse
-mesh. In the first picture, the fine mesh is also 6\times20, while in
-the second, the fine mesh is 12\times60.
-
-
-[Image] [Image]
-
-Figure[hbt]
-
- The coarse mesh is significant only for domains of dimension at
-least 2. The coarse mesh's size determines the number of curves or
-surfaces plotted _perpendicularly_ to a coordinate direction, while the
-fine mesh's size determines the number of segments used _along_ that
-direction. For predictable results, the fine mesh should be a small
-multiple of the coarse mesh.
-
- Plotting works analogously for 3-dimensional `domain's and maps
-depending on three variables: The "one-dimensional skeleton" of the
-`domain''s image is drawn. A `P'-valued map of three variables can be
-plotted over a 1- or 2-dimensional `domain'. (The effect may be
-unexpected unless the domain arises by slicing, however.) A map
-depending on one or two variables cannot be plotted over a
-3-dimensional `domain'.
-
-
-
-`ePiX''s shaded surface plotting implements a degree of hidden surface
-removal. The algorithm breaks a surface into mesh fragments, sorts them
-in decreasing (approximate) distance to the camera, and prints them.
-If filling is active, a mesh fragment is shaded according to the angle
-between the normal vector and the direction to the camera, simulating
-constant ambient lighting; otherwise, the current fill color is used.
-This technique works fairly well for surfaces without intersection, and
-even acceptably handles intersecting surfaces for which mesh elements
-intersect only along boundaries.
-
- The syntax of a `surface' command is identical to a `plot' command
-when only a single surface is drawn. For example,
-
- surface(F, R, cull=0);
- plots the `P'-valued function `F' over the domain `R', the shaded
-equivalent of the corresponding `plot' command. The optional `cull'
-argument removes elements that point toward (`cull=-1') or away from
-(`cull=1') the camera. Naturally, orientation of mesh elements depends
-on the parametrization `F', not merely on the surface. Culling reduces
-the output file size, but is useful mostly for closed, convex surfaces.
-
- There are special commands for surfaces of rotation; each accepts a
-final `cull' argument.
-
- surface_rev(f, t_min, t_max, n_lats, n_longs);
- surface_rev(f, g, t_min, t_max, n_lats, n_longs=24);
- surface_rev(f, g, R, frame coords);
- The first revolves the graph of f about the x-axis, the second uses
-the parametric curve t\mapsto\bigl(f(t),g(t)\bigr) as profile. In each
-case, the parameter interval [t_min,t_max] is divided into n_lats
-equal-length subintervals, n_longs copies of the profile curve are
-drawn, and the complete surface (one full turn) is drawn.
-
- The third form uses a `domain' to control the range of longitudes,
-and draws a surface of rotation in the Cartesian coordinate system
-defined by the orthonormal basis `coords', by default the standard
-basis. The arguments `f' and `g' define a parametric curve in the plane
-spanned by the first two elements of `coords', and the first element is
-the axis of rotation.
-
- As in wire mesh plotting, the fine mesh is used to draw the
-boundaries of surface patches; this tends to make surfaces look
-smoother for modest-sized coarse meshes. If the coarse mesh is too
-coarse, however, two visually undesirable effects can occur. First,
-adjacent regions of the surface may be shaded very differently, since
-shading is constant over patches defined by the coarse mesh. Second, a
-patch nearly tangent to a line of sight may be drawn badly if the patch
-bends back on itself, since the boundary of the _patch_ is drawn, not
-the visible edge of the mathematical surface. See
-`samples/artifacts.xp'.
-
-
-
-A scene containing two or more shaded surfaces cannot generally be
-built up one surface at a time. Instead, multiple surfaces must be
-assembled into a single data structure before they can be drawn.
-Multiple surfaces are built from one or more maps and one or more
-2-dimensional `domain's. In the code snippets below, `F' and `G' are
-`P'-valued functions of 3 variables, and `R' is a 3-dimensional
-`domain'.
-
- To plot the images of several `domain's under a _single map_,
-assemble the `domain's into a list if necessary, then issue a `surface'
-command:
-
- surface(F, R.slices3(), cull=0);
-
- domain_list DL(R.slice1(0)); // build domain list
- DL.add(R.slice2(0.5)); // add a domain, etc.
- surface(G, DL, cull=0); // draw
- For multiple maps, `ePiX' provides the `scenery' class. Conceptually,
-`scenery' is an agglomeration of shaded surfaces, built one surface at
-a time from maps and 2-dimensional `domain's. The `add' function
-accepts two arguments--a map, and either a `domain' or a list of
-`domain's--and contributes its data to the `scenery' rather than
-plotting immediately. Completed `scenery' is drawn manually.
-
- scenery S(F, R.slice3(0.25)); // S contains one surface
- S.add(F, R.slice2(0)); // S contains two surfaces
- S.add(G, R.slices1(3)); // S contains six surfaces
- S.draw(cull=0);
- Complete examples are included in the `samples' directory:
-`spherical.xp' and `minkowski.xp'.
-
- In principle, a scene may contain arbitrarily many surfaces. However,
-figures that contain many objects tend to tax `LaTeX''s internal
-stacks. Frequent color changes exacerbate the problem. Even if you use
-`hugelatex' (or increase `LaTeX''s memory), a figure containing more
-than a few thousand mesh elements is unlikely to compile. At moderate
-resolution, a surface can easily contain 1000 patches. Each shell
-script has a command-line option to invoke `hugelatex'; your mileage
-may vary.
-
-
-
-By default, a `surface' or `scenery' is colored according to the
-current fill color. For finer control, each `surface', `surface_rev',
-and `scenery' command accepts an optional position-dependent `color'
-specification.
-
- surface(F, R, color, cull=0);
- surface_rev(f, [g], t_min, t_max, n_lats, n_longs, color);
- surface_rev(f, g, R, color, [coords]);
-
- scenery S(F, R, color);
- S.add(F, R, color);
- The `color' argument is a `P'-valued function of two or three
-`double's whose output is interpreted as a set of `RGB' densities. If
-`color' takes two arguments, they are `domain' coordinates, and the
-surface is colored according to parameter values. If `color' takes
-three arguments, they are Cartesian coordinates, and the surface is
-colored according to spatial location. Please see the sample files
-`surface_shade.xp' and `S2_harmonics.xp'.
-
-
-
-`ePiX' provides high-level commands for plotting derivatives and
-definite integrals, Riemann sums, tangent lines, slope- and vector
-fields, and solutions of planar and spatial systems of differential
-equations.
-
- In this section, `f' and `g' are `double'-valued functions of one
-variable.
-
-
-
-
- sup(f, a, b); // max/min of f on [a,b]
- inf(f, a, b);
- newton(f, g, x0); // find approximate crossing point
- Newton's method returns the crossing point of the given functions,
-starting from the specified seed, which should be reasonably close to
-the expected solution. If a critical point is hit or 5 iterations pass,
-a warning is issued and the current result (probably incorrect) is
-returned. The second function g defaults to the zero function if
-omitted.
-
-
-
-The classes `Deriv' and `Integral' are used to calculate values of
-derivatives and integrals, and to plot these functions.
-
- Deriv df(f); // function object: df(x) = f'(x)
- df.eval(t); // return f'(t)
- df.left(t); // deriv from left at t: (f(t)-f(t-dt))/dt
- df.right(t); // deriv from right at t: (f(t+dt)-f(t))/dt
-
- Integral prim(f,a); // function object: prim(x) = int_a^x f
- prim.eval(b); // numerical integral of f over [a,b]
- double val(Integral(f).eval(1)); // val = \int_0^1 f
- The lower limit on an integral is 0 by default. `Deriv's and
-`Integral's can be used directly in a `plot' command:
-
- plot(Deriv(f), a, b, n); // plot f' over [a,b]
- plot(Integral(f, x0), a, b, n);
- riemann_sum(f, a, b, n, TYPE);
- The second graphs the definite integral x\mapsto\int_x_0^x f(t)\,dt
-over [a,b]. As above, x_0 defaults to 0. The third draws rectangles or
-trapezoids whose area approximates the definite integral of f over
-[a,b]. The `TYPE' may be `UPPER', `LOWER', `LEFT', `RIGHT', `MIDPT', or
-`TRAP'.
-
- Tangent lines and envelopes (families of tangent lines) are drawn
-with
-
- tan_line(f, t); // f real- or vector-valued
- envelope(f, t_min, t_max, n); // family of tangent lines
- tan_field(f, g, t_min, t_max, n); // field of tangents
- The sample files `conic.xp' and `lissajous.xp' illustrate these
-features.
-
-
-
-Let `F' be a `P'-valued function of two or three variables.
-
- ode_plot(F, p_0, t_min, t_max, n);
- flow(F, p_0, t_max, n);
- The first plots the solution curve of the initial-value problem
-\dotx=F(x), x(0)=p_0, over the specified time interval. If t_min is
-omitted, its value is 0, so the curve starts at p_0. With manual
-calculation to rotate a planar field a quarter turn, `ode_plot' can be
-used to draw level curves (isobars) of a function of two variables; see
-the sample file `dipole.xp'. The `flow' function returns the result of
-starting at p_0 and flowing by F for time t_max, using Euler's method
-with n time steps. This is useful for placing markers or arrowheads
-precisely along a flow line.
-
- A planar or spatial vector field itself may be plotted over a domain
-`R' in three styles:
-
- vector_field(F, R, [scale]); // true length
- dart_field (F, R, [scale]); // const length
- slope_field (F, R, [scale]); // const length
- The field is sampled at the grid points of the coarse mesh. If the
-domain is 2-dimensional, the plot is a planar slice of the field, even
-if the field depends on three variables. If the domain is
-3-dimensional, the field is drawn in successive slices x_3=const,
-starting at the height of the first corner of `R' and ending at the
-height of the second corner.
-
- The optional final argument, which defaults to 1, scales the
-arrowheads in a vector field, and scales the (constant) length of field
-elements for slope and dart fields. The sample files `layout2.xp',
-`lorenz.xp', `slopefield.xp', and `vfield.xp' illustrate usage.
-
- In each field-plotting command, the domain argument may be replaced
-by two points, representing corners of a coordinate rectangle, and two
-integers, the number of grid intervals in the selected coordinate
-directions. Only planar slices of a vector field can be plotted using
-the alternative syntax.
-
-
-
-`ePiX' provides limited features for spherical and hyperbolic geometry:
-the ability to draw lines in the half-plane and Poincar\'e disk models
-of the hyperbolic plane, and to draw latitudes, longitudes, great
-circle arcs, spherical triangles, regular polyhedra, and parametrized
-curves on a sphere.
-
- Hyperbolic line segments are specified by their endpoints in the
-upper half space or ball (Poincar\'e) models. In each case there is no
-output if either endpoint lies outside the model.
-
- hyperbolic_line(p, q);
- disk_line(p, q);
- For compatibility with 2-dimensional hyperbolic space, the half-space
-model is the set \(x_1,x_2,x_3)\mid x_2>0\.
-
- A `frame' determines geographical coordinates on a `Sphere': the
-first element points toward longitude 0 on the equator, the third
-element points to the north pole. A latitude line depends on a
-`Sphere', a `frame', the numerical latitude, and a range of longitudes.
-A longitude line is described similarly.
-
- latitude(lat, long_min, long_max, Sphere S, frame coords);
- longitude(lngtd, lat_min, lat_max, Sphere S, frame coords);
- By default, `coords' is the standard `frame' and `S' is the unit
-sphere. These commands draw only the portion of the curve that is
-visible from the current viewpoint. The function `back_latitude' draws
-the invisible portion of a latitude line.
-
- Spherical arcs and triangles are described by their endpoints. Only
-the direction vector from the center of the sphere to an endpoint is
-significant; if a sphere is scaled or moved, the same function call
-will draw the corresponding object on the new sphere.
-
- The following draw the visible (front) portions of great circle arcs:
-
- front_arc(p1, p2, S); // short arc on S from p1 to p2
- front_arc2(p1, p2, S); // arc from p1 to -p1 through p2
- front_line(p1, p2, S); // great circle through p1 and p2
- Triangles and regular (Platonic) polyhedra are provided. The sample
-file `sample/polyhedra.xp' illustrates usage.
-
- front_triangle(p1, p2, p3, S); // spherical triangle
- front_tetra(S, coords); // regular tetrahedron
- front_cube(S, coords); // hexahedron
- front_octa(S, coords); // octahedron
- front_dodeca(S, coords); // dodecahedron
- front_icosa(S, coords); // icosahedron
- Each function has a `back' version, which draws the hidden portion.
-The tetrahedron, cube, and octahedron are (up to scale) inscribed in
-the cube of side length 2 centered at the origin whose sides are
-parallel to `frame'. The point (1,1,1) is a vertex of the tetrahedron.
-
- Up to scale, the icosahedron's vertices lie on the golden rectangle
-with vertices (\pm\gamma,0,\pm1) and its images under cyclic
-permutation of coordinates. The dodecahedron is dual to the icosahedron.
-
-
-
-Parametrized paths on a `Sphere S' (by default the unit sphere) can be
-specified either by radial projection of a `P'-valued curve, or by
-stereographic projection of a plane curve given as a pair of
-`double'-valued functions:
-
- frontplot_R(phi, t_min, t_max, n, [S]); // radial
- frontplot_N(f1, f2, t_min, t_max, n, [S]); // from north pole
- frontplot_S(f1, f2, t_min, t_max, n, [S]); // from south pole
- Attempts to perform radial projection on a path through the origin
-will generate division-by-zero errors. Stereographic projection maps
-the equatorial plane \x_3=0\ to the unit sphere by projection from the
-corresponding pole: N=(0,0,1), S=(0,0,-1).
-
- Each spherical plot command has a `back' version that prints only
-the portion of the path invisible from the current viewpoint. Because
-of the way `ePiX' layers output, it is generally best to put hidden
-portions of the input before visible portions, with line width and/or
-style that suggests hidden lines.
-
-
-
-Files of numerical data can be created, manipulated, analyzed, plotted
-(paths, scatter plots, and histograms), read, and written. The format
-for a data file is one or more floating-point numbers per line, with
-the same number of entries per line. Anything that appears on a line
-after the `LaTeX' comment character `\%' is a comment.
-
- `ePiX' provides two `plot' commands for file data. The first
-facilitates plotting selected columns; the second simplifies plotting
-the first two columns with one or both scales logarithmic. Either form
-can be used to plot selected columns logarithmically.
-
- The general commands read numbers from two or three columns of a
-specified file, pass them as arguments to a `P'-valued function `F',
-and plot the resulting points:
-
- plot("filename", STYLE, [i_1], [i_2], [i_3], [F]);
- plot("filename", STYLE, F, [i_1], [i_2], [i_3]);
- The first argument is the name of the data file. The `STYLE' may be
-`PATH', which joins the points in the order they appear, or any of the
-marker types in Table *Note table:marker::, . The integers i_k specify
-columns from which to extract data; these default, respectively, to the
-first column, second column, and null (a column of zeroes). If the
-"coordinate system" `F' is omitted in the first command, it defaults to
-the Cartesian point constructor. The function `F' is mandatory in the
-second form; useful choices include `log_log', `log_lin', and
-`lin_log', which plot the corresponding coordinate logarithmically.
-
-
-
-For more elaborate analysis, the `data_file' class presents an
-interface to a file as an ordered list of columns. There are two
-general ways to create a `data_file': read in an external file, or
-generate data (up to three columns) using specified `double'-valued
-functions. In the constructors below, each function `fi' is a
-`double'-valued function of one variable.
-
- data_file DF("my_data"); // read data from disk file
- data_file DF(f1, t_min, t_max, num_pts); // values of f1
- data_file DF(f1, f2, t_min, t_max, num_pts);
- data_file DF(f1, f2, f3, t_min, t_max, num_pts);
- data_file DF(3); // create empty data_file with 3 columns
- DF.read("file1"); // read a disk file
-
- Columns of a `data_file' can be transformed by a user-specified
-function, averaged, correlated, extracted (for use by other code),
-scatter plotted, and written to a disk file at specified precision.
-Below, the function `f' is a `double'-valued function of one variable
-and `F' is a `P'-valued function of two or three variables, whose
-components are written back to the selected columns.
-
- DF.transform(f, i); // apply f to selected column(s)
- DF.transform(F, i=1, j=2);
- DF.transform(F, i, j, k);
- Basic statistical operations on columns are provided.
-
- DF.dot(i,j); // dot product of columns i, j
- DF.avg(i); // mean of column i
- DF.var(i); // population variance
- DF.covar(i,j); // covariance
- DF.regression(i,j); // plot regression line
- A `data_file' is scatter plotted using syntax as described above. %
-The output is cropped automatically to the bounding box.
-
- DF.plot(STYLE, [i1], [i2], [i3], [F]);
- DF.plot(STYLE, F, [i1], [i2], [i3]);
- Histograms and bar charts are described below.
-
- A `data_file' can be written to a disk file as raw data, or in
-specified format. Below, `fmt' denotes a `string'-valued formatting
-function of two variables and `myfile' is the name of the disk file to
-be written.
-
- DF.precision(4); // set to 4 significant figures
- DF.write("myfile"); // write as tab-separated columns
- DF.write("myfile", fmt, [i1], [i2]); // apply fmt to cols
- A column can be extracted as a `C++' `vector' for use by another
-function.
-
- DF.column(i); // i-th column
- DF.column(f, i); // i-th column, transformed by f
-
-
-
-`ePiX' provides a `data_mask' class for culling data from a file
-according to the values in a specified column, and a `data_bins' class
-for sorting data by value.
-
- A `data_mask' consists of an interval of numbers and a "filter"
-function. The (closed, open, or half-open) interval is given as a
-string in standard mathematical notation, or by its endpoints (for a
-closed interval). The filter is a `double'-valued function of
-`double', by default the identity, f(x)=x.
-
- data_mask dm("[a, b]", [f]);
- data_mask dm(a, b, [f]);
- A `data_mask' "passes" inputs x if f(x) lies in the interval. The
-member function `reverse()' inverts this logical test.
-
- The `data_file' class has `prune' functions to cull rows for which a
-specified column's entry satisfies a `data_mask''s criterion.
-
- DF.prune(dm, i); // remove row if i-th column entry fails
- DF.prune(a, b, i); // remove row if i-th column outside [a,b]
-
- A `data_bins' object models an interval divided at specified
-locations into "bins", not necessarily of equal length. Numerical data
-is read in and the number of points in each bin counted. The lifetime
-of a `data_bins' object has two stages. First, "cuts" (endpoints of
-subintervals) are added. Then, once data is read, the cuts are "locked"
-and cannot subsequently be changed.
-
- // [xmin, xmax] divided into n equal intervals, 1 by default
- data_bins db(xmin, xmax, [n]);
- db.cut(x); // add a cut at x (if x is in bounds)
- db.read(vector<double>); // read data, lock bins
-
- A `data_bins' object can be plotted as a histogram (rectangles'
-_area_ is proportional to the bin population), bar chart (rectangles'
-_height_ is proportional to the bin population), or spline
-interpolation of a bar chart.
-
- db.histogram(c=1); // c = vertical scale factor
- db.bar_chart(c=1);
- db.plot(c=1);
- By default (`c=1'), the height of a bar chart rectangle is the
-fraction of the total population contained in the bin; thus, the height
-is always between 0 and 1. For a histogram, the height of a rectangle
-is the fraction of the population per horizontal unit in the bin; thus,
-the total area over an interval [a,b] does not depend on how [a,b] has
-been subdivided. The sample files `dataplot.xp' and `histogram.xp'
-illustrate use.
-
- Statistical convention dictates cuts be chosen distinctly from data
-values; that is, values should all fall strictly within a bin, not at a
-boundary point. With large, unknown data sets, this convention may be
-difficult to uphold. `ePiX' attempts to handle anomalous data
-intelligently, by keeping counts of values "out-of-range" or "on-cut".
-
- In detail, if x<a or x>b is a data value, it is counted as
-out-of-range and does not contribute to the histogram population. If
-x=a or x=b, the value counts as both out-of-range and on-cut but is
-added to the population of the lowest or highest bin, respectively. Any
-other cut appearing as a data input is flagged as on-cut, and
-increments the population of each adjacent bin by one-half. When a
-histogram or bar chart is written, `ePiX' prints a warning message
-summarizing the number of anomalous data seen.
-
-
-
-Simple horizontal and vertical error bars are provided. The final
-(optional) argument is the true height or width (respectively) in pt.
-
- h_error_bar(P location, double error, <mark type>, ht=6);
- v_error_bar(P location, double error, <mark type>, wd=6);
-
- To create more complex elements, such as asymmetric bars, whisker
-plots, labeled error bars, and the like, write a custom function using
-true-size drawing, see page *Note truesize::. For example, a fillable,
-labeled, asymmetric, vertical rectangular error bar can be implemented
-(entirely in `ePiX') like this:
-
- void error_bar(P loc, double lo, double hi, P offset,
- std::string text, align, double wd=6)
- {
- const double width(pt_to_screen(0.5*wd)); // converts to 3pt
- rect(loc - P(width, lo), loc + P(width, hi));
- line(loc - P(width, 0), loc + P(width, 0));
- label(loc + P(width, 0), offset, text, align);
- }
- For stylistic uniformity, functions such as this should be put into a
-library and used systematically. Section *Note section:extensions::,
-outlines the process of writing, compiling, and using a custom library.
-
-
-
-A `legend' systematically labels different parts of a plot by
-associating visual "keys" with explanatory text. This tends to be most
-useful for plots containing several distinct but conceptually related
-graphs requiring contrast.
-
- Visually, a `legend' is represented as an aligned list of rows, each
-containing a box (the key), a gap (the label skip), and some text.
-These rows are printed in a (usually large) masked label. By default,
-keys are `12pt' squares bordered in black, the label skip is `6pt', the
-background is white, and the border is plain black. These attributes
-are controlled (simultaneously for all items) with member functions.
-Parameters of type `double' represent lengths in `pt'.
-
- legend L;
- L.backing(color); // set background
- L.border(color, [double]); // set border color [and width]
- L.border(double); // border width
-
- L.item_border(color, [double]);
- L.item_border(double); // same, for item borders
-
- L.label_skip(double);
- L.key_size(double);
-
-
-
-There are three types of legend key, representing filled regions,
-paths, and markers. Fill and path keys get their visual attributes from
-the current drawing state. A mark key must be told the marker type.
-Each is created by specifying the item text.
-
- L.fill_item(text);
- L.path_item(text);
- L.mark_item(<mark type>, text);
- Keys in the printed legend appear in the same order they are created
-in the input file.
-
-
-
-Normally, a `legend' is defined near the start of a file, and an item
-is added at the point in the file where the corresponding object or
-plot is drawn, so that the item receives the correct attributes. A
-`legend' is placed into the figure with the `draw' function. The
-arguments have the same meaning as for ordinary `label's.
-
- L.draw(P location, P offset, align);
- All three arguments are mandatory. "Global" `legend' settings
-(border, backing, etc.) may be changed anywhere between the `legend''s
-creation and `draw' function. The sample file `legend.xp' revisits the
-example on page *Note taylor_poly::, including a trig-labeled axis and a
-legend. The file `shadeplot.xp' contains filled keys, and `dataplot.xp'
-contains a `legend' with items of mixed type.
-
-
-File: epix.info, Node: More About `C++', Next: Attribute Quick Reference, Prev: Creating and Drawing Objects, Up: Reference Manual
-
-3.7 More About `C++'
-====================
-
-A textbook or similarly detailed reference is essential for serious
-study of `C' or `C++'. _The `C' Programming Language_, second edition,
-by Kernighan and Ritchie `KnR', is an excellent, manageable resource
-for the basics of procedural programming. _C++ Primer Plus_, by Stephen
-Prata `Prata', clearly lays out the extensive details of `C++'.
-Marshall Cline's _`C++' FAQ Lite_ `Cline' engagingly discusses common
-points of confusion and furnishes tips on good design and programming.
-
- `C++' is a powerful, complex language whose syntax is similar to that
-of `C', or to the scripting languages of Maple and Mathematica. An
-`ePiX' input file is source code for a `C++' program that writes a
-`LaTeX' picture as output. `ePiX' may be viewed as an extension to
-`C++'; in the same way that `LaTeX' furnishes a high-level interface to
-`TeX', `ePiX' provides a high-level bridge between the computational
-power of `C++' and the `LaTeX' `picture' environment.
-
- Like all high-level programming languages, `C++' provides variables,
-functions, and control structures. Variables hold pieces of data such
-as numerical values and geometric locations, while functions operate on
-data. A control structure, such as a loop or conditional statement,
-affects the program's course according to the program's current state.
-A source file is composed primarily of "statements", which perform
-actions ranging from defining variables and functions to setting figure
-attributes, performing calculations, and writing objects to the output
-file.
-
-
-
-Names of variables and functions may consist (only) of letters, digits,
-and the underscore character. The first character of a name must not be
-a digit, and the language standard reserves names starting with
-underscore for library authors. Names are case-sensitive, but it's
-usually a bad idea to use a single name capitalized and uncapitalized
-in a single file. Numerous capitalization conventions are used
-informally; this document uses uncapitalized words separated by
-underscores for variables and functions, and occasionally uses all
-capitals for constants. As with names of `LaTeX' macros, primary
-considerations are clarity (of meaning), readability, and consistency.
-
- Every variable in `C++' has a "type", such as integer (`int'),
-double-precision floating point (`double'), or Boolean (`bool', true or
-false). `ePiX' provides additional types, the most common of which is
-`P', for point. The construct `P(x,y,z)' creates (x,y,z), while
-`P(x,y)' gives (x,y,0), which is effectively the pair (x,y). A variable
-is defined by giving its type, its name, and an initializing expression.
-
- In `C' and `C++', a _pointer_ variable holds the memory address of
-another variable. Pointers are useful for manipulating (possibly large)
-data structures through "handles" of fixed small size. `C++' also
-provides _references_, which bind an additional name to an existing
-object and allow the object to be manipulated through this alias. The
-statements
-
- double x=1; // ordinary variable definition
- double& rx=x; // bind a reference, signified by &
- define a variable `x' having the value 1, and bind a reference
-variable `rx' to it. As long as `rx' exists, it refers to `x'. If the
-value of `x' changes, the value of `rx' does as well. Conversely, the
-value of `x' can be altered by assigning to `rx'. However, `rx' is the
-size of a pointer, regardless of the size of `x', so `rx' can be passed
-efficiently in a function call.
-
-
-
-In a programming language, the term "function" refers to a block of
-code that is executable by name. A `C++' function takes a list of
-"arguments", and has a "return value". This information, together with
-the function's name, must be provided when a function is defined. A
-function may not be defined inside another function. However, a
-function may call other functions (including itself) as part of its
-execution:
-
- int factorial(unsigned int n)
- {
- if (n == 0) return 1;
- else return n*factorial(n-1);
- }
-
- The special type `void' represents a "null type". A function that
-performs an action but does not return a value has return type `void'.
-A function that takes no arguments may be viewed as taking a single
-`void' argument.
-
- Every `C++' program has a special function `main()', which is called
-by the operating system when the program is run. The arguments of
-`main()' are command-line arguments, and the return type is an integer
-that signals success or failure. User-specified functions must be
-defined before the call to `main()' or in a separately-compiled file.
-
- Functions in `C++' may be as simple as an algebraic formula or as
-complex as an arbitrary algorithm. Greatest common divisors, finite
-sums, numerical derivatives and integrals, solutions of differential
-equations, recursively generated fractal curves, and curves of best fit
-are a few applications in `ePiX'. Several sample files contain
-user-level algorithms, which do not require knowledge of `ePiX''s
-internal data structures. The source file `functions.cc' contains
-simple functions defined by algorithms, and `functions.h' illustrates
-the use of `C++' templates. Other source files, such as `plots.cc', may
-be consulted for Simpson's rule, Euler's method, and the like.
-
-
-
-`C++' knows several familiar mathematical functions by name:
-
- sqrt exp log log10 ceil floor fabs
- (`fabs' is the absolute value for a floating-point argument.) `ePiX'
-provides trig and inverse trig functions sensitive to angular mode:
-
- Cos Sin Tan
- Sec Csc Cot
- Acos Asin Atan
- The inverse functions are principle branches.
-
- The function `pow(x,y)' returns x^y when x>0, and `atan2(y,x)' (N.B.
-argument order) returns Arg(x+iy)\in(-\pi,\pi], the principle branch of
-arg. `C++' knows many constants to 20 decimal places, such as `M_PI',
-`M_PI_2', and `M_E' for \pi, \pi/2, and e respectively. `ePiX' defines
-a few additional functions:
-
- sgn zero sinx cb
- `sgn' is the signum function; `zero' is the constant function; `sinx'
-is the function x\mapsto \sin(x)/x with the discontinuity removed; `cb'
-(for "Charlie Brown") is the period-2 extension of the absolute value
-function on [-1,1].
-
- The GNU `C++' library defines other functions, including inverse
-hyperbolic functions (`acosh', etc.), `log' and `exp' with base 2, 10,
-or arbitrary b (`log2', etc.), the error and gamma functions (`erf' and
-`tgamma' [sic], respectively), and Bessel functions of first and second
-kind: `j0', `j1', `y0', etc. Use, e.g., `jn(5, )' to get higher
-indices. The GNU `C' library reference manual `GNUC' describes these
-and other functions in detail.
-
- Functions may be used in subsequent definitions, and functions of two
-(or more) variables are defined in direct analogy to functions of one
-variable:
-
-double f(double t) { return t*t*log(t*t); } // t^2 \ln(t^2)
-double g(double s, double t) { return exp(2*s)*Sin(t); }
-
-
-
-
-Unlike `C', `C++' supports "object-oriented programming". In a
-nutshell, a _class_ is an abstraction in computer code of some concept,
-such as a point, a sphere, a mapping that can be plotted, or a camera.
-Classes allow a programmer to separate an object's _interface_ (the set
-of meaningful operations) from its _implementation_ (the data
-structures and algorithms that realize the interface).
-
- A class implementation consists of _members_ (named data elements)
-and _member functions_ (functions that belong to the class and have
-free access to members). `C++' classes enforce access permissions on
-their members, protecting data from being manipulated except as
-promised by the interface.
-
- An ideal interface looks like a black box: It hides the
-implementation completely. In order to cooperate, two classes need
-only know each other's interfaces. This separation of form and function
-modularizes a program, and facilitates debugging, code reuse, and
-overall maintainability, particularly in large programs.
-
- In simple programming, classes may be treated like built-in types.
-Each class object has its own member functions, whose call syntax
-differs from standard function calls:
-
- Circle C1(P(1,0), 1.5); // circle of given center and radius
- C1.draw(); // member function Circle::draw();
- Naturally, this call draws the circle `C1'. Generally, a member
-function call consists of a class object's name, a period, and the name
-of the member function. Arguments, if any, go in the parentheses after
-the member function name, just as in a regular function call.
-
- A few short paragraphs cannot do more than scratch the surface of
-classes and object-oriented programming. For more details, please
-consult a book, such as Prata `Prata' or Stroustrup `S', or Cline's
-on-line FAQ `Cline'.
-
-
-
-`C' and `C++' are "call by value" languages. Variables are not passed
-to a function; instead a copy of the value is made, and the function
-operates only on the copy. Though this feature causes occasional
-inconvenience, it prevents an object from being altered unexpectedly by
-a function call in a different part of the program. Calling by value
-helps localize the logic of a program, and circumvents easy-to-write
-but extremely hard-to-find bugs.
-
- In `C++', a function may accept reference arguments. Passing an
-object by reference grants the calling function access to the object
-itself, not to a copy. There are two common applications: The object is
-a large data structure for which copying is "expensive", or the
-function _needs_ to modify its arguments (e.g., a function `swap(x,y)'
-that exchanges the values of `x' and `y').
-
- For the first situation, `C++' provides the `const' keyword, which
-ensures the function does not modify its arguments, but accepts a
-reference merely for efficiency. Any attempt to modify a `const'
-argument will be caught by the compiler. Most `ePiX' commands accept
-`const' reference arguments.
-
- The ability to pass function arguments by reference is sometimes
-touted as a feature in `C++' texts. However, the technique circumvents
-the data encapsulation of calling by value, and should be avoided
-unless absolutely necessary. If a function merely "updates" the value
-of a variable, probably the variable should be of class type, and the
-update should be performed by a member function.
-
- A function declaration must indicate that its arguments are
-references. The declarations below have the indicated idiomatic
-meanings.
-
- class matrix;
- double det(matrix); // call by value, perhaps inefficient
- matrix& transpose(matrix&); // probably changes its argument
- double trace(const matrix&); // does not change its argument
- Unlike pointer arguments, reference arguments impose no syntactic
-burden on the user. If `A' is a `matrix', then `transpose(A);' and
-`trace(A);' will compile. You need not declare explicit reference
-variables and pass those to the function.
-
-
-
-`C++' provides "overloading": Multiple functions can be given the same
-name, so long as the number and/or type of their arguments differ. (It
-is _not_ enough for the return types alone to differ. The compiler
-must be able to select a function from its calling syntax.) To the
-user, the appearance is that a single function intelligently handles
-multiple argument lists. Naturally, overloaded names should refer to
-functions that are conceptually related.
-
-
-
-A `C++' statement ends with a semicolon. A collection of statements
-enclosed by curly braces is a "code block", and may be viewed as a
-single logical statement. Curly braces determine a "scope", inside
-which variable names may be re-used without ambiguity. Function bodies
-are code blocks, as are the alternatives associated to control
-statements. A variable defined between curly braces is said to be
-_local_ to the scope in which it is defined; its value cannot be used
-out of scope. Variables should be declared in the smallest scope
-possible.
-
- The compiler is not picky about spaces, tabs, and newlines, so an
-input file should be formatted to make local scopes visually apparent.
-`emacs' automatically indents code to reflect scope, though the default
-behavior does not please all users. As with variable naming, clarity
-and consistency are paramount.
-
-
-
-A `C++' source file is compiled in multiple stages that occur
-transparently to the user. The first step, pre-processing, involves
-simple text replacement for file inclusion, macro expansion and
-conditional compilation. Next, the source is compiled and assembled:
-Human-readable language instructions are parsed, then represented in
-assembly language. Finally, the object files are linked: Function calls
-are resolved to hard-coded file offsets, possibly involving external
-library files, and the program instructions are packaged into an
-executable binary that the operating system can run.
-
- Pre-processing is used much less in `C++' than in `C'; the language
-itself supports safer and more featureful alternatives to macros, such
-as `const' variables and inline functions. File inclusion and
-conditional compilation are the chief uses of the pre-processor. Lines
-of the form
-
- #include <iostream>
- #include "epix.h"
- cause the contents of a _header file_ to be read into the source file.
-A header file contains variable and function _declarations_, statements
-that specify types and names but do not define actual data.
-Declarations tell the compiler just enough to resolve expressions and
-function calls without knowing specific values or function definitions.
-
- Conditional compilation is similar to conditional `LaTeX' code. For
-example, a file might produce either color or monochrome output as
-follows:
-
-#ifdef COLOR
- ... // code for generating color figure
-#endif /* COLOR */
-#ifndef COLOR
- ... // monochrome code
-#endif /* undef COLOR */
- The "compiler symbol" `COLOR' is an ordinary `C++' name. To control
-compilation, either put a `\#define COLOR' line in the file, or
-(better) supply the flag on the command line: \\ epix -DCOLOR
-<file.xp> \\ Every `\#ifdef' must have a matching `\#endif'. Commenting
-the `\#endif' is a good habit; in a realistic file, the start and end
-of a conditional block may be separated by more than one screen.
-
-
-
-As a programming language, `C++' provides certain features common to
-all languages (such as `LaTeX', MetaPost, Perl, Lisp\ldots) and adheres
-to rules of grammar. Salient differences between `LaTeX' and `C++'
-include:
-
- 1. Every `C++' statement and function call must end with a
- semicolon. An omitted semicolon may result in a cryptic error
- message from the compiler. Pre-processor directives, which start
- with a `\#', do not end with a semicolon.
-
- 2. Backslash is an escape character in `C++':
- // Put label $y=\sin x$ at (2,1)
- // Note single ^ backslash in output
- label(P(2,1), P(0,0), "$y=\\sin x$");
- // Double backslash ^^ in source
-
- 3. Variable and function names may contain letters (including
- underscore) and digits _only_, are case sensitive, and must
- begin with a letter.
-
- 4. Variables in `C++' must have a declared _type_, such as `int'
- (integer) or `double' (double-precision floating point). If a
- variable has global scope and its value does not change, the
- definition should probably come in the preamble or at the
- beginning of `main'. Local variables should be defined in the
- smallest possible scope. Unlike `C', `C++' allows variables to be
- defined where they first appear.
-
- 5. `C++' requires explicit use of `*' to denote multiplication;
- juxtaposition is not enough. `C++' does not support the use of ^
- for exponentiation, e.g., t^2 is invalid. Instead, use `t*t' or
- `pow(t,2)'.
-
- 6. `C++' has single- and multi-line comments. Everything between a
- double slash and the next newline is ignored, while the strings
- /* and */ delimit multi-line comments. A single-line comment may
- appear within a multi-line comment, but the compiler does not
- nest multi-line comments.
-
-
- Between them, `C' and `C++' have about 100 reserved keywords which
-cannot be used as function or variable names.
-
-
-File: epix.info, Node: Attribute Quick Reference, Prev: More About `C++', Up: Reference Manual
-
-3.8 Attribute Quick Reference
-=============================
-
-In the body of an input file, the "drawing state" determines the
-figure's appearance. Attributes are declarations, set by commands that
-accept arguments of the stated type.
-
- A `len' argument is a double-quoted string containing a number and a
-two-letter `LaTeX' length unit, such as `"1.5pt"' or `"6cm"'. A `color'
-argument is a named primary (`Red()', `Cyan()', `White()', etc.), a
-`Color' specified by densities (`RGB(...)', `CMYK(...)', etc.), or a
-`Color' object. Using `Neutral()' as a `Color' argument generally turns
-off the corresponding attribute.
-
- * Angular mode: `radians()', `degrees()', or `revolutions()'.
-
- The angular mode affects all trigonometric operations, including
- camera rotations, the drawing of arcs and ellipses, polar plotting,
- label angle, and the trig functions themselves. Angle-sensitive
- trig functions are capitalized, e.g., `Cos', `Tan'.
-
- * Fill style: `fill(color)', `fill(bool)', `nofill()'.
-
- * Path style:
-
- * Width: `plain()', `bold()', `bbold()', `pen(len)'.
-
- * Line style: `line_style(string)'. The argument is a
- WYSIWYG sequence of dashes, spaces, and periods.
- `dash_size(double)' and `dot_sep(double)' set the
- (approximate) length in `pt' of the pattern. The commands
- `solid()', `dashed()', `dotted()' define "standard"
- defaults for brevity.
-
- * Path color: Paths can be drawn using _two_ pens, one atop
- the other. When the "base" pen is white (or the
- background color) and wider than the "line" pen, a path
- masks parts of the figure it crosses. A 3-D effect may be
- obtained by making the base pen a darker shade than the
- "line" pen.
-
- `pen(color,[len])', `base(color,[len])'
-
- Standard widths: `plain(color)', `bold(color)',
- `bbold(color)'
-
-
- * Text attributes:
-
- * Color: `label_color(color)'
-
- * Mask: `label_mask(color)', `label_pad(len)'
-
- * Border: `label_border(color, [len])',
- `label_border(len)'. The command `no_label_border()'
- turns off label borders.
-
- * Font size: `font_size(LaTeX size)', no argument means
- `normalsize'.
-
- * Font face: `font_face(LaTeX font)', two-letter font
- selection string, default is `rm'.
-
- * Rotation: `label_angle(double)'
-
-
-
- Do not confuse `Color' constructors with the similarly-named
-(deprecated) lowercase attribute-setting commands, `rgb(r,g,b)',
-`cmyk(c,m,y,k)', `red(d)', etc. These commands affect text, paths, and
-filled regions. For example, the single command `red()' has the same
-effect as the three commands `pen(Red())', `fill(Red())', and
-`label_color(Red())'.
-
-
-File: epix.info, Node: Advanced Topics, Next: Software Freedom, Prev: Reference Manual, Up: Top
-
-4 Advanced Topics
-*****************
-
-This chapter covers _ad hoc_ tricks and open-ended techniques that
-require relatively more programming sophistication. You will almost
-surely need an external `C++' reference if you do not speak the
-language.
-
-* Menu:
-
-* Hidden Object Removal::
-* Extensions::
-* Programmer's Guide::
-
-
-File: epix.info, Node: Hidden Object Removal, Next: Extensions, Prev: Advanced Topics, Up: Advanced Topics
-
-4.1 Hidden Object Removal
-=========================
-
-`ePiX' writes the output file in the same order that objects appear in
-the input. The order is significant because PostScript builds a figure
-in layers: Objects are drawn over objects that come earlier in the
-file. Shaded polygons can be used to obtain surprisingly effective
-hidden object removal in surface meshes. This section describes the
-data structures defined in the source files `surface.*'.
-
- The basic idea is to create a shaded polygon class that knows its
-approximate distance to the camera. For computational simplicity, a
-mesh "facet" is treated as a quadrilateral, located at the arithmetic
-mean of its vertices. A facet's boundary is created from a map and a
-domain by tracing a fine mesh rectangle counterclockwise.
-
- To draw a parametrized surface, facets are stored in a `C++' vector,
-sorted in decreasing order of distance to the camera, and printed to
-the output file. If filling is active, the gray density of a facet
-depends on the cosine of the angle between the normal vector and the
-vector from the camera to the element.
-
- This simple algorithm works surprisingly well when mesh elements
-intersect at most along complete edges. To incorporate line-like
-elements (e.g., coordinate axes, wire-mesh plots) with shaded surfaces,
-the best technique is often to order high-level scene elements
-manually, breaking up shaded surfaces (for example, with domain
-resizing or clipping) as necessary. The sample file `saddle.xp'
-illustrates possible techniques.
-
- Shaded surfaces can be decorated with a bit of hackery. For example,
-the `facet::draw' function in `facet.cc' can be modified easily to draw
-line elements, tangents, or normal vectors along with the facet itself.
-The sample file `decorate.xp' contains a couple of ideas. (The
-decorations are activated by compiler flags; please consult the file
-itself for information on compiling.)
-
-
-File: epix.info, Node: Extensions, Next: Programmer's Guide, Prev: Hidden Object Removal, Up: Advanced Topics
-
-4.2 Extensions
-==============
-
-Thanks to a suggestion of Andrew Sterian, `ePiX' is extensible. User
-extensions span a spectrum, from header files that require only basic
-knowledge of `C++' to separately compiled libraries that add
-substantial new features. The structure of the source code is outlined
-in Section *Note section:programmers::, .
-
-
-
-A `C++' header file conventionally has suffix `.h', as in `myheader.h'.
-To use this custom header, put a line `\#include "myheader.h"' in your
-source file.
-
- User definitions can be easily and robustly implemented with "inline
-functions". Inline functions are superficially similar to macros, but
-are far more safe and featureful (since they are handled by the
-compiler rather than by the pre-processor). Examples are
-
- inline void Bold() { pen(1.6); }
- inline void purple() { rgb(0.5, 0, 0.7); }
- inline void draw_square(double s) { rect(P(-s,-s),P(s,s)); }
- inline double cube(double x) { return pow(x,3); // x^3 }
- The keyword `void' signifies a function that does not return a value,
-or (when used as an implicit parameter) a function that does not accept
-arguments. Inline function definitions are syntactically identical to
-ordinary function definitions, but _must_ occur in a header file or in
-the source file where they are used. The examples above might be used
-in an input file as follows:
-
- Bold();
- draw_square(cube(1.25));
-
-
-
-The next few sections outline the creation of a "static library" on
-GNU/Linux, and explain how to incorporate custom features at runtime.
-The extensively-commented sample files `std_F.cc' and `std_F.h'
-illustrate the techniques described below, and may be used for guidance
-and experimentation.
-
- A small library is usually written as a _header_ file, which
-contains class and function declarations (also called "prototypes"),
-and a _source_ file, which contains the actual code. Conventionally
-(under *nix), these files have extension `.h' and `.cc' respectively.
-Header and source files may "include" other header files, to
-incorporate additional functionality.
-
-/* my_code.h */
-#ifndef MY_CODE
-#define MY_CODE
-#include <cmath> // standard library math header
-#include "epix.h" // ePiX header
-using ePiX::P;
-
-namespace Mine { // to avoid name conflicts
- // functions for special relativity
- double lorentz_norm(const P&);
- bool spacelike(const P&);
-} // end of namespace
-#endif /* MY_CODE */
- This file exhibits two "safety features". The three `MY_CODE' lines
-prevent the file from being included multiple times. In a file of this
-size, inclusion protection is overkill, but as your code base grows and
-the number of header files increases, this protection is essential.
-Second, the header introduces a "Mine" namespace. Inside this
-namespace, two functions are declared as prototypes, giving the
-function's return type, name, and argument type(s). A header file
-should be commented fairly liberally, so that a year or two from now
-you'll be able to decipher the file's contents. For a longer file,
-version and contact information, an overall comment describing the
-file's features, and license information are appropriate.
-
- Next, the corresponding source file; definitions are also placed into
-the namespace, and must match their prototypes from the header file
-exactly.
-
-/* my_code.cc */
-#include "my_code.h"
-using namespace ePiX;
-
-namespace Mine {
- double lorentz_norm(const P& arg)
- {
- double x(arg.x1()), y(arg.x2()), z(arg.x3()); // extract coords
- return (y-x)*(y+x) + z*z; // -x^2 + y^2 + z^2
- }
- bool spacelike(const P& arg)
- {
- return (lorentz_norm(arg) > 0); // true if inequality is
- }
-} // end of namespace
- Copies of these files are included with the source code so you can
-experiment with them. Next, the source file must be "compiled",
-"archived", and "indexed". In the commands below, the percent sign is
-the prompt.
-
-% g++ -c my_code.cc
-% ar -ru libcustom.a my_code.o
-% ranlib libcustom.a
- Please see your system documentation for details on command options
-and what each step does. For linking (below), the name of the library
-file must begin "lib" and have the extension `.a'. Once these steps are
-successfully completed, put the library `libcustom.a' and header file
-`my_code.h' in your project directory. You're ready to use the code in
-an `ePiX' figure.
-
-
-
-The script `epix' allows input files to be linked with external
-libraries at run time, when the input file is compiled into a temporary
-executable.
-
- `epix' recognizes command line options and passes them verbatim to
-the compiler. The most commonly used options are those of the form
-
- -I<include> -L<libdir> -l<lib>
- For example, to link `figure.xp' against `mylibs/libcustom.a', run the
-command
-
- epix -Lmylibs -lcustom figure
- The options `-I. -L.' tell the compiler to look in the current
-directory for header and library files. Compiler options may appear in
-any order, but must come before the name of the input file(s).
-
- Compiler options may be placed in the configuration file
-`\$HOME/.epixrc', with syntax as above. A line in the config file that
-contains a pound sign (`\#') is a comment, no matter where in the line
-the `\#' appears. If any non-comment line fails to start with a dash,
-the rest of the file is silently discarded. Command-line options are
-read before the config file.
-
-
-
-The script `epix' links by default against the `C' math library
-`libm.a' and the `ePiX' library `libepix.a'. The command option
-`--no-defaults' clears the header and include paths and removes
-`libepix.a' from the link list. The script may therefore be used with
-multiple versions of `ePiX', a potentially useful feature if you
-regularly need to compile old source files, or simply prefer the syntax
-of an older version.
-
- To install and use (say) Version 1.0.0, build the package according
-to its `INSTALL' instructions, but _do not use the makefile to
-install_. Instead, manually install the header and library only, using
-their version number:
-
-# install -m 644 epix.h /usr/local/include/epix-1.0.h
-# install -m 644 libepix.a /usr/local/lib/libepix-1.0.a
- A non-system directory may be used instead of `/usr/local'. To use
-the old version, a source file must `include' the appropriate header
-file (which is identified by its version number). To compile, issue a
-command such as
-
-epix --no-defaults -I/usr/local -L/usr/local -lepix-1.0 file.xp
-
-
-File: epix.info, Node: Programmer's Guide, Prev: Extensions, Up: Advanced Topics
-
-4.3 Programmer's Guide
-======================
-
-This section briefly surveys `ePiX''s implementation, and is intended
-for (potential) programmers. The source code is divided into modules
-with small, well-defined responsibilities, but the user interface is
-mostly compatible with the syntax of Version 1.0. These constraints
-demanded a degree of implementation hiding. For example, the
-user-visible classes defined in `Color.h', `path.h', and `screen.h'
-contain only a pointer to the implementation class, and style data is
-hidden behind global commands.
-
- Functionally, the code consists of the user interface; implementation
-class\-es comprising drawing attributes, spatial objects, screens and
-representations of their elements, and output; and miscellaneous
-utility functions. The headers in each group, and their contents, are
-described in Section *Note section:interface::, .
-
- The user interface headers are assembled into a single file,
-`epix.h', and installed in `/usr/local/include' by default. In normal
-use, the shell scripts read only the user interface header. The
-individual headers, including the components of `epix.h', are installed
-in `/usr/local/include/epix'. These are provided for authors of
-external libraries, who may need access to implementation details.
-
-
-
-`ePiX' harnesses the computational power of `C++' to the typographical
-capabilities of `LaTeX'. Consequently, `ePiX' should be viewed in part
-as a framework for expressing numerical data visually.
-
- In the course of your work, you may develop specialized code filling
-a gap in `ePiX''s functionality. If your code seems likely to be of
-interest to other users, please consider bundling it as an external
-package and notifying the `ePiX' community so your work can be linked
-from the project pages and distributed to interested users.
-
- There are no formal requirements for external packages, but in the
-interest of uniformity contributed code should follow the GNU Coding
-Standards `GNUCoding'. At a minimum, an external package should build
-with the standard `./configure; make; make install' commands, and the
-`configure' script should accept an option `--with-epix' for the user
-to specify a non-default `ePiX' install directory.
-
- If an external package builds a static library, it should provide a
-single header containing all the package's entry points, and enclose
-its interface in a namespace. Entry points should not collide with
-`ePiX' functions. Naming the package "`epix-<...>'" is a good idea, but
-not essential. For example, a package providing textual nodes and
-diagram layout might be named `epix-nodes'. Input files would use the
-package with the lines
-
- #include "epix-nodes.h"
- using namespace ePiX-nodes;
- and be compiled with
-
- epix -lepix-nodes <file>
-
- The user and internal interfaces of `ePiX'-1.2 are not likely to
-change. Still, it's prudent to rely only on the user interface in
-contributed code whenever possible. Doing so also simplifies your work
-as an author; your library can simply `include' the user header file,
-and deal only with high-level objects and drawing attributes.
-
-
-
-These files (in order) comprise the global header `epix.h'.
-
- `enums.h' Marker, alignment, Riemann integral, and vector field
-types.
-
- `length.h' Physical lengths, conceptually a number and two-letter
-`LaTeX' length unit.
-
- `interval.h' Closed, open, and half-open interval ranges for data
-culling.
-
- `triples.h' The `P' class.
-
- `functions.h' Angle-sensitive trig functions, miscellaneous utility
-functions, the `Deriv' and `Integral' classes.
-
- `pairs.h' Screen locations and displacements, with complex
-arithmetic operations.
-
- `Color.h' The Color class interface, named primaries and
-constructors.
-
- `state.h' Angle mode; clipping and cropping; label styles; filling;
-arrow head style; dot and tick sizes, dash length; line style; line and
-base pen attributes; color-setting commands.
-
- `frame.h' Orthonormal bases.
-
- `domain.h' Coordinate boxes for function plotting.
-
- `camera.h' The camera.
-
- `screen.h' The screen class.
-
- `picture.h' Dimension-setting, offset, layout, decoration, verbatim
-text, and output format commands.
-
- `markers.h' Point markers, axis labels, and coordinate axes.
-
- `axis.h' Coordinate axes and labels in various styles.
-
- `legend.h' Plot legends.
-
- `path.h' The path class.
-
- `curves.h' Polygons, arrows, ellipses, arcs, splines, coordinate
-grids, and recursive fractal curves.
-
- `circle.h' The `Circle' shape object class.
-
- `plane.h' The `Plane' shape object class.
-
- `segment.h' The `Segment' shape object class.
-
- `sphere.h' The `Sphere' shape object class.
-
- `intersections.h' Shape object intersection operators.
-
- `plots.h' Plotting commands.
-
- `surface.h' Shaded surface plots.
-
- `data_mask.h' Helper class for data pruning.
-
- `data_file.h' Class for storing and representing data.
-
- `data_bins.h' Class for sorting and counting data.
-
- `geometry.h' Latitudes and longitudes; spherical plotting, arcs,
-polygons, and polyhedra; hyperbolic arcs.
-
-
-
-`Color_Base.h' The Color implementation interface.
-
- `Color_CMY.h' The CMY color model.
-
- `Color_CMYK.h' The CMYK color model.
-
- `Color_Gray.h' The Gray color model.
-
- `Color_Neutral.h' Each color class has a "Neutral" member that
-converts colors to that model by filtering. This file defines the
-unique "model-less" Neutral color for which filtering performs no
-action.
-
- `Color_RGB.h' The RGB color model.
-
- `Color_Sep.h' Classes for CMYK separation.
-
- `active_screen.h' Simple manipulator for the active screen.
-
- `picture_data.h' Picture implementation: two `screen' s
-(representing the `canvas' and the output page), true dimensions and
-offsets, pointer to output format, list of colors, and lists of
-verbatim text to write before and after printing the `picture'
-environment in the output file. For simplicity, the `screen's and
-dimensions are public; encapsulation from the user results from
-"hiding" this header.
-
-
-
-Declaration-style attributes are maintained with functions returning
-static references: `the_angle_style()', `the_arrowhead_style()',
-`the_label_style()', `the_mark_size()', `the_paint_style()', and
-`the_path_style()'. Each function is declared in the analogously-named
-header.
-
- `angle_units.h' Angular modes: `radians' , `revolutions', and
-`degrees'.
-
- `arrow_style.h' Arrow head style data: width, ratio, and inset.
-
- `label_style.h' Text object style: Label and mask colors, padding,
-border color and width, alignment, font size, font face, and angle.
-
- `marker_style.h' Dot and tick sizes.
-
- `paint_style.h' Line and base pens, fill color.
-
- `path_style.h' Solid, dashed, dotted lines.
-
- `pen_data.h' The pen class.
-
-
-
-`arrow_data.h' Arrow representation.
-
- `facet.h' Shaded surface elements.
-
- `label_data.h' Text (label and marker) objects.
-
- `legend_item.h' Items for `legend' s.
-
- `path_data.h' Path implementation.
-
- `spline.h' The natural spline class.
-
- `spline_data.h' Templates for quadratic and cubic splines.
-
-
-
-Elements in a `screen' are represented polymorphically as "`tile's", of
-which there are six types: `glyph' (textual elements), `pen_arrow'
-(arrows), `pen_fill' (filled regions), `pen_line' (path-like elements),
-`verbatim' (raw text), and `legend_tile' (legends).
-
- Border and background shape are dictated by the `screen_mask' class.
-The cropping algorithm assumes the contour of a screen mask is convex.
-
- `affine.h' Affine maps.
-
- `cropping.h' Screen mask cropping.
-
- `glyph.h' Markers and labels.
-
- `legend_tile.h' Screen representation of a `legend' .
-
- `mask_diamond.h' Screen diamond mask.
-
- `mask_ellipse.h' Screen elliptical mask.
-
- `mask_rectangle.h' Screen rectangular mask.
-
- `pen_arrow.h' Arrows.
-
- `pen_fill.h' Filled regions.
-
- `pen_line.h' Paths.
-
- `screen_data.h' Screen implementation class.
-
- `screen_mask.h' Screen mask interface.
-
- `tile.h' Screen element interface.
-
- `verbatim.h' Text in output stream.
-
-
-
-Output is divided into a couple of high-level operations and several
-"atomic" low-level operations. To create a new output format, one need
-only implement the `format' interface for the desired file type. Paths
-and filled regions may be implemented however the output type dictates.
-
- `eepic.h' eepic macros.
-
- `fmt_template.h' "skeleton" header for new output formats.
-
- `format.h' The output interface.
-
- `pst.h' PSTricks macros.
-
- `tikz.h' tikz macros.
-
-
-
-`Color_Utils.h' Functions for setting color channel densities.
-
- `clipping.h' The clip box.
-
- `constants.h' Global constants: Line widths; dot, tick, and dash
-sizes; arrowhead parameters; miscellaneous numerical constants and
-internal parameters.
-
- `crop_algorithms.h' Path and loop clipping templates.
-
- `deriv.h' Finite difference template.
-
- `edge_data.h' Path element representation template.
-
- `errors.h' Warning and error messages.
-
- `frac.h' Rational numbers and operators.
-
- `halfspace.h' Halfspace cutting.
-
- `hatching.h' Filling regions in eepic.
-
- `lens.h' Camera lenses.
-
- `map.h' Wrappers for templated plotting.
-
- `plot_algorithms.h' Plotting templates.
-
- `screen_crop.h' Crop paths and loops.
-
- `utils.h' Truncation, date and time, line breaking.
-
-
-File: epix.info, Node: Software Freedom, Next: Acknowledgments, Prev: Advanced Topics, Up: Top
-
-Appendix A Software Freedom
-***************************
-
-Academics in general, and mathematicians in particular, depend on free
-exchange of information. We prove theorems or establish experimental
-results, write up formal accounts, place preprints on public file
-servers, and submit papers to peer-reviewed journals. If accepted, the
-results--data, techniques, methods of reasoning, citations, and
-conclusions--are published in print and become part of the public
-record, governed by copyright law. Libraries purchase journal
-subscriptions, but researchers and scholars may use ideas from the
-literature merely by giving appropriate citations in their own work.
-"Theft" arises from false claims of authorship.
-
- Carried over to software, the academic process would guarantee rights
-similar to those provided by the GNU General Public License (GPL):
-
- * (GPL 0) To run a program for any purpose.
-
- * (GPL 1) To study how the program works, and adapt it to your
- needs.
-
- * (GPL 2) To redistribute copies of the program.
-
- * (GPL 3) To improve the program, and release improvements to the
- public, so that the whole community benefits.
-
-
- In reality, attitudes toward software differ markedly. Most academics
-work on a proprietary platform, use proprietary software for research
-and teaching, and share information with colleagues and students in
-proprietary, even obfuscated, data formats. Contrary to the academic
-ethic, proprietary software licenses restrict access to information:
-preventing users from learning how a program works internally ("reverse
-engineering"), limiting the number of users who may run a piece of
-software, and forbidding users from running (or sometimes even
-installing) a purchased copy on multiple machines.
-
- Restrictions on use aside, if one cannot examine a program's source
-code, one cannot fully trust the output, any more than one can trust
-(for purposes of scientific publication) results of a commercial
-testing lab.
-
- Consider a hypothetical future world in which scholarly results are
-disseminated like software. Instead of subscriptions, journals sell
-licenses granting readership to a specified number of individuals.
-Photocopying an article for a class or research seminar constitutes
-"piracy", though if the institution has purchased a sufficiently large
-site license the teacher or speaker may bring the physical volume to
-class and project the pages onto a screen.
-
- Of course, reading an article is scarcely enlightening. Mathematics
-papers contain only the statements of theorems. Merely opening the
-journal binds the reader to a lengthy legal agreement, stating that
-theorems be used only for specific purposes and threatening serious
-legal consequences for attempting to discover the author's proofs.
-
- The actions of a single student, employee, or faculty member can
-expose an institution to a costly "journal audit" from the Mathematical
-Society of America (MSA), with the institution responsible for legal
-costs if the audit reveals license violations anywhere in the
-organization.
-
- Mathematicians who long for the Old Days when papers contained
-proofs and were shared freely are dismissed as idealistic cranks or
-labeled anti-business communists. Common knowledge asserts the obvious
-superiority of proprietary journals, and the necessity of licenses for
-keeping mathematicians gainfully employed.
-
- Back in our world, some vendors have attempted to placate opponents
-of closed source with "shared source" licenses, under which one may
-sign a non-disclosure agreement and subsequently examine source code.
-In the future world analogy, a shared source agreement would allow
-journal licensees to sign an NDA, then see the proofs of theorems.
-Readers could thereby correct errors in proofs (benefitting the
-publisher by improving the reliability of the journal), but would be
-legally forbidden from using the ideas elsewhere (denying benefit to
-other mathematicians).
-
- Legally and conceptually codifying software as a commodity ignores a
-fundamental reality: Like an idea or recipe, software can be copied
-without loss of the original. The perception of "theft" by copying
-arises from an artificial belief that software has an owner who must be
-monetarily compensated each time a person acquires a copy. The nature
-of software does not enforce the "sale" model in the way services and
-physical commodities do. It therefore seems philosophically
-inappropriate to treat software as a commodity, and perilous to conform
-the legal system to the enforcement of such a model.
-
- At its best, software enhances our productivity and creativity.
-Sharing software, like sharing ideas, benefits a larger number of
-people without detriment to existing users. I hope this modest program
-is, in conjunction with the much larger efforts of others (especially
-Donald Knuth, Richard Stallman, and the many people who have
-contributed to the authorship of `LaTeX' and its packages), useful to
-you in your mathematical work.
-
- Please visit the Free Software Foundation, at `http://www.fsf.org',
-to learn more about free software and how you can contribute to its
-development and adoption.
-
-
-File: epix.info, Node: Acknowledgments, Next: Function Index, Prev: Software Freedom, Up: Top
-
-Appendix B Acknowledgments
-**************************
-
-`ePiX' is built on the work of many people (unfortunately, most of whom
-I am unaware). The following people have contributed, sometimes
-unknowingly but always generously:
-
- *Infrastructure* Donald Knuth, Conrad Kwok, Leslie Lamport, Tim
-Morgan, Piet van Oostrum, Sunil Podar, Richard Stallman, Till Tantau,
-Herbert Voss, Timothy van Zandt
-
- *Enhancements* Jay Belanger, Robin Blume-Kohout, Julian Gilbey,
-Marcus Hanwell, Yvon Henel, Svend Daugaard Pedersen, Andrew Sterian
-
- *Porting and packaging* Julian Gilbey (Debian); Tsuguru Kato
-(FreeBSD); Markus Dittrich, Danny van Dyk, Christian Faulhammer,
-Olivier Fisette, Chris Gianelloni, Michael Hanselmann, Marcus Hanwell,
-David Holm, Peter Johanson, Patrick Kursawe, Tobias Scherbaum, Markus
-Ullmann (Gentoo); Guido Gonzato (RPM); Rene Rebe (T2)
-
- *Debugging, advice, and other assistance* Jay Belanger, Felipe Paulo
-Guazzi Bergo, Karl Berry, Robin Blume-Kohout, Patrick Cousot, Stephen
-Gibson, Julian Gilbey, Dov Grobgeld, Bob Grover, Jim Hefferon, Jacques
-L'helgoual, Yvon Henel, Hartmut Henkel, Herng-Jeng Jou, Walter
-Kehowski, Kevin McCormick, Ross Moore, Thorsten Riess, Alan Sill, Neel
-Smith, Michael Somos, Andrew Sterian, Ryszard Tanas, Kai Trukenmueller,
-Torbjorn Vik, Wenguang Wang, Gabe Weaver, Mariusz Wodzicki
-
-
-File: epix.info, Node: Function Index, Next: Concept Index, Prev: Acknowledgments, Up: Top
-
-Function Index
-**************
-
-
-* Menu:
-
-* aarrow: Creating and Drawing Objects.
- (line 248)
-* Acos: More About C++. (line 112)
-* activate: Scene Attributes. (line 161)
-* affine: Scene Attributes. (line 271)
-* apply: Scene Attributes. (line 307)
-* arc: Creating and Drawing Objects.
- (line 167)
-* arc_arrow: Creating and Drawing Objects.
- (line 248)
-* arc_measure: Creating and Drawing Objects.
- (line 193)
-* arrow: Creating and Drawing Objects.
- (line 242)
-* arrow_inset: Creating and Drawing Objects.
- (line 235)
-* arrow_ratio: Creating and Drawing Objects.
- (line 235)
-* arrow_width: Creating and Drawing Objects.
- (line 235)
-* Asin: More About C++. (line 112)
-* Atan: More About C++. (line 112)
-* axis: Creating and Drawing Objects.
- (line 275)
-* axis.align: Creating and Drawing Objects.
- (line 284)
-* axis.align_labels: Creating and Drawing Objects.
- (line 296)
-* axis.dec: Creating and Drawing Objects.
- (line 296)
-* axis.draw: Creating and Drawing Objects.
- (line 342)
-* axis.draw_labels: Creating and Drawing Objects.
- (line 342)
-* axis.draw_ticks: Creating and Drawing Objects.
- (line 342)
-* axis.frac: Creating and Drawing Objects.
- (line 296)
-* axis.label_rep: Creating and Drawing Objects.
- (line 307)
-* axis.precision: Creating and Drawing Objects.
- (line 296)
-* axis.sci: Creating and Drawing Objects.
- (line 296)
-* axis.subdivide: Creating and Drawing Objects.
- (line 284)
-* axis.tag: Creating and Drawing Objects.
- (line 323)
-* axis.tag235: Creating and Drawing Objects.
- (line 323)
-* axis.tags: Creating and Drawing Objects.
- (line 323)
-* axis.tick_ratio: Creating and Drawing Objects.
- (line 284)
-* axis.trig: Creating and Drawing Objects.
- (line 296)
-* axis.unmark: Creating and Drawing Objects.
- (line 296)
-* axis.untag: Creating and Drawing Objects.
- (line 323)
-* axis_break: Creating and Drawing Objects.
- (line 394)
-* back_arc: Creating and Drawing Objects.
- (line 851)
-* back_arc2: Creating and Drawing Objects.
- (line 851)
-* back_cube: Creating and Drawing Objects.
- (line 857)
-* back_dodeca: Creating and Drawing Objects.
- (line 857)
-* back_icosa: Creating and Drawing Objects.
- (line 857)
-* back_latitude: Creating and Drawing Objects.
- (line 837)
-* back_line: Creating and Drawing Objects.
- (line 851)
-* back_longitude: Creating and Drawing Objects.
- (line 837)
-* back_octa: Creating and Drawing Objects.
- (line 857)
-* back_tetra: Creating and Drawing Objects.
- (line 857)
-* back_triangle: Creating and Drawing Objects.
- (line 857)
-* backing: Scene Attributes. (line 252)
-* backplot_N: Creating and Drawing Objects.
- (line 879)
-* backplot_R: Creating and Drawing Objects.
- (line 879)
-* backplot_S: Creating and Drawing Objects.
- (line 879)
-* bbold: Drawing Attributes. (line 33)
-* bbox: Drawing Attributes. (line 174)
-* begin: File Structure. (line 12)
-* Black: Color. (line 23)
-* Blue: Color. (line 23)
-* bold: Drawing Attributes. (line 33)
-* border: Scene Attributes. (line 252)
-* bottom_axis: Creating and Drawing Objects.
- (line 332)
-* bounding_box: Picture Size and Aspect Ratio.
- (line 24)
-* box: Drawing Attributes. (line 174)
-* Camera.at: Scene Attributes. (line 75)
-* Camera.clip_range: Scene Attributes. (line 75)
-* Camera.focus: Scene Attributes. (line 75)
-* Camera.look_at: Scene Attributes. (line 75)
-* Camera.pan: Scene Attributes. (line 75)
-* Camera.range: Scene Attributes. (line 75)
-* Camera.roll: Scene Attributes. (line 75)
-* Camera.tilt: Scene Attributes. (line 75)
-* canvas: Scene Attributes. (line 183)
-* cb: More About C++. (line 123)
-* circ: Drawing Attributes. (line 174)
-* circle: Creating and Drawing Objects.
- (line 145)
-* Circle: Creating and Drawing Objects.
- (line 70)
-* cis: Creating and Drawing Objects.
- (line 27)
-* clip_box: Scene Attributes. (line 127)
-* clip_face: Scene Attributes. (line 137)
-* clip_restore: Scene Attributes. (line 137)
-* clip_slice: Scene Attributes. (line 137)
-* clip_to: Scene Attributes. (line 127)
-* CMY: Color. (line 29)
-* CMY_Black: Color. (line 29)
-* CMY_White: Color. (line 29)
-* cmyk: Drawing Attributes. (line 210)
-* CMYK: Color. (line 29)
-* Color.alpha: Color. (line 73)
-* Color.blend: Color. (line 73)
-* Color.filter: Color. (line 73)
-* Color.invert: Color. (line 73)
-* Color.superpose: Color. (line 73)
-* Cos: More About C++. (line 112)
-* Cot: More About C++. (line 112)
-* crop: Scene Attributes. (line 239)
-* crop_diamond: Scene Attributes. (line 239)
-* crop_ellipse: Scene Attributes. (line 239)
-* Csc: More About C++. (line 112)
-* Cyan: Color. (line 29)
-* cyl: Creating and Drawing Objects.
- (line 27)
-* dart: Creating and Drawing Objects.
- (line 248)
-* dart_field: Creating and Drawing Objects.
- (line 793)
-* dash_size: Drawing Attributes. (line 44)
-* dashed: Drawing Attributes. (line 53)
-* data_bins: Creating and Drawing Objects.
- (line 1006)
-* data_bins.bar_chart: Creating and Drawing Objects.
- (line 1016)
-* data_bins.cut: Creating and Drawing Objects.
- (line 1006)
-* data_bins.histogram: Creating and Drawing Objects.
- (line 1016)
-* data_bins.plot: Creating and Drawing Objects.
- (line 1016)
-* data_bins.read: Creating and Drawing Objects.
- (line 1006)
-* data_file: Creating and Drawing Objects.
- (line 931)
-* data_file.avg: Creating and Drawing Objects.
- (line 950)
-* data_file.column: Creating and Drawing Objects.
- (line 973)
-* data_file.covar: Creating and Drawing Objects.
- (line 950)
-* data_file.dot: Creating and Drawing Objects.
- (line 950)
-* data_file.plot: Creating and Drawing Objects.
- (line 958)
-* data_file.precision: Creating and Drawing Objects.
- (line 967)
-* data_file.read: Creating and Drawing Objects.
- (line 931)
-* data_file.regression: Creating and Drawing Objects.
- (line 950)
-* data_file.transform: Creating and Drawing Objects.
- (line 945)
-* data_file.var: Creating and Drawing Objects.
- (line 950)
-* data_file.write: Creating and Drawing Objects.
- (line 967)
-* data_mask: Creating and Drawing Objects.
- (line 988)
-* data_mask.prune: Creating and Drawing Objects.
- (line 996)
-* ddot: Drawing Attributes. (line 174)
-* deactivate: Scene Attributes. (line 161)
-* Deriv: Creating and Drawing Objects.
- (line 745)
-* Deriv.eval: Creating and Drawing Objects.
- (line 745)
-* Deriv.left: Creating and Drawing Objects.
- (line 745)
-* Deriv.right: Creating and Drawing Objects.
- (line 745)
-* disk_line: Creating and Drawing Objects.
- (line 826)
-* domain: Creating and Drawing Objects.
- (line 512)
-* domain.resize: Creating and Drawing Objects.
- (line 531)
-* domain.slice: Creating and Drawing Objects.
- (line 531)
-* domain.slices: Creating and Drawing Objects.
- (line 531)
-* domain_list: Creating and Drawing Objects.
- (line 668)
-* domain_list.add: Creating and Drawing Objects.
- (line 668)
-* dot: Drawing Attributes. (line 174)
-* dot_size: Drawing Attributes. (line 185)
-* dotted: Drawing Attributes. (line 53)
-* draw: Creating and Drawing Objects.
- (line 59)
-* ellipse: Creating and Drawing Objects.
- (line 167)
-* ellipse_bottom: Creating and Drawing Objects.
- (line 180)
-* ellipse_left: Creating and Drawing Objects.
- (line 180)
-* ellipse_right: Creating and Drawing Objects.
- (line 180)
-* ellipse_top: Creating and Drawing Objects.
- (line 180)
-* end: File Structure. (line 12)
-* envelope: Creating and Drawing Objects.
- (line 768)
-* extract: Scene Attributes. (line 183)
-* extract_diamond: Scene Attributes. (line 190)
-* extract_ellipse: Scene Attributes. (line 190)
-* fill: Drawing Attributes. (line 12)
-* flow: Creating and Drawing Objects.
- (line 778)
-* font_face: Drawing Attributes. (line 144)
-* font_size: Drawing Attributes. (line 144)
-* fractal: Creating and Drawing Objects.
- (line 214)
-* frame: Creating and Drawing Objects.
- (line 134)
-* front_arc: Creating and Drawing Objects.
- (line 851)
-* front_arc2: Creating and Drawing Objects.
- (line 851)
-* front_cube: Creating and Drawing Objects.
- (line 857)
-* front_dodeca: Creating and Drawing Objects.
- (line 857)
-* front_icosa: Creating and Drawing Objects.
- (line 857)
-* front_line: Creating and Drawing Objects.
- (line 851)
-* front_octa: Creating and Drawing Objects.
- (line 857)
-* front_tetra: Creating and Drawing Objects.
- (line 857)
-* front_triangle: Creating and Drawing Objects.
- (line 857)
-* frontplot_N: Creating and Drawing Objects.
- (line 879)
-* frontplot_R: Creating and Drawing Objects.
- (line 879)
-* frontplot_S: Creating and Drawing Objects.
- (line 879)
-* Gray: Color. (line 29)
-* Green: Color. (line 23)
-* grid: Creating and Drawing Objects.
- (line 405)
-* h_axis: Creating and Drawing Objects.
- (line 352)
-* h_axis_labels: Creating and Drawing Objects.
- (line 368)
-* h_axis_log_labels: Creating and Drawing Objects.
- (line 368)
-* h_axis_log_masklabels: Creating and Drawing Objects.
- (line 368)
-* h_axis_masklabels: Creating and Drawing Objects.
- (line 368)
-* h_error_bar: Creating and Drawing Objects.
- (line 1047)
-* h_log_axis: Creating and Drawing Objects.
- (line 352)
-* h_scale: Scene Attributes. (line 282)
-* h_shear: Scene Attributes. (line 282)
-* hyperbolic_line: Creating and Drawing Objects.
- (line 826)
-* import: Scene Attributes. (line 172)
-* include: C++ Basics. (line 37)
-* inf: Creating and Drawing Objects.
- (line 731)
-* inlay: Scene Attributes. (line 204)
-* inlay_horizontal: Scene Attributes. (line 204)
-* inlay_vertical: Scene Attributes. (line 204)
-* inset: Scene Attributes. (line 172)
-* Integral: Creating and Drawing Objects.
- (line 745)
-* Integral.eval: Creating and Drawing Objects.
- (line 745)
-* J: Creating and Drawing Objects.
- (line 38)
-* label <1>: Drawing Attributes. (line 99)
-* label: Layout Tricks. (line 46)
-* label_border: Drawing Attributes. (line 160)
-* label_color: Drawing Attributes. (line 160)
-* label_mask: Drawing Attributes. (line 160)
-* label_pad: Drawing Attributes. (line 160)
-* latitude: Creating and Drawing Objects.
- (line 837)
-* left_axis: Creating and Drawing Objects.
- (line 332)
-* legend: Creating and Drawing Objects.
- (line 1083)
-* legend.backing: Creating and Drawing Objects.
- (line 1083)
-* legend.border: Creating and Drawing Objects.
- (line 1083)
-* legend.draw: Creating and Drawing Objects.
- (line 1115)
-* legend.fill_item: Creating and Drawing Objects.
- (line 1101)
-* legend.item_border: Creating and Drawing Objects.
- (line 1083)
-* legend.key_size: Creating and Drawing Objects.
- (line 1083)
-* legend.label_skip: Creating and Drawing Objects.
- (line 1083)
-* legend.mark_item: Creating and Drawing Objects.
- (line 1101)
-* legend.path_item: Creating and Drawing Objects.
- (line 1101)
-* Line: Creating and Drawing Objects.
- (line 145)
-* line: Creating and Drawing Objects.
- (line 145)
-* line_style: Drawing Attributes. (line 44)
-* log1_grid: Creating and Drawing Objects.
- (line 411)
-* log2_grid: Creating and Drawing Objects.
- (line 411)
-* log_grid: Creating and Drawing Objects.
- (line 411)
-* longitude: Creating and Drawing Objects.
- (line 837)
-* Magenta: Color. (line 29)
-* move_to: Creating and Drawing Objects.
- (line 59)
-* newton: Creating and Drawing Objects.
- (line 731)
-* no_label_border: Drawing Attributes. (line 160)
-* nofill: Drawing Attributes. (line 12)
-* ode_plot: Creating and Drawing Objects.
- (line 778)
-* P: Creating and Drawing Objects.
- (line 27)
-* P.x1: Creating and Drawing Objects.
- (line 38)
-* P.x2: Creating and Drawing Objects.
- (line 38)
-* P.x3: Creating and Drawing Objects.
- (line 38)
-* path: Creating and Drawing Objects.
- (line 437)
-* path.close: Creating and Drawing Objects.
- (line 468)
-* path.draw: Creating and Drawing Objects.
- (line 468)
-* path.fill: Creating and Drawing Objects.
- (line 468)
-* pen <1>: Creating and Drawing Objects.
- (line 422)
-* pen: Drawing Attributes. (line 23)
-* picture <1>: Picture Size and Aspect Ratio.
- (line 24)
-* picture: File Structure. (line 12)
-* plain: Drawing Attributes. (line 33)
-* Plane: Creating and Drawing Objects.
- (line 85)
-* plot: Creating and Drawing Objects.
- (line 495)
-* polar: Creating and Drawing Objects.
- (line 27)
-* polar_grid: Creating and Drawing Objects.
- (line 405)
-* polarplot: Creating and Drawing Objects.
- (line 495)
-* post_write: C++ Basics. (line 122)
-* postcomp: Scene Attributes. (line 282)
-* pre_write: C++ Basics. (line 122)
-* pt_to_screen: Scene Attributes. (line 214)
-* quad: Creating and Drawing Objects.
- (line 145)
-* rect: Creating and Drawing Objects.
- (line 145)
-* Red: Color. (line 23)
-* reflect: Scene Attributes. (line 282)
-* rgb: Drawing Attributes. (line 210)
-* RGB: Color. (line 23)
-* riemann_sum: Creating and Drawing Objects.
- (line 756)
-* right_angle: Creating and Drawing Objects.
- (line 193)
-* right_axis: Creating and Drawing Objects.
- (line 332)
-* ring: Drawing Attributes. (line 174)
-* rotate: Scene Attributes. (line 282)
-* scale <1>: Creating and Drawing Objects.
- (line 59)
-* scale: Scene Attributes. (line 282)
-* scenery: Creating and Drawing Objects.
- (line 680)
-* scenery.add: Creating and Drawing Objects.
- (line 680)
-* scenery.draw: Creating and Drawing Objects.
- (line 680)
-* Sec: More About C++. (line 112)
-* Segment: Creating and Drawing Objects.
- (line 90)
-* set_crop: Scene Attributes. (line 239)
-* sgn: More About C++. (line 123)
-* shadeplot: Creating and Drawing Objects.
- (line 495)
-* shift <1>: Creating and Drawing Objects.
- (line 59)
-* shift: Scene Attributes. (line 282)
-* Sin: More About C++. (line 112)
-* sinx: More About C++. (line 123)
-* slope_field: Creating and Drawing Objects.
- (line 793)
-* solid: Drawing Attributes. (line 53)
-* sph: Creating and Drawing Objects.
- (line 27)
-* Sphere: Creating and Drawing Objects.
- (line 93)
-* spline: Creating and Drawing Objects.
- (line 167)
-* spot: Drawing Attributes. (line 174)
-* sup: Creating and Drawing Objects.
- (line 731)
-* surface: Creating and Drawing Objects.
- (line 616)
-* surface_rev: Creating and Drawing Objects.
- (line 627)
-* Tan: More About C++. (line 112)
-* tan_field: Creating and Drawing Objects.
- (line 768)
-* tan_line: Creating and Drawing Objects.
- (line 768)
-* top_axis: Creating and Drawing Objects.
- (line 332)
-* triangle: Creating and Drawing Objects.
- (line 145)
-* unitlength: Picture Size and Aspect Ratio.
- (line 24)
-* v_axis: Creating and Drawing Objects.
- (line 352)
-* v_axis_labels: Creating and Drawing Objects.
- (line 368)
-* v_axis_log_labels: Creating and Drawing Objects.
- (line 368)
-* v_axis_log_masklabels: Creating and Drawing Objects.
- (line 368)
-* v_axis_masklabels: Creating and Drawing Objects.
- (line 368)
-* v_error_bar: Creating and Drawing Objects.
- (line 1047)
-* v_log_axis: Creating and Drawing Objects.
- (line 352)
-* v_scale: Scene Attributes. (line 282)
-* v_shear: Scene Attributes. (line 282)
-* vector_field: Creating and Drawing Objects.
- (line 793)
-* White: Color. (line 23)
-* write: C++ Basics. (line 122)
-* Yellow: Color. (line 29)
-* zero: More About C++. (line 123)
-
-
-File: epix.info, Node: Concept Index, Prev: Function Index, Up: Top
-
-Concept Index
-*************
-
-
-* Menu:
-
-* Affine map: Scene Attributes. (line 264)
-* Affine map!action on labels: Drawing Attributes. (line 130)
-* Angle units <1>: Drawing Attributes. (line 121)
-* Angle units: Scene Attributes. (line 14)
-* Angular mode <1>: More About C++. (line 112)
-* Angular mode: Creating and Drawing Objects.
- (line 27)
-* Animation: Animation. (line 6)
-* Arrow: Creating and Drawing Objects.
- (line 231)
-* Axes: Creating and Drawing Objects.
- (line 257)
-* Axes!broken: Creating and Drawing Objects.
- (line 390)
-* Axes!labeling: Creating and Drawing Objects.
- (line 257)
-* Axes!logarithmic: Creating and Drawing Objects.
- (line 350)
-* Bar Charts: Creating and Drawing Objects.
- (line 1013)
-* Bounding box: Scene Attributes. (line 156)
-* Camera <1>: Hidden Object Removal.
- (line 13)
-* Camera: Scene Attributes. (line 21)
-* Camera!color separation: Scene Attributes. (line 94)
-* Camera!lens: Scene Attributes. (line 57)
-* Camera!manipulation: Scene Attributes. (line 69)
-* Camera!manipulation of: Scene Attributes. (line 116)
-* Camera!viewpoint: Scene Attributes. (line 31)
-* canvas: The Drawing Model. (line 11)
-* Circle: Creating and Drawing Objects.
- (line 69)
-* Classes: More About C++. (line 149)
-* Clipping: Scene Attributes. (line 120)
-* Color <1>: Drawing Attributes. (line 215)
-* Color: Color. (line 6)
-* Color!separation: Scene Attributes. (line 94)
-* Color!surface plotting: Creating and Drawing Objects.
- (line 700)
-* Color!transparency: Color. (line 65)
-* Conditional statement: More About C++. (line 22)
-* Cplusplus@C++ <1>: More About C++. (line 6)
-* Cplusplus@C++: C++ Basics. (line 6)
-* Cropping: Scene Attributes. (line 231)
-* Data plotting: Creating and Drawing Objects.
- (line 897)
-* Domain: Creating and Drawing Objects.
- (line 509)
-* Emacs@emacs <1>: Animation. (line 19)
-* Emacs@emacs <2>: C++ Basics. (line 16)
-* Emacs@emacs <3>: Running ePiX. (line 50)
-* Emacs@emacs: Software Dependencies.
- (line 36)
-* Error bars: Creating and Drawing Objects.
- (line 1046)
-* Filling: Drawing Attributes. (line 11)
-* Fonts: Drawing Attributes. (line 142)
-* Free software <1>: Software Freedom. (line 6)
-* Free software: Introduction. (line 42)
-* Function: More About C++. (line 22)
-* Function!call syntax: More About C++. (line 186)
-* Function!class member: More About C++. (line 156)
-* Function!mathematical: More About C++. (line 108)
-* Function!overloaded: More About C++. (line 229)
-* Function!returning void: More About C++. (line 84)
-* Graph paper: Creating and Drawing Objects.
- (line 422)
-* Graphical interface: Tutorial. (line 13)
-* Hidden object removal: Hidden Object Removal.
- (line 6)
-* Histograms: Creating and Drawing Objects.
- (line 1013)
-* Input file!comment in: More About C++. (line 337)
-* Input file!conditional compilation: More About C++. (line 281)
-* Installation <1>: Installation. (line 31)
-* Installation: Software Dependencies.
- (line 6)
-* Intersection: Creating and Drawing Objects.
- (line 109)
-* Labels <1>: More About C++. (line 310)
-* Labels: Drawing Attributes. (line 80)
-* Labels!alignment: Drawing Attributes. (line 80)
-* Labels!axis: Creating and Drawing Objects.
- (line 257)
-* Labels!backslash in: Drawing Attributes. (line 205)
-* Labels!fonts in: Drawing Attributes. (line 142)
-* Labels!in double quotes: Drawing Attributes. (line 205)
-* Labels!rotated: Drawing Attributes. (line 121)
-* Layout <1>: Scene Attributes. (line 148)
-* Layout: Layout Tricks. (line 6)
-* Legends: Creating and Drawing Objects.
- (line 1072)
-* Mac OS X: Software Dependencies.
- (line 6)
-* Marker types: Drawing Attributes. (line 172)
-* Output format: File Structure. (line 31)
-* Path: Drawing Attributes. (line 11)
-* Path!class: Creating and Drawing Objects.
- (line 433)
-* Path!filled: Drawing Attributes. (line 11)
-* Path!fractal: Creating and Drawing Objects.
- (line 206)
-* Path!style: Drawing Attributes. (line 41)
-* Picture!aspect ratio: Picture Size and Aspect Ratio.
- (line 44)
-* Picture!bounding box: Picture Size and Aspect Ratio.
- (line 44)
-* Picture!offset: Picture Size and Aspect Ratio.
- (line 6)
-* Picture!size: Picture Size and Aspect Ratio.
- (line 6)
-* Plane: Creating and Drawing Objects.
- (line 85)
-* Plotting: Creating and Drawing Objects.
- (line 480)
-* Plotting!calculus: Creating and Drawing Objects.
- (line 721)
-* Plotting!data: Creating and Drawing Objects.
- (line 897)
-* Plotting!spherical: Creating and Drawing Objects.
- (line 833)
-* Plotting!surface: Creating and Drawing Objects.
- (line 605)
-* Point: Creating and Drawing Objects.
- (line 14)
-* Pointer: More About C++. (line 52)
-* post_write: C++ Basics. (line 122)
-* pre_write: C++ Basics. (line 122)
-* Preamble: File Structure. (line 10)
-* Screen: Scene Attributes. (line 21)
-* Screen!active: Scene Attributes. (line 148)
-* Segment: Creating and Drawing Objects.
- (line 90)
-* Sphere: Creating and Drawing Objects.
- (line 93)
-* Stereograms: Layout Tricks. (line 8)
-* Variable!local: More About C++. (line 239)
-* Variable!names: More About C++. (line 34)
-* Variable!pointer: More About C++. (line 52)
-* Variable!reference: More About C++. (line 186)
-* Variable!type of: More About C++. (line 45)
-* Viewpoint: Scene Attributes. (line 31)
-* Windows operating system: Software Dependencies.
- (line 40)
-* write: C++ Basics. (line 122)
-
-
-
-Tag Table:
-Node: Top185
-Node: Introduction1105
-Node: Changes in Version 1.24664
-Node: Software Dependencies8541
-Ref: section:software_deps8714
-Node: Installation11086
-Node: Getting Started12670
-Ref: chapter:started12806
-Node: Running `ePiX'13556
-Ref: section:running13709
-Node: The Drawing Model16861
-Ref: section:overview17013
-Node: Tutorial19428
-Ref: section:tutorial19560
-Ref: taylor_poly24927
-Node: `C++' Basics26756
-Ref: fig:captioned32767
-Node: Animation33131
-Ref: section:animation33262
-Node: Layout Tricks34998
-Ref: section:layout35116
-Node: Reference Manual37114
-Ref: chapter:ref-man37255
-Node: File Structure38952
-Node: Picture Size and Aspect Ratio41705
-Ref: page:scaling44202
-Node: Color44417
-Ref: section:color44557
-Ref: fig:densities46382
-Node: Scene Attributes47847
-Ref: fig:camera48882
-Ref: truesize56642
-Node: Drawing Attributes62495
-Ref: table:marker70626
-Node: Creating and Drawing Objects71285
-Ref: fig:fractal81596
-Ref: fig:plot96868
-Ref: non-eucl107182
-Node: More About `C++'121128
-Ref: references130049
-Node: Attribute Quick Reference137418
-Ref: section:quickref137580
-Node: Advanced Topics140341
-Ref: chapter:adv140481
-Node: Hidden Object Removal140765
-Ref: section:hidden140932
-Node: Extensions142805
-Ref: section:extensions142953
-Node: Programmer's Guide149302
-Ref: section:programmers149436
-Ref: section:interface152502
-Node: Software Freedom158743
-Node: Acknowledgments164009
-Node: Function Index165447
-Node: Concept Index200200
-
-End Tag Table
diff --git a/graphics/epix/doc/graphpaper.eepic b/graphics/epix/doc/graphpaper.eepic
deleted file mode 100644
index 94a18e8085..0000000000
--- a/graphics/epix/doc/graphpaper.eepic
+++ /dev/null
@@ -1,101 +0,0 @@
-%% Generated from graphpaper.xp on Tue Jan 4 15:32:14 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 2in x 1in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{0.01in}
-\begin{picture}(200,100)(-0,-0)
-%% ---
-\allinethickness{0.25pt}%
-\path(0,0)(0,100)
-\path(5,0)(5,100)
-\path(10,0)(10,100)
-\path(15,0)(15,100)
-\path(20,0)(20,100)
-\path(25,0)(25,100)
-\path(30,0)(30,100)
-\path(35,0)(35,100)
-\path(40,0)(40,100)
-\path(45,0)(45,100)
-\path(50,0)(50,100)
-\path(55,0)(55,100)
-\path(60,0)(60,100)
-\path(65,0)(65,100)
-\path(70,0)(70,100)
-\path(75,0)(75,100)
-\path(80,0)(80,100)
-\path(85,0)(85,100)
-\path(90,0)(90,100)
-\path(95,0)(95,100)
-\path(100,0)(100,100)
-\path(105,0)(105,100)
-\path(110,0)(110,100)
-\path(115,0)(115,100)
-\path(120,0)(120,100)
-\path(125,0)(125,100)
-\path(130,0)(130,100)
-\path(135,0)(135,100)
-\path(140,0)(140,100)
-\path(145,0)(145,100)
-\path(150,0)(150,100)
-\path(155,0)(155,100)
-\path(160,0)(160,100)
-\path(165,0)(165,100)
-\path(170,0)(170,100)
-\path(175,0)(175,100)
-\path(180,0)(180,100)
-\path(185,0)(185,100)
-\path(190,0)(190,100)
-\path(195,0)(195,100)
-\path(200,0)(200,100)
-\path(0,0)(200,0)
-\path(0,5)(200,5)
-\path(0,10)(200,10)
-\path(0,15)(200,15)
-\path(0,20)(200,20)
-\path(0,25)(200,25)
-\path(0,30)(200,30)
-\path(0,35)(200,35)
-\path(0,40)(200,40)
-\path(0,45)(200,45)
-\path(0,50)(200,50)
-\path(0,55)(200,55)
-\path(0,60)(200,60)
-\path(0,65)(200,65)
-\path(0,70)(200,70)
-\path(0,75)(200,75)
-\path(0,80)(200,80)
-\path(0,85)(200,85)
-\path(0,90)(200,90)
-\path(0,95)(200,95)
-\path(0,100)(200,100)
-%% ---
-\allinethickness{0.5pt}%
-\path(0,0)(0,100)
-\path(25,0)(25,100)
-\path(50,0)(50,100)
-\path(75,0)(75,100)
-\path(100,0)(100,100)
-\path(125,0)(125,100)
-\path(150,0)(150,100)
-\path(175,0)(175,100)
-\path(200,0)(200,100)
-\path(0,0)(200,0)
-\path(0,25)(200,25)
-\path(0,50)(200,50)
-\path(0,75)(200,75)
-\path(0,100)(200,100)
-%% ---
-\allinethickness{1pt}%
-\path(0,0)(0,100)
-\path(50,0)(50,100)
-\path(100,0)(100,100)
-\path(150,0)(150,100)
-\path(200,0)(200,100)
-\path(0,0)(200,0)
-\path(0,50)(200,50)
-\path(0,100)(200,100)
-%% ---
-\end{picture}
diff --git a/graphics/epix/doc/graphpaper.xp b/graphics/epix/doc/graphpaper.xp
deleted file mode 100644
index 795c499d4d..0000000000
--- a/graphics/epix/doc/graphpaper.xp
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*-ePiX-*- */
-/* graphpaper.c -- July 6, 2002 */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- bounding_box(P(-2,-1), P(2,1));
- picture(P(200,100));
- unitlength("0.01in");
-
- begin();
-
- pen(0.25);
- grid(10*x_size, 10*y_size);
-
- pen(0.5);
- grid(2*x_size, 2*y_size);
-
- pen(1);
- grid(x_size, y_size);
-
- end();
-}
diff --git a/graphics/epix/doc/hello.eepic b/graphics/epix/doc/hello.eepic
deleted file mode 100644
index 9b58fefc81..0000000000
--- a/graphics/epix/doc/hello.eepic
+++ /dev/null
@@ -1,15 +0,0 @@
-%% Generated from hello.xp on Thu Jun 28 11:33:40 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [-1,1] x [-1,1]
-%% Actual size: 2 x 1in
-%% Figure offset: left by 0in, down by 0in
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\setlength{\unitlength}{1in}
-\begin{picture}(2,1)(-0,-0)
-\put(1,0.5){\makebox(0,0)[c]{{\Huge Hello, world!}}}
-\allinethickness{1pt}%
-\path(2,0)(2,1)(0,1)(0,0)(2,0)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/hello.xp b/graphics/epix/doc/hello.xp
deleted file mode 100644
index c8bd3739b9..0000000000
--- a/graphics/epix/doc/hello.xp
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- picture(P(-1,-1),P(1,1), "2x1in");
-
- begin();
-
- // uncomment and permute these lines
- // crop_ellipse();
- // backing(Yellow());
- border(Black(), "1pt");
-
- font_size("Huge");
- label(P(0,0), "Hello, world!");
-
- end();
-}
diff --git a/graphics/epix/doc/koch.eepic b/graphics/epix/doc/koch.eepic
deleted file mode 100644
index 1f949958c0..0000000000
--- a/graphics/epix/doc/koch.eepic
+++ /dev/null
@@ -1,160 +0,0 @@
-%% Generated from koch.xp on Tue Jan 4 15:32:16 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [0,3] x [0,0.5]
-%% Actual size: 3in x 0.5in
-%% Figure offset: right by 0in, up by 0.25in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(3,0.5)(-0,-0.25)
-%% ---
-\path(0,0)(0.25,0)(0.25,0.25)(0.5,0.25)(0.5,0)(0.5,-0.25)(0.75,-0.25)
- (0.75,0)(1,0)
-%% ---
-\path(1,0)(1.0625,0)(1.0625,0.0625)(1.125,0.0625)(1.125,0)(1.125,-0.0625)
- (1.1875,-0.0625)(1.1875,0)(1.25,0)(1.25,0.0625)(1.1875,0.0625)
- (1.1875,0.125)(1.25,0.125)(1.3125,0.125)(1.3125,0.1875)(1.25,0.1875)
- (1.25,0.25)(1.3125,0.25)(1.3125,0.3125)(1.375,0.3125)(1.375,0.25)
- (1.375,0.1875)(1.4375,0.1875)(1.4375,0.25)(1.5,0.25)(1.5,0.1875)
- (1.5625,0.1875)(1.5625,0.125)(1.5,0.125)(1.4375,0.125)(1.4375,0.0625)
- (1.5,0.0625)(1.5,0)(1.5,-0.0625)(1.5625,-0.0625)(1.5625,-0.125)
- (1.5,-0.125)(1.4375,-0.125)(1.4375,-0.1875)(1.5,-0.1875)(1.5,-0.25)
- (1.5625,-0.25)(1.5625,-0.1875)(1.625,-0.1875)(1.625,-0.25)(1.625,-0.3125)
- (1.6875,-0.3125)(1.6875,-0.25)(1.75,-0.25)(1.75,-0.1875)(1.6875,-0.1875)
- (1.6875,-0.125)(1.75,-0.125)(1.8125,-0.125)(1.8125,-0.0625)(1.75,-0.0625)
- (1.75,0)(1.8125,0)(1.8125,0.0625)(1.875,0.0625)(1.875,0)
-\path(1.875,0)(1.875,-0.0625)(1.9375,-0.0625)(1.9375,0)(2,0)
-%% ---
-\path(2,0)(2.01562,0)(2.01562,0.015625)(2.03125,0.015625)(2.03125,0)
- (2.03125,-0.015625)(2.04688,-0.015625)(2.04688,0)(2.0625,0)
- (2.0625,0.015625)(2.04688,0.015625)(2.04688,0.03125)(2.0625,0.03125)
- (2.07812,0.03125)(2.07812,0.046875)(2.0625,0.046875)(2.0625,0.0625)
- (2.07812,0.0625)(2.07812,0.078125)(2.09375,0.078125)(2.09375,0.0625)
- (2.09375,0.046875)(2.10938,0.046875)(2.10938,0.0625)(2.125,0.0625)
- (2.125,0.046875)(2.14062,0.046875)(2.14062,0.03125)(2.125,0.03125)
- (2.10938,0.03125)(2.10938,0.015625)(2.125,0.015625)(2.125,0)
- (2.125,-0.015625)(2.14062,-0.015625)(2.14062,-0.03125)(2.125,-0.03125)
- (2.10938,-0.03125)(2.10938,-0.046875)(2.125,-0.046875)(2.125,-0.0625)
- (2.14062,-0.0625)(2.14062,-0.046875)(2.15625,-0.046875)(2.15625,-0.0625)
- (2.15625,-0.078125)(2.17188,-0.078125)(2.17188,-0.0625)(2.1875,-0.0625)
- (2.1875,-0.046875)(2.17188,-0.046875)(2.17188,-0.03125)(2.1875,-0.03125)
- (2.20312,-0.03125)(2.20312,-0.015625)(2.1875,-0.015625)(2.1875,0)
- (2.20312,0)(2.20312,0.015625)(2.21875,0.015625)(2.21875,0)
-\path(2.21875,0)(2.21875,-0.015625)(2.23438,-0.015625)(2.23438,0)(2.25,0)
- (2.25,0.015625)(2.23438,0.015625)(2.23438,0.03125)(2.25,0.03125)
- (2.26562,0.03125)(2.26562,0.046875)(2.25,0.046875)(2.25,0.0625)
- (2.23438,0.0625)(2.23438,0.046875)(2.21875,0.046875)(2.21875,0.0625)
- (2.21875,0.078125)(2.20312,0.078125)(2.20312,0.0625)(2.1875,0.0625)
- (2.1875,0.078125)(2.17188,0.078125)(2.17188,0.09375)(2.1875,0.09375)
- (2.20312,0.09375)(2.20312,0.109375)(2.1875,0.109375)(2.1875,0.125)
- (2.20312,0.125)(2.20312,0.140625)(2.21875,0.140625)(2.21875,0.125)
- (2.21875,0.109375)(2.23438,0.109375)(2.23438,0.125)(2.25,0.125)
- (2.26562,0.125)(2.26562,0.140625)(2.28125,0.140625)(2.28125,0.125)
- (2.28125,0.109375)(2.29688,0.109375)(2.29688,0.125)(2.3125,0.125)
- (2.3125,0.140625)(2.29688,0.140625)(2.29688,0.15625)(2.3125,0.15625)
- (2.32812,0.15625)(2.32812,0.171875)(2.3125,0.171875)(2.3125,0.1875)
- (2.29688,0.1875)(2.29688,0.171875)(2.28125,0.171875)(2.28125,0.1875)
- (2.28125,0.203125)(2.26562,0.203125)(2.26562,0.1875)
-\path(2.26562,0.1875)(2.25,0.1875)(2.25,0.203125)(2.23438,0.203125)
- (2.23438,0.21875)(2.25,0.21875)(2.26562,0.21875)(2.26562,0.234375)
- (2.25,0.234375)(2.25,0.25)(2.26562,0.25)(2.26562,0.265625)
- (2.28125,0.265625)(2.28125,0.25)(2.28125,0.234375)(2.29688,0.234375)
- (2.29688,0.25)(2.3125,0.25)(2.3125,0.265625)(2.29688,0.265625)
- (2.29688,0.28125)(2.3125,0.28125)(2.32812,0.28125)(2.32812,0.296875)
- (2.3125,0.296875)(2.3125,0.3125)(2.32812,0.3125)(2.32812,0.328125)
- (2.34375,0.328125)(2.34375,0.3125)(2.34375,0.296875)(2.35938,0.296875)
- (2.35938,0.3125)(2.375,0.3125)(2.375,0.296875)(2.39062,0.296875)
- (2.39062,0.28125)(2.375,0.28125)(2.35938,0.28125)(2.35938,0.265625)
- (2.375,0.265625)(2.375,0.25)(2.375,0.234375)(2.39062,0.234375)
- (2.39062,0.21875)(2.375,0.21875)(2.35938,0.21875)(2.35938,0.203125)
- (2.375,0.203125)(2.375,0.1875)(2.39062,0.1875)(2.39062,0.203125)
- (2.40625,0.203125)(2.40625,0.1875)(2.40625,0.171875)(2.42188,0.171875)
- (2.42188,0.1875)(2.4375,0.1875)(2.4375,0.203125)(2.42188,0.203125)
-\path(2.42188,0.203125)(2.42188,0.21875)(2.4375,0.21875)(2.45312,0.21875)
- (2.45312,0.234375)(2.4375,0.234375)(2.4375,0.25)(2.45312,0.25)
- (2.45312,0.265625)(2.46875,0.265625)(2.46875,0.25)(2.46875,0.234375)
- (2.48438,0.234375)(2.48438,0.25)(2.5,0.25)(2.5,0.234375)
- (2.51562,0.234375)(2.51562,0.21875)(2.5,0.21875)(2.48438,0.21875)
- (2.48438,0.203125)(2.5,0.203125)(2.5,0.1875)(2.51562,0.1875)
- (2.51562,0.203125)(2.53125,0.203125)(2.53125,0.1875)(2.53125,0.171875)
- (2.54688,0.171875)(2.54688,0.1875)(2.5625,0.1875)(2.5625,0.171875)
- (2.57812,0.171875)(2.57812,0.15625)(2.5625,0.15625)(2.54688,0.15625)
- (2.54688,0.140625)(2.5625,0.140625)(2.5625,0.125)(2.54688,0.125)
- (2.54688,0.109375)(2.53125,0.109375)(2.53125,0.125)(2.53125,0.140625)
- (2.51562,0.140625)(2.51562,0.125)(2.5,0.125)(2.48438,0.125)
- (2.48438,0.109375)(2.46875,0.109375)(2.46875,0.125)(2.46875,0.140625)
- (2.45312,0.140625)(2.45312,0.125)(2.4375,0.125)(2.4375,0.109375)
- (2.45312,0.109375)(2.45312,0.09375)(2.4375,0.09375)(2.42188,0.09375)
-\path(2.42188,0.09375)(2.42188,0.078125)(2.4375,0.078125)(2.4375,0.0625)
- (2.45312,0.0625)(2.45312,0.078125)(2.46875,0.078125)(2.46875,0.0625)
- (2.46875,0.046875)(2.48438,0.046875)(2.48438,0.0625)(2.5,0.0625)
- (2.5,0.046875)(2.51562,0.046875)(2.51562,0.03125)(2.5,0.03125)
- (2.48438,0.03125)(2.48438,0.015625)(2.5,0.015625)(2.5,0)(2.5,-0.015625)
- (2.51562,-0.015625)(2.51562,-0.03125)(2.5,-0.03125)(2.48438,-0.03125)
- (2.48438,-0.046875)(2.5,-0.046875)(2.5,-0.0625)(2.51562,-0.0625)
- (2.51562,-0.046875)(2.53125,-0.046875)(2.53125,-0.0625)
- (2.53125,-0.078125)(2.54688,-0.078125)(2.54688,-0.0625)(2.5625,-0.0625)
- (2.5625,-0.078125)(2.57812,-0.078125)(2.57812,-0.09375)(2.5625,-0.09375)
- (2.54688,-0.09375)(2.54688,-0.109375)(2.5625,-0.109375)(2.5625,-0.125)
- (2.54688,-0.125)(2.54688,-0.140625)(2.53125,-0.140625)(2.53125,-0.125)
- (2.53125,-0.109375)(2.51562,-0.109375)(2.51562,-0.125)(2.5,-0.125)
- (2.48438,-0.125)(2.48438,-0.140625)(2.46875,-0.140625)(2.46875,-0.125)
- (2.46875,-0.109375)(2.45312,-0.109375)(2.45312,-0.125)(2.4375,-0.125)
-\path(2.4375,-0.125)(2.4375,-0.140625)(2.45312,-0.140625)(2.45312,-0.15625)
- (2.4375,-0.15625)(2.42188,-0.15625)(2.42188,-0.171875)(2.4375,-0.171875)
- (2.4375,-0.1875)(2.45312,-0.1875)(2.45312,-0.171875)(2.46875,-0.171875)
- (2.46875,-0.1875)(2.46875,-0.203125)(2.48438,-0.203125)(2.48438,-0.1875)
- (2.5,-0.1875)(2.5,-0.203125)(2.51562,-0.203125)(2.51562,-0.21875)
- (2.5,-0.21875)(2.48438,-0.21875)(2.48438,-0.234375)(2.5,-0.234375)
- (2.5,-0.25)(2.51562,-0.25)(2.51562,-0.234375)(2.53125,-0.234375)
- (2.53125,-0.25)(2.53125,-0.265625)(2.54688,-0.265625)(2.54688,-0.25)
- (2.5625,-0.25)(2.5625,-0.234375)(2.54688,-0.234375)(2.54688,-0.21875)
- (2.5625,-0.21875)(2.57812,-0.21875)(2.57812,-0.203125)(2.5625,-0.203125)
- (2.5625,-0.1875)(2.57812,-0.1875)(2.57812,-0.171875)(2.59375,-0.171875)
- (2.59375,-0.1875)(2.59375,-0.203125)(2.60938,-0.203125)(2.60938,-0.1875)
- (2.625,-0.1875)(2.625,-0.203125)(2.64062,-0.203125)(2.64062,-0.21875)
- (2.625,-0.21875)(2.60938,-0.21875)(2.60938,-0.234375)(2.625,-0.234375)
- (2.625,-0.25)(2.625,-0.265625)(2.64062,-0.265625)(2.64062,-0.28125)
-\path(2.64062,-0.28125)(2.625,-0.28125)(2.60938,-0.28125)
- (2.60938,-0.296875)(2.625,-0.296875)(2.625,-0.3125)(2.64062,-0.3125)
- (2.64062,-0.296875)(2.65625,-0.296875)(2.65625,-0.3125)
- (2.65625,-0.328125)(2.67188,-0.328125)(2.67188,-0.3125)(2.6875,-0.3125)
- (2.6875,-0.296875)(2.67188,-0.296875)(2.67188,-0.28125)(2.6875,-0.28125)
- (2.70312,-0.28125)(2.70312,-0.265625)(2.6875,-0.265625)(2.6875,-0.25)
- (2.70312,-0.25)(2.70312,-0.234375)(2.71875,-0.234375)(2.71875,-0.25)
- (2.71875,-0.265625)(2.73438,-0.265625)(2.73438,-0.25)(2.75,-0.25)
- (2.75,-0.234375)(2.73438,-0.234375)(2.73438,-0.21875)(2.75,-0.21875)
- (2.76562,-0.21875)(2.76562,-0.203125)(2.75,-0.203125)(2.75,-0.1875)
- (2.73438,-0.1875)(2.73438,-0.203125)(2.71875,-0.203125)(2.71875,-0.1875)
- (2.71875,-0.171875)(2.70312,-0.171875)(2.70312,-0.1875)(2.6875,-0.1875)
- (2.6875,-0.171875)(2.67188,-0.171875)(2.67188,-0.15625)(2.6875,-0.15625)
- (2.70312,-0.15625)(2.70312,-0.140625)(2.6875,-0.140625)(2.6875,-0.125)
- (2.70312,-0.125)(2.70312,-0.109375)(2.71875,-0.109375)(2.71875,-0.125)
- (2.71875,-0.140625)(2.73438,-0.140625)
-\path(2.73438,-0.140625)(2.73438,-0.125)(2.75,-0.125)(2.76562,-0.125)
- (2.76562,-0.109375)(2.78125,-0.109375)(2.78125,-0.125)(2.78125,-0.140625)
- (2.79688,-0.140625)(2.79688,-0.125)(2.8125,-0.125)(2.8125,-0.109375)
- (2.79688,-0.109375)(2.79688,-0.09375)(2.8125,-0.09375)(2.82812,-0.09375)
- (2.82812,-0.078125)(2.8125,-0.078125)(2.8125,-0.0625)(2.79688,-0.0625)
- (2.79688,-0.078125)(2.78125,-0.078125)(2.78125,-0.0625)
- (2.78125,-0.046875)(2.76562,-0.046875)(2.76562,-0.0625)(2.75,-0.0625)
- (2.75,-0.046875)(2.73438,-0.046875)(2.73438,-0.03125)(2.75,-0.03125)
- (2.76562,-0.03125)(2.76562,-0.015625)(2.75,-0.015625)(2.75,0)(2.76562,0)
- (2.76562,0.015625)(2.78125,0.015625)(2.78125,0)(2.78125,-0.015625)
- (2.79688,-0.015625)(2.79688,0)(2.8125,0)(2.8125,0.015625)
- (2.79688,0.015625)(2.79688,0.03125)(2.8125,0.03125)(2.82812,0.03125)
- (2.82812,0.046875)(2.8125,0.046875)(2.8125,0.0625)(2.82812,0.0625)
- (2.82812,0.078125)(2.84375,0.078125)(2.84375,0.0625)(2.84375,0.046875)
- (2.85938,0.046875)(2.85938,0.0625)(2.875,0.0625)(2.875,0.046875)
-\path(2.875,0.046875)(2.89062,0.046875)(2.89062,0.03125)(2.875,0.03125)
- (2.85938,0.03125)(2.85938,0.015625)(2.875,0.015625)(2.875,0)
- (2.875,-0.015625)(2.89062,-0.015625)(2.89062,-0.03125)(2.875,-0.03125)
- (2.85938,-0.03125)(2.85938,-0.046875)(2.875,-0.046875)(2.875,-0.0625)
- (2.89062,-0.0625)(2.89062,-0.046875)(2.90625,-0.046875)(2.90625,-0.0625)
- (2.90625,-0.078125)(2.92188,-0.078125)(2.92188,-0.0625)(2.9375,-0.0625)
- (2.9375,-0.046875)(2.92188,-0.046875)(2.92188,-0.03125)(2.9375,-0.03125)
- (2.95312,-0.03125)(2.95312,-0.015625)(2.9375,-0.015625)(2.9375,0)
- (2.95312,0)(2.95312,0.015625)(2.96875,0.015625)(2.96875,0)
- (2.96875,-0.015625)(2.98438,-0.015625)(2.98438,0)(3,0)
-%% ---
-\end{picture}
diff --git a/graphics/epix/doc/koch.xp b/graphics/epix/doc/koch.xp
deleted file mode 100644
index d1a04e1c0f..0000000000
--- a/graphics/epix/doc/koch.xp
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*-ePiX-*- */
-/* koch.c -- Simple fractal "curve" generation. -- June 6, 2002 */
-
-#include "epix.h"
-using namespace ePiX;
-
-// const int koch_seed[] = {6, 4, 0, 1, -1, 0};
-const int seed[] = {4, 8, 0, 1, 0, 3, 3, 0, 1, 0};
-
-int main()
-{
- bounding_box(P(0,0), P(3, 0.5));
- picture(P(3, 0.5));
- unitlength("1in");
- offset(P(0,0.25));
-
- begin();
-
- for (int i=1; i <= 3; ++i)
- fractal(P(i-1,0), P(i,0), i, seed);
-
- end();
-}
-
diff --git a/graphics/epix/doc/layout.eepic b/graphics/epix/doc/layout.eepic
deleted file mode 100644
index 07eec3fcb6..0000000000
--- a/graphics/epix/doc/layout.eepic
+++ /dev/null
@@ -1,1511 +0,0 @@
-%% Generated from layout.xp on Sat Jun 30 12:16:41 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [0,2] x [0,3]
-%% Actual size: 5 x 7.5in
-%% Figure offset: left by 0in, down by 0in
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\xdefinecolor{rgb_980000}{rgb}{0.596078,0,0}
-\setlength{\unitlength}{1in}
-\begin{picture}(5,7.5)(-0,-0)
-\path(1.95438,5.77398)(1.9095,5.84756)(1.86459,5.91634)
- (1.81949,5.98073)(1.77406,6.04108)(1.72817,6.09772)
- (1.68169,6.15093)(1.63449,6.20095)(1.58643,6.24802)
- (1.53738,6.29233)(1.4872,6.33406)(1.43575,6.37337)(1.38287,6.41039)
- (1.32843,6.44527)(1.27224,6.4781)(1.21415,6.50899)(1.15394,6.53802)
- (1.09144,6.56528)(1.02641,6.59083)(0.958625,6.61472)
- (0.887817,6.63701)(0.813702,6.65773)(0.735966,6.67692)
- (0.654259,6.69459)(0.568192,6.71076)
-%%
-\path(1.7999,5.73751)(1.76689,5.81018)(1.7333,5.87809)
- (1.69903,5.94164)(1.66399,6.00118)(1.6281,6.05703)(1.59125,6.10945)
- (1.55336,6.15868)(1.51431,6.20496)(1.47401,6.24846)
- (1.43234,6.28936)(1.38918,6.32782)(1.34441,6.36396)
- (1.29789,6.39792)(1.24946,6.4298)(1.19898,6.45968)(1.14626,6.48766)
- (1.09112,6.5138)(1.03334,6.53816)(0.972699,6.5608)
- (0.908939,6.58175)(0.841779,6.60103)(0.770903,6.61868)
- (0.69596,6.6347)(0.616556,6.64908)
-%%
-\path(1.64758,5.71257)(1.62656,5.78375)(1.60445,5.85027)
- (1.5812,5.91251)(1.55677,5.97079)(1.53112,6.02543)(1.50418,6.07667)
- (1.4759,6.12475)(1.4462,6.16989)(1.41501,6.21226)(1.38225,6.25204)
- (1.34781,6.28935)(1.31159,6.32435)(1.27348,6.35712)
- (1.23334,6.38779)(1.19104,6.41643)(1.14642,6.44311)(1.09929,6.4679)
- (1.04947,6.49085)(0.996736,6.512)(0.940842,6.53138)(0.881517,6.549)
- (0.818452,6.56488)(0.7513,6.579)(0.679669,6.59135)
-%%
-\path(1.49959,5.69983)(1.49052,5.76899)(1.47988,5.83363)
- (1.46769,5.89408)(1.45395,5.95068)(1.43865,6.00371)(1.42178,6.0534)
- (1.4033,6.09999)(1.38319,6.14367)(1.36138,6.18461)(1.33782,6.22297)
- (1.31245,6.25888)(1.28517,6.29246)(1.2559,6.32381)(1.22453,6.35304)
- (1.19093,6.3802)(1.15497,6.40538)(1.11648,6.42861)(1.0753,6.44994)
- (1.03121,6.4694)(0.983998,6.48701)(0.933394,6.50277)
- (0.879107,6.51667)(0.820805,6.52869)(0.758105,6.53879)
-%%
-\path(1.35808,5.69964)(1.36071,5.7663)(1.36137,5.82859)
- (1.36012,5.88685)(1.35701,5.94137)(1.35206,5.99243)
- (1.34528,6.04024)(1.33669,6.08502)(1.32628,6.12695)
- (1.31402,6.16618)(1.29989,6.20287)(1.28384,6.23713)(1.2658,6.26908)
- (1.24573,6.2988)(1.22352,6.32638)(1.19908,6.35188)(1.17229,6.37536)
- (1.14301,6.39686)(1.1111,6.41641)(1.07637,6.43402)(1.03861,6.4497)
- (0.997597,6.46343)(0.953048,6.47519)(0.904656,6.48495)(0.852063,6.49264)
-%%
-\path(1.22499,5.71201)(1.23894,5.77574)(1.25058,5.83529)
- (1.26001,5.89099)(1.26732,5.94311)(1.27257,5.99188)
- (1.27581,6.03753)(1.27707,6.08023)(1.27637,6.12016)
- (1.27372,6.15746)(1.26912,6.19226)(1.26255,6.22468)(1.25398,6.2548)
- (1.24336,6.28272)(1.23063,6.30849)(1.21572,6.33218)
- (1.19853,6.35383)(1.17897,6.37346)(1.1569,6.3911)(1.13216,6.40674)
- (1.10459,6.42038)(1.07398,6.43198)(1.04008,6.44151)
- (1.00263,6.44891)(0.961291,6.45409)
-%%
-\path(1.10205,5.73661)(1.12678,5.79705)(1.14894,5.85356)
- (1.16867,5.90641)(1.18608,5.95585)(1.20126,6.00209)(1.2143,6.04534)
- (1.22526,6.08575)(1.23418,6.12348)(1.2411,6.15867)(1.24604,6.19142)
- (1.24901,6.22184)(1.25,6.25)(1.249,6.27598)(1.24597,6.29984)
- (1.24087,6.32162)(1.23364,6.34134)(1.22419,6.35903)
- (1.21243,6.37468)(1.19825,6.3883)(1.1815,6.39984)(1.16202,6.40927)
- (1.13961,6.41653)(1.11404,6.42153)(1.08505,6.42418)
-%%
-\path(0.990653,5.77275)(1.02551,5.82968)(1.05762,5.88291)
- (1.08714,5.93269)(1.11422,5.97925)(1.13897,6.02279)(1.1615,6.06346)
- (1.18189,6.10143)(1.20023,6.13683)(1.21656,6.16978)
- (1.23095,6.20036)(1.24341,6.22868)(1.25398,6.2548)(1.26266,6.27878)
- (1.26945,6.30066)(1.27433,6.32047)(1.27727,6.33823)
- (1.27824,6.35395)(1.27716,6.36761)(1.27397,6.37919)
- (1.26857,6.38865)(1.26084,6.39593)(1.25063,6.40095)
- (1.23778,6.40361)(1.22209,6.40378)
-%%
-\path(0.891818,5.81952)(0.936069,5.87276)(0.977467,5.92257)
- (1.01619,5.96916)(1.05241,6.01272)(1.08626,6.05343)
- (1.11788,6.09143)(1.14736,6.12687)(1.17482,6.15986)
- (1.20032,6.19049)(1.22395,6.21886)(1.24576,6.24504)(1.2658,6.26908)
- (1.28412,6.29103)(1.30073,6.31092)(1.31565,6.32877)
- (1.32889,6.34458)(1.34044,6.35836)(1.35028,6.37006)
- (1.35839,6.37967)(1.36472,6.38712)(1.3692,6.39234)(1.37176,6.39522)
- (1.3723,6.39566)(1.37069,6.39349)
-%%
-\path(0.806183,5.87573)(0.85904,5.92524)(0.909007,5.97156)
- (0.956284,6.01489)(1.00105,6.0554)(1.04347,6.09324)
- (1.08369,6.12855)(1.12183,6.16142)(1.15802,6.19198)
- (1.19236,6.22029)(1.22494,6.24644)(1.25585,6.27048)
- (1.28517,6.29246)(1.31296,6.31241)(1.33928,6.33035)
- (1.36418,6.34629)(1.3877,6.36022)(1.40988,6.37214)(1.43074,6.38199)
- (1.4503,6.38973)(1.46858,6.3953)(1.48558,6.3986)(1.50128,6.39953)
- (1.51567,6.39793)(1.52872,6.39365)
-%%
-\path(0.734,5.94009)(0.794644,5.98587)(0.852427,6.02873)
- (0.907559,6.06882)(0.960235,6.1063)(1.01063,6.14129)
- (1.05891,6.17391)(1.10521,6.20425)(1.14968,6.2324)(1.19244,6.25843)
- (1.23361,6.28241)(1.27329,6.30437)(1.31159,6.32435)(1.3486,6.34237)
- (1.38441,6.35845)(1.41911,6.37258)(1.45277,6.38474)
- (1.48548,6.39492)(1.5173,6.40305)(1.54832,6.40909)(1.57859,6.41296)
- (1.6082,6.41454)(1.63721,6.41373)(1.6657,6.41035)(1.69373,6.40423)
-%%
-\path(0.675166,6.01119)(0.742777,6.05334)(0.807609,6.09281)
- (0.869881,6.12974)(0.929796,6.16426)(0.987543,6.19647)
- (1.0433,6.22648)(1.09722,6.25436)(1.14946,6.28019)(1.20016,6.30402)
- (1.24947,6.32591)(1.29751,6.34588)(1.34441,6.36396)
- (1.39029,6.38017)(1.43528,6.39451)(1.47948,6.40696)(1.52302,6.4175)
- (1.56602,6.42609)(1.60861,6.43269)(1.65091,6.43722)(1.69305,6.4396)
- (1.73517,6.4397)(1.77744,6.43741)(1.82002,6.43255)(1.86308,6.42493)
-%%
-\path(0.62927,6.08763)(0.703045,6.12629)(0.774167,6.1625)
- (0.842861,6.1964)(0.909337,6.22808)(0.973792,6.25763)
- (1.03641,6.28514)(1.09737,6.31068)(1.15683,6.3343)(1.21496,6.35605)
- (1.27191,6.37597)(1.32783,6.39408)(1.38287,6.41039)
- (1.43719,6.42493)(1.49093,6.43766)(1.54425,6.44859)
- (1.59729,6.45768)(1.65023,6.46488)(1.70324,6.47014)
- (1.75649,6.47337)(1.81019,6.4745)(1.86455,6.47339)(1.9198,6.46991)
- (1.97622,6.46388)(2.03409,6.4551)
-%%
-\path(1.95438,5.77398)(1.877,5.75436)(1.7999,5.73751)
- (1.72333,5.72355)(1.64758,5.71257)(1.57291,5.70464)
- (1.49959,5.69983)(1.4279,5.69816)(1.35808,5.69964)(1.29037,5.70427)
- (1.22499,5.71201)(1.16216,5.72282)(1.10205,5.73661)
- (1.04484,5.75329)(0.990653,5.77275)(0.939616,5.79488)
- (0.891818,5.81952)(0.847326,5.84652)(0.806183,5.87573)
- (0.768408,5.90698)(0.734,5.94009)(0.702933,5.97489)
- (0.675166,6.01119)(0.650637,6.04883)(0.62927,6.08763)
-%%
-\path(1.86459,5.91634)(1.79875,5.89596)(1.7333,5.87809)
- (1.66845,5.86282)(1.60445,5.85027)(1.54151,5.84052)
- (1.47988,5.83363)(1.41976,5.82964)(1.36137,5.82859)
- (1.30491,5.83047)(1.25058,5.83529)(1.19853,5.843)(1.14894,5.85356)
- (1.10193,5.86689)(1.05762,5.88291)(1.01611,5.90151)
- (0.977467,5.92257)(0.941756,5.94597)(0.909007,5.97156)
- (0.879232,5.9992)(0.852427,6.02873)(0.828566,6.05999)
- (0.807609,6.09281)(0.789499,6.12704)(0.774167,6.1625)
-%%
-\path(1.77406,6.04108)(1.71877,6.02)(1.66399,6.00118)
- (1.60993,5.98475)(1.55677,5.97079)(1.50471,5.95942)
- (1.45395,5.95068)(1.40465,5.94465)(1.35701,5.94137)
- (1.31118,5.94086)(1.26732,5.94311)(1.22558,5.94812)
- (1.18608,5.95585)(1.14892,5.96625)(1.11422,5.97925)
- (1.08203,5.99478)(1.05241,6.01272)(1.02541,6.03297)(1.00105,6.0554)
- (0.97933,6.07989)(0.960235,6.1063)(0.943738,6.13447)
- (0.929796,6.16426)(0.918352,6.19551)(0.909337,6.22808)
-%%
-\path(1.68169,6.15093)(1.63613,6.12916)(1.59125,6.10945)
- (1.54721,6.09191)(1.50418,6.07667)(1.46232,6.0638)(1.42178,6.0534)
- (1.38272,6.04553)(1.34528,6.04024)(1.3096,6.03757)(1.27581,6.03753)
- (1.24401,6.04012)(1.2143,6.04534)(1.18677,6.05313)(1.1615,6.06346)
- (1.13852,6.07626)(1.11788,6.09143)(1.0996,6.1089)(1.08369,6.12855)
- (1.07013,6.15026)(1.05891,6.17391)(1.04998,6.19936)(1.0433,6.22648)
- (1.0388,6.25512)(1.03641,6.28514)
-%%
-\path(1.58643,6.24802)(1.54994,6.22555)(1.51431,6.20496)
- (1.47969,6.18637)(1.4462,6.16989)(1.41399,6.15563)(1.38319,6.14367)
- (1.35391,6.13409)(1.32628,6.12695)(1.3004,6.12229)(1.27637,6.12016)
- (1.25427,6.12056)(1.23418,6.12348)(1.21615,6.12892)
- (1.20023,6.13683)(1.18644,6.14717)(1.17482,6.15986)
- (1.16535,6.17483)(1.15802,6.19198)(1.15281,6.21121)(1.14968,6.2324)
- (1.14858,6.25544)(1.14946,6.28019)(1.15223,6.30652)(1.15683,6.3343)
-%%
-\path(1.4872,6.33406)(1.45923,6.31085)(1.43234,6.28936)
- (1.40664,6.26972)(1.38225,6.25204)(1.35927,6.23642)
- (1.33782,6.22297)(1.318,6.21176)(1.29989,6.20287)(1.28357,6.19636)
- (1.26912,6.19226)(1.2566,6.19061)(1.24604,6.19142)(1.23748,6.19468)
- (1.23095,6.20036)(1.22644,6.20844)(1.22395,6.21886)
- (1.22346,6.23156)(1.22494,6.24644)(1.22834,6.26342)
- (1.23361,6.28241)(1.24068,6.30328)(1.24947,6.32591)
- (1.25991,6.35018)(1.27191,6.37597)
-%%
-\path(1.38287,6.41039)(1.36299,6.38639)(1.34441,6.36396)
- (1.32725,6.34324)(1.31159,6.32435)(1.29754,6.30738)
- (1.28517,6.29246)(1.27457,6.27966)(1.2658,6.26908)(1.25892,6.26077)
- (1.25398,6.2548)(1.251,6.2512)(1.25,6.25)(1.251,6.2512)
- (1.25398,6.2548)(1.25892,6.26077)(1.2658,6.26908)(1.27457,6.27966)
- (1.28517,6.29246)(1.29754,6.30738)(1.31159,6.32435)
- (1.32725,6.34324)(1.34441,6.36396)(1.36299,6.38639)(1.38287,6.41039)
-%%
-\path(1.27224,6.4781)(1.26007,6.45322)(1.24946,6.4298)
- (1.24053,6.40794)(1.23334,6.38779)(1.22799,6.36945)
- (1.22453,6.35304)(1.22302,6.33865)(1.22352,6.32638)
- (1.22604,6.31631)(1.23063,6.30849)(1.23727,6.30299)
- (1.24597,6.29984)(1.25671,6.29906)(1.26945,6.30066)
- (1.28414,6.30462)(1.30073,6.31092)(1.31913,6.31951)
- (1.33928,6.33035)(1.36108,6.34335)(1.38441,6.35845)
- (1.40918,6.37553)(1.43528,6.39451)(1.46257,6.41526)(1.49093,6.43766)
-%%
-\path(1.15394,6.53802)(1.14916,6.51218)(1.14626,6.48766)
- (1.14532,6.46459)(1.14642,6.44311)(1.14962,6.42333)
- (1.15497,6.40538)(1.16252,6.38935)(1.17229,6.37536)(1.18429,6.3635)
- (1.19853,6.35383)(1.21499,6.34643)(1.23364,6.34134)(1.25442,6.3386)
- (1.27727,6.33823)(1.30213,6.34023)(1.32889,6.34458)
- (1.35745,6.35126)(1.3877,6.36022)(1.41952,6.37141)(1.45277,6.38474)
- (1.48732,6.40014)(1.52302,6.4175)(1.55973,6.43672)(1.59729,6.45768)
-%%
-\path(1.02641,6.59083)(1.02876,6.56389)(1.03334,6.53816)
- (1.04022,6.51377)(1.04947,6.49085)(1.06115,6.46953)(1.0753,6.44994)
- (1.09195,6.4322)(1.1111,6.41641)(1.13276,6.40268)(1.1569,6.3911)
- (1.18348,6.38175)(1.21243,6.37468)(1.24369,6.36996)
- (1.27716,6.36761)(1.31274,6.36764)(1.35028,6.37006)
- (1.38967,6.37486)(1.43074,6.38199)(1.47334,6.39141)(1.5173,6.40305)
- (1.56245,6.41685)(1.60861,6.43269)(1.6556,6.45049)(1.70324,6.47014)
-%%
-\path(0.887817,6.63701)(0.897069,6.60884)(0.908939,6.58175)
- (0.923508,6.55588)(0.940842,6.53138)(0.960994,6.50838)
- (0.983998,6.48701)(1.00987,6.46741)(1.03861,6.4497)(1.0702,6.43398)
- (1.10459,6.42038)(1.14172,6.40897)(1.1815,6.39984)(1.22383,6.39305)
- (1.26857,6.38865)(1.31559,6.38667)(1.36472,6.38712)
- (1.41578,6.39001)(1.46858,6.3953)(1.52292,6.40297)(1.57859,6.41296)
- (1.63537,6.42519)(1.69305,6.4396)(1.75139,6.45607)(1.81019,6.4745)
-%%
-\path(0.735966,6.67692)(0.7519,6.64732)(0.770903,6.61868)
- (0.793063,6.59115)(0.818452,6.56488)(0.847122,6.54)
- (0.879107,6.51667)(0.91442,6.49502)(0.953048,6.47519)
- (0.994955,6.45732)(1.04008,6.44151)(1.08834,6.42788)
- (1.13961,6.41653)(1.19376,6.40753)(1.25063,6.40095)
- (1.31003,6.39684)(1.37176,6.39522)(1.43559,6.39612)
- (1.50128,6.39953)(1.56857,6.40541)(1.63721,6.41373)
- (1.70692,6.42442)(1.77744,6.43741)(1.84849,6.45261)(1.9198,6.46991)
-%%
-\path(0.568192,6.71076)(0.590579,6.67951)(0.616556,6.64908)
- (0.646225,6.61965)(0.679669,6.59135)(0.716949,6.56435)
- (0.758105,6.53879)(0.803148,6.51484)(0.852063,6.49264)
- (0.904803,6.47235)(0.961291,6.45409)(1.02142,6.43799)
- (1.08505,6.42418)(1.15201,6.41274)(1.22209,6.40378)
- (1.29507,6.39734)(1.37069,6.39349)(1.44868,6.39226)
- (1.52872,6.39365)(1.61052,6.39765)(1.69373,6.40423)
- (1.77803,6.41335)(1.86308,6.42493)(1.94854,6.43888)(2.03409,6.4551)
-%%
-\path(1.25,6.25)(0.90831,5.83754)
-%%
-\path(0.929086,5.88702)(0.940008,5.90021)
-\path(0.922161,5.87053)(0.944004,5.8969)
-\path(0.915235,5.85404)(0.947999,5.89359)
-\path(0.90831,5.83754)(0.951995,5.89028)
-\path(0.923227,5.84742)(0.955991,5.88697)
-\path(0.938144,5.85729)(0.959987,5.88366)
-\path(0.953061,5.86716)(0.963983,5.88035)
-\path(0.951995,5.89028)(0.936012,5.90352)(0.90831,5.83754)
- (0.967979,5.87704)(0.951995,5.89028)
-%%
-\path(1.25,6.25)(1.9921,6.09631)
-%%
-\path(1.90984,6.09745)(1.88348,6.10291)
-\path(1.93726,6.09707)(1.88453,6.10799)
-\path(1.96468,6.09669)(1.88558,6.11307)
-\path(1.9921,6.09631)(1.88663,6.11815)
-\path(1.96678,6.10685)(1.88768,6.12323)
-\path(1.94147,6.11739)(1.88874,6.12831)
-\path(1.91616,6.12793)(1.88979,6.13339)
-\path(1.88663,6.11815)(1.88242,6.09782)(1.9921,6.09631)
- (1.89084,6.13847)(1.88663,6.11815)
-%%
-\allinethickness{1pt}%
-\color{rgb_980000}%
-\path(2.375,5.125)
- (2.375,7.375)(0.125,7.375)(0.125,5.125)(2.375,5.125)
-%%
-\allinethickness{0.4pt}%
-\color{rgb_000000}%
-\path(1.57249,2.99581)
- (1.60208,3.08238)(1.62568,3.16486)(1.6436,3.24353)(1.65613,3.31869)
- (1.66348,3.39059)(1.66589,3.45945)(1.66353,3.52548)
- (1.65656,3.58888)(1.64515,3.64982)(1.6294,3.70847)(1.60943,3.76497)
- (1.58534,3.81945)(1.5572,3.87205)(1.52509,3.92289)(1.48905,3.97206)
- (1.44912,4.01968)(1.40534,4.06584)(1.35773,4.11062)(1.3063,4.15411)
- (1.25104,4.19638)(1.19195,4.23751)(1.129,4.27756)(1.06218,4.3166)(0.991435,4.35469)
-%%
-\path(1.39706,3.04908)(1.43364,3.12654)(1.46419,3.20061)
- (1.48899,3.27155)(1.50828,3.33955)(1.52226,3.40482)
- (1.53114,3.46754)(1.53508,3.52788)(1.53423,3.58598)(1.5287,3.64199)
- (1.51863,3.69603)(1.50409,3.74824)(1.48518,3.79871)
- (1.46195,3.84755)(1.43447,3.89487)(1.40276,3.94074)
- (1.36687,3.98526)(1.3268,4.02851)(1.28256,4.07055)(1.23414,4.11145)
- (1.18153,4.1513)(1.12471,4.19013)(1.06363,4.22802)
- (0.998248,4.26502)(0.928503,4.30119)
-%%
-\path(1.24877,3.10605)(1.29092,3.17474)(1.32712,3.24068)
- (1.3576,3.30403)(1.38257,3.36496)(1.40221,3.42363)(1.41669,3.48018)
- (1.42614,3.53473)(1.43068,3.5874)(1.43043,3.6383)(1.42548,3.68755)
- (1.4159,3.73523)(1.40174,3.78143)(1.38307,3.82624)(1.35991,3.86973)
- (1.33228,3.91199)(1.3002,3.95308)(1.26366,3.99306)(1.22265,4.03201)
- (1.17713,4.06997)(1.12708,4.107)(1.07245,4.14315)(1.01316,4.17848)
- (0.94915,4.21303)(0.88033,4.24685)
-%%
-\path(1.12691,3.16617)(1.17344,3.22652)(1.21419,3.28463)
- (1.24934,3.34063)(1.27907,3.39466)(1.30353,3.44682)
- (1.32285,3.49721)(1.33713,3.54595)(1.34648,3.59312)
- (1.35097,3.63881)(1.35067,3.68311)(1.34564,3.72607)(1.3359,3.76779)
- (1.32149,3.80832)(1.30242,3.84773)(1.27869,3.88608)
- (1.25028,3.92343)(1.21716,3.95982)(1.17931,3.99531)
- (1.13666,4.02995)(1.08914,4.06378)(1.0367,4.09685)(0.979215,4.1292)
- (0.916597,4.16087)(0.848721,4.19189)
-%%
-\path(1.03051,3.22888)(1.08046,3.28136)(1.12486,3.33203)
- (1.16386,3.38098)(1.1976,3.42832)(1.22618,3.47411)(1.24971,3.51846)
- (1.26827,3.56143)(1.28193,3.60309)(1.29073,3.64351)
- (1.29472,3.68275)(1.29392,3.72088)(1.28835,3.75794)(1.27801,3.794)
- (1.26288,3.82909)(1.24294,3.86327)(1.21815,3.89658)
- (1.18844,3.92907)(1.15376,3.96077)(1.11403,3.99173)
- (1.06914,4.02198)(1.01898,4.05155)(0.963433,4.08048)
- (0.902342,4.10881)(0.835544,4.13656)
-%%
-\path(0.958412,3.29368)(1.01103,3.3388)(1.05838,3.38244)
- (1.10059,3.42468)(1.13773,3.4656)(1.1699,3.50525)(1.19715,3.54369)
- (1.21956,3.58099)(1.23714,3.61719)(1.24993,3.65234)(1.25794,3.6865)
- (1.26117,3.7197)(1.25961,3.75199)(1.25324,3.78341)(1.242,3.814)
- (1.22584,3.84379)(1.20471,3.87282)(1.1785,3.90111)(1.14713,3.92871)
- (1.11049,3.95563)(1.06842,3.98191)(1.02079,4.00758)
- (0.967431,4.03266)(0.90814,4.05717)(0.842708,4.08114)
-%%
-\path(0.909289,3.36006)(0.964025,3.39834)(1.01381,3.43541)
- (1.05873,3.47132)(1.09883,3.50614)(1.13418,3.5399)(1.16481,3.57265)
- (1.19075,3.60442)(1.212,3.63526)(1.22857,3.66521)(1.24045,3.69429)
- (1.2476,3.72255)(1.25,3.75)(1.24758,3.77668)(1.24029,3.80262)
- (1.22803,3.82784)(1.21071,3.85236)(1.18821,3.87622)(1.1604,3.89941)
- (1.12714,3.92198)(1.08825,3.94394)(1.04353,3.9653)
- (0.992768,3.98607)(0.935726,4.00629)(0.872128,4.02595)
-%%
-\path(0.881704,3.42756)(0.938175,3.45953)(0.990033,3.4905)
- (1.03733,3.5205)(1.08009,3.54957)(1.11835,3.57774)(1.15212,3.60504)
- (1.1814,3.63149)(1.20618,3.65713)(1.22644,3.68198)(1.24213,3.70606)
- (1.25321,3.72939)(1.25961,3.75199)(1.26127,3.77388)
- (1.25808,3.79508)(1.24993,3.8156)(1.2367,3.83545)(1.21824,3.85464)
- (1.19439,3.87319)(1.16495,3.89111)(1.12973,3.9084)(1.08847,3.92506)
- (1.04091,3.94111)(0.986766,3.95654)(0.92569,3.97136)
-%%
-\path(0.874138,3.49573)(0.93211,3.52194)(0.985819,3.54729)
- (1.03529,3.5718)(1.08054,3.5955)(1.12156,3.61841)(1.15836,3.64055)
- (1.19091,3.66193)(1.21917,3.68256)(1.24311,3.70247)
- (1.26267,3.72167)(1.27778,3.74015)(1.28835,3.75794)
- (1.29429,3.77504)(1.29547,3.79146)(1.29177,3.80719)
- (1.28303,3.82225)(1.26907,3.83662)(1.2497,3.85032)(1.22469,3.86333)
- (1.1938,3.87564)(1.15674,3.88726)(1.1132,3.89816)(1.06282,3.90834)(1.0052,3.91777)
-%%
-\path(0.885031,3.56419)(0.944391,3.58516)(0.999849,3.60537)
- (1.05141,3.62484)(1.09907,3.64357)(1.14282,3.66157)
- (1.18263,3.67886)(1.21846,3.69544)(1.25027,3.71131)(1.278,3.72648)
- (1.30157,3.74095)(1.32091,3.75472)(1.3359,3.76779)(1.34643,3.78015)
- (1.35237,3.7918)(1.35356,3.80272)(1.34982,3.81291)(1.34096,3.82236)
- (1.32674,3.83103)(1.30692,3.83893)(1.28121,3.84601)
- (1.24929,3.85226)(1.21078,3.85763)(1.16529,3.8621)(1.11235,3.86562)
-%%
-\path(0.912807,3.63258)(0.973544,3.64883)(1.03075,3.66437)
- (1.0844,3.67923)(1.1345,3.69339)(1.18102,3.70686)(1.22391,3.71963)
- (1.26313,3.73171)(1.29863,3.74309)(1.33033,3.75376)
- (1.35815,3.76372)(1.38199,3.77294)(1.40174,3.78143)
- (1.41728,3.78915)(1.42844,3.7961)(1.43507,3.80224)(1.43696,3.80755)
- (1.43391,3.812)(1.42567,3.81556)(1.41195,3.81818)(1.39244,3.81982)
- (1.36679,3.82042)(1.33458,3.81993)(1.29537,3.81827)(1.24863,3.81537)
-%%
-\path(0.955906,3.70059)(1.01809,3.7126)(1.0771,3.72394)
- (1.13294,3.73461)(1.18557,3.74461)(1.23497,3.75392)
- (1.28108,3.76253)(1.32387,3.77044)(1.36326,3.77762)
- (1.39918,3.78406)(1.43155,3.78974)(1.46025,3.79463)
- (1.48518,3.79871)(1.5062,3.80194)(1.52314,3.8043)(1.53585,3.80574)
- (1.54411,3.80622)(1.54771,3.80568)(1.54637,3.80407)
- (1.53982,3.80133)(1.52771,3.79737)(1.50967,3.79211)
- (1.48526,3.78546)(1.45399,3.7773)(1.4153,3.76751)
-%%
-\path(1.0128,3.76793)(1.07655,3.77617)(1.13751,3.78375)
- (1.19566,3.79067)(1.25098,3.7969)(1.30343,3.80242)(1.35296,3.80723)
- (1.39954,3.81129)(1.44308,3.81459)(1.48353,3.81709)
- (1.52079,3.81875)(1.55477,3.81956)(1.58534,3.81945)
- (1.61238,3.81839)(1.63574,3.81633)(1.65524,3.8132)(1.67069,3.80894)
- (1.68186,3.80347)(1.68849,3.79671)(1.6903,3.78856)(1.68695,3.77892)
- (1.67805,3.76764)(1.66317,3.7546)(1.64178,3.73963)(1.61332,3.72254)
-%%
-\path(1.57249,2.99581)(1.48135,3.02195)(1.39706,3.04908)
- (1.31956,3.07714)(1.24877,3.10605)(1.1846,3.13575)(1.12691,3.16617)
- (1.0756,3.19723)(1.03051,3.22888)(0.991504,3.26105)
- (0.958412,3.29368)(0.931066,3.3267)(0.909289,3.36006)
- (0.892898,3.3937)(0.881704,3.42756)(0.875516,3.46158)
- (0.874138,3.49573)(0.877376,3.52995)(0.885031,3.56419)
- (0.896906,3.59842)(0.912807,3.63258)(0.932537,3.66665)
- (0.955906,3.70059)(0.982723,3.73436)(1.0128,3.76793)
-%%
-\path(1.62568,3.16486)(1.54188,3.18217)(1.46419,3.20061)
- (1.39261,3.22013)(1.32712,3.24068)(1.26766,3.26219)
- (1.21419,3.28463)(1.16661,3.30793)(1.12486,3.33203)
- (1.08882,3.35689)(1.05838,3.38244)(1.03343,3.40863)
- (1.01381,3.43541)(0.999398,3.46271)(0.990033,3.4905)
- (0.985561,3.51871)(0.985819,3.54729)(0.990638,3.57619)
- (0.999849,3.60537)(1.01328,3.63478)(1.03075,3.66437)
- (1.05208,3.69411)(1.0771,3.72394)(1.10564,3.75384)(1.13751,3.78375)
-%%
-\path(1.65613,3.31869)(1.57945,3.32854)(1.50828,3.33955)
- (1.44265,3.3517)(1.38257,3.36496)(1.32805,3.37929)(1.27907,3.39466)
- (1.2356,3.41101)(1.1976,3.42832)(1.165,3.44653)(1.13773,3.4656)
- (1.11571,3.48548)(1.09883,3.50614)(1.087,3.52752)(1.08009,3.54957)
- (1.07798,3.57225)(1.08054,3.5955)(1.08762,3.61929)(1.09907,3.64357)
- (1.11475,3.66828)(1.1345,3.69339)(1.15816,3.71885)(1.18557,3.74461)
- (1.21656,3.77064)(1.25098,3.7969)
-%%
-\path(1.66589,3.45945)(1.59601,3.46292)(1.53114,3.46754)
- (1.47135,3.4733)(1.41669,3.48018)(1.36718,3.48816)(1.32285,3.49721)
- (1.2837,3.50732)(1.24971,3.51846)(1.22088,3.53059)(1.19715,3.54369)
- (1.17849,3.55772)(1.16481,3.57265)(1.15605,3.58843)
- (1.15212,3.60504)(1.15293,3.62242)(1.15836,3.64055)(1.1683,3.65937)
- (1.18263,3.67886)(1.20121,3.69896)(1.22391,3.71963)
- (1.25058,3.74084)(1.28108,3.76253)(1.31526,3.78468)(1.35296,3.80723)
-%%
-\path(1.65656,3.58888)(1.59309,3.58689)(1.53423,3.58598)
- (1.48007,3.58615)(1.43068,3.5874)(1.38614,3.58973)(1.34648,3.59312)
- (1.31173,3.59758)(1.28193,3.60309)(1.25706,3.60963)
- (1.23714,3.61719)(1.22213,3.62574)(1.212,3.63526)(1.2067,3.64574)
- (1.20618,3.65713)(1.21037,3.66942)(1.21917,3.68256)
- (1.23251,3.69654)(1.25027,3.71131)(1.27235,3.72684)
- (1.29863,3.74309)(1.32898,3.76003)(1.36326,3.77762)
- (1.40135,3.79582)(1.44308,3.81459)
-%%
-\path(1.6294,3.70847)(1.57186,3.70176)(1.51863,3.69603)
- (1.4698,3.69129)(1.42548,3.68755)(1.38575,3.68482)(1.35067,3.68311)
- (1.32031,3.68242)(1.29472,3.68275)(1.27392,3.68411)(1.25794,3.6865)
- (1.24679,3.68989)(1.24045,3.69429)(1.23891,3.69969)
- (1.24213,3.70606)(1.25007,3.71339)(1.26267,3.72167)
- (1.27987,3.73086)(1.30157,3.74095)(1.3277,3.75191)(1.35815,3.76372)
- (1.3928,3.77634)(1.43155,3.78974)(1.47426,3.80389)(1.52079,3.81875)
-%%
-\path(1.58534,3.81945)(1.53323,3.80866)(1.48518,3.79871)
- (1.44131,3.78962)(1.40174,3.78143)(1.36658,3.77414)(1.3359,3.76779)
- (1.3098,3.76239)(1.28835,3.75794)(1.27161,3.75448)(1.25961,3.75199)
- (1.25241,3.7505)(1.25,3.75)(1.25241,3.7505)(1.25961,3.75199)
- (1.27161,3.75448)(1.28835,3.75794)(1.3098,3.76239)(1.3359,3.76779)
- (1.36658,3.77414)(1.40174,3.78143)(1.44131,3.78962)
- (1.48518,3.79871)(1.53323,3.80866)(1.58534,3.81945)
-%%
-\path(1.52509,3.92289)(1.47784,3.90853)(1.43447,3.89487)
- (1.39512,3.88192)(1.35991,3.86973)(1.32897,3.85833)
- (1.30242,3.84773)(1.28036,3.83798)(1.26288,3.82909)
- (1.25007,3.82109)(1.242,3.814)(1.23872,3.80784)(1.24029,3.80262)
- (1.24673,3.79836)(1.25808,3.79508)(1.27433,3.79277)
- (1.29547,3.79146)(1.3215,3.79113)(1.35237,3.7918)(1.38804,3.79345)
- (1.42844,3.7961)(1.47351,3.79972)(1.52314,3.8043)(1.57726,3.80985)(1.63574,3.81633)
-%%
-\path(1.44912,4.01968)(1.40612,4.00221)(1.36687,3.98526)
- (1.33151,3.96887)(1.3002,3.95308)(1.27308,3.93792)(1.25028,3.92343)
- (1.23193,3.90964)(1.21815,3.89658)(1.20904,3.8843)(1.20471,3.87282)
- (1.20524,3.86216)(1.21071,3.85236)(1.22118,3.84345)(1.2367,3.83545)
- (1.25731,3.82837)(1.28303,3.82225)(1.31387,3.81709)
- (1.34982,3.81291)(1.39086,3.80973)(1.43696,3.80755)
- (1.48807,3.80638)(1.54411,3.80622)(1.60502,3.80707)(1.67069,3.80894)
-%%
-\path(1.35773,4.11062)(1.31832,4.09041)(1.28256,4.07055)
- (1.25061,4.05107)(1.22265,4.03201)(1.19883,4.01341)
- (1.17931,3.99531)(1.16424,3.97775)(1.15376,3.96077)
- (1.14802,3.94441)(1.14713,3.92871)(1.15123,3.91369)(1.1604,3.89941)
- (1.17476,3.8859)(1.19439,3.87319)(1.21935,3.86132)(1.2497,3.85032)
- (1.28549,3.84021)(1.32674,3.83103)(1.37347,3.82281)
- (1.42567,3.81556)(1.48331,3.80931)(1.54637,3.80407)
- (1.61479,3.79987)(1.68849,3.79671)
-%%
-\path(1.25104,4.19638)(1.2145,4.17376)(1.18153,4.1513)
- (1.15234,4.12903)(1.12708,4.107)(1.10596,4.08523)(1.08914,4.06378)
- (1.07681,4.04268)(1.06914,4.02198)(1.06629,4.00171)
- (1.06842,3.98191)(1.07569,3.96264)(1.08825,3.94394)
- (1.10622,3.92584)(1.12973,3.9084)(1.15889,3.89165)(1.1938,3.87564)
- (1.23455,3.86042)(1.28121,3.84601)(1.33383,3.83246)
- (1.39244,3.81982)(1.45707,3.80811)(1.52771,3.79737)
- (1.60435,3.78763)(1.68695,3.77892)
-%%
-\path(1.129,4.27756)(1.09455,4.25281)(1.06363,4.22802)
- (1.03643,4.20324)(1.01316,4.17848)(0.994019,4.15379)
- (0.979215,4.1292)(0.968952,4.10475)(0.963433,4.08048)
- (0.96286,4.05644)(0.967431,4.03266)(0.977337,4.00919)
- (0.992768,3.98607)(1.0139,3.96337)(1.04091,3.94111)
- (1.07396,3.91936)(1.1132,3.89816)(1.15877,3.87757)(1.21078,3.85763)
- (1.26936,3.8384)(1.33458,3.81993)(1.40653,3.80226)(1.48526,3.78546)
- (1.5708,3.76955)(1.66317,3.7546)
-%%
-\path(0.991435,4.35469)(0.958234,4.32805)(0.928503,4.30119)
- (0.902461,4.27411)(0.88033,4.24685)(0.862339,4.21944)
- (0.848721,4.19189)(0.83971,4.16426)(0.835544,4.13656)
- (0.836464,4.10884)(0.842708,4.08114)(0.854517,4.05349)
- (0.872128,4.02595)(0.895776,3.99856)(0.92569,3.97136)
- (0.962093,3.94442)(1.0052,3.91777)(1.05522,3.89149)
- (1.11235,3.86562)(1.17676,3.84023)(1.24863,3.81537)(1.3281,3.79111)
- (1.4153,3.76751)(1.51034,3.74463)(1.61332,3.72254)
-%%
-\path(1.25,3.75)(0.507902,3.59631)
-%%
-\path(0.583844,3.62793)(0.610211,3.63339)
-\path(0.55853,3.61739)(0.611263,3.62831)
-\path(0.533216,3.60685)(0.612315,3.62323)
-\path(0.507902,3.59631)(0.613368,3.61815)
-\path(0.535321,3.59669)(0.61442,3.61307)
-\path(0.56274,3.59707)(0.615472,3.60799)
-\path(0.590158,3.59745)(0.616525,3.60291)
-\path(0.613368,3.61815)(0.609159,3.63847)(0.507902,3.59631)
- (0.617577,3.59782)(0.613368,3.61815)
-%%
-\path(1.25,3.75)(1.59169,3.33754)
-%%
-\path(1.54694,3.36716)(1.53602,3.38035)
-\path(1.56186,3.35729)(1.54001,3.38366)
-\path(1.57677,3.34742)(1.54401,3.38697)
-\path(1.59169,3.33754)(1.548,3.39028)
-\path(1.58476,3.35404)(1.552,3.39359)
-\path(1.57784,3.37053)(1.556,3.3969)
-\path(1.57091,3.38702)(1.55999,3.40021)
-\path(1.548,3.39028)(1.53202,3.37704)(1.59169,3.33754)
- (1.56399,3.40352)(1.548,3.39028)
-%%
-\allinethickness{1pt}%
-\color{rgb_980000}%
-\path(2.375,2.625)
- (2.375,4.875)(0.125,4.875)(0.125,2.625)(2.375,2.625)
-%%
-\allinethickness{0.4pt}%
-\color{rgb_000000}%
-\path
- (0.927506,0.495809)(1.01757,0.548834)(1.10157,0.602843)
- (1.17947,0.657739)(1.25125,0.713425)(1.3169,0.769804)
- (1.37643,0.826777)(1.42989,0.884247)(1.47732,0.94212)
- (1.51879,1.0003)(1.55438,1.0587)(1.58419,1.11722)(1.60833,1.17579)
- (1.62692,1.23431)(1.64008,1.2927)(1.64797,1.35089)(1.65074,1.40881)
- (1.64854,1.46638)(1.64154,1.52354)(1.62991,1.58023)
- (1.61383,1.63639)(1.59347,1.69196)(1.56902,1.7469)(1.54066,1.80115)(1.50857,1.85469)
-%%
-\path(0.8777,0.611715)(0.959433,0.655571)(1.03581,0.700614)
- (1.10675,0.74677)(1.17219,0.793961)(1.2321,0.842109)
- (1.28645,0.891132)(1.33522,0.940947)(1.37842,0.991473)
- (1.41609,1.04262)(1.44824,1.09432)(1.47494,1.14647)(1.49626,1.199)
- (1.51227,1.25182)(1.52307,1.30486)(1.52876,1.35804)
- (1.52946,1.41127)(1.52529,1.46449)(1.51639,1.51763)(1.5029,1.57062)
- (1.48496,1.62339)(1.46273,1.67588)(1.43637,1.72802)
- (1.40604,1.77978)(1.37192,1.83108)
-%%
-\path(0.850911,0.713606)(0.924836,0.749547)(0.993963,0.786789)
- (1.05819,0.825281)(1.11743,0.864964)(1.17161,0.905781)
- (1.22068,0.947667)(1.26458,0.990557)(1.3033,1.03438)
- (1.33682,1.07908)(1.36514,1.12456)(1.38829,1.17077)
- (1.40628,1.21763)(1.41917,1.26507)(1.42702,1.313)(1.42989,1.36136)
- (1.42787,1.41007)(1.42105,1.45906)(1.40954,1.50826)
- (1.39346,1.55759)(1.37292,1.607)(1.34805,1.6564)(1.31901,1.70574)
- (1.28592,1.75496)(1.24895,1.80399)
-%%
-\path(0.844563,0.803527)(0.911256,0.832549)(0.97359,0.862922)
- (1.03145,0.894614)(1.08472,0.927588)(1.13332,0.961802)
- (1.17715,0.997213)(1.21616,1.03377)(1.25029,1.07143)
- (1.27949,1.11013)(1.30374,1.14982)(1.32302,1.19043)
- (1.33734,1.23191)(1.3467,1.27419)(1.35115,1.31721)(1.35071,1.3609)
- (1.34544,1.40519)(1.33541,1.45002)(1.32069,1.49531)
- (1.30138,1.54101)(1.27758,1.58703)(1.24938,1.63332)(1.21692,1.6798)
- (1.18032,1.72642)(1.13972,1.7731)
-%%
-\path(0.856643,0.883119)(0.916712,0.906022)(0.972764,0.930277)
- (1.02467,0.955868)(1.0723,0.982778)(1.11556,1.01098)
- (1.15433,1.04046)(1.18853,1.07117)(1.21807,1.10309)
- (1.24291,1.13617)(1.26297,1.17038)(1.27822,1.20567)(1.28864,1.242)
- (1.2942,1.27931)(1.29492,1.31754)(1.29079,1.35666)(1.28185,1.39658)
- (1.26815,1.43727)(1.24972,1.47865)(1.22664,1.52067)
- (1.19897,1.56326)(1.16682,1.60635)(1.13027,1.64988)
- (1.08945,1.69379)(1.04445,1.73802)
-%%
-\path(0.885577,0.953717)(0.93965,0.971145)(0.989968,0.989888)
- (1.03639,1.00995)(1.07878,1.03132)(1.11702,1.05399)
- (1.15098,1.07797)(1.18055,1.10322)(1.20565,1.12975)
- (1.22618,1.15751)(1.24206,1.1865)(1.25323,1.21667)(1.25963,1.24801)
- (1.26123,1.28046)(1.258,1.314)(1.24993,1.34858)(1.23701,1.38415)
- (1.21926,1.42067)(1.1967,1.45809)(1.16937,1.49635)(1.13734,1.5354)
- (1.10065,1.57517)(1.0594,1.61562)(1.01366,1.65667)(0.963551,1.69828)
-%%
-\path(0.930139,1.01641)(0.97886,1.02889)(1.02402,1.04261)
- (1.06548,1.05759)(1.10308,1.07385)(1.13669,1.09139)
- (1.16618,1.11021)(1.19141,1.13032)(1.21227,1.15172)(1.22866,1.1744)
- (1.24046,1.19834)(1.2476,1.22355)(1.25,1.25)(1.24758,1.27767)
- (1.2403,1.30654)(1.22812,1.33658)(1.211,1.36775)(1.18893,1.40004)
- (1.16191,1.43338)(1.12996,1.46775)(1.0931,1.50311)(1.05137,1.53939)
- (1.00483,1.57655)(0.95355,1.61455)(0.897604,1.65331)
-%%
-\path(0.989383,1.07211)(1.03341,1.08005)(1.07402,1.08915)
- (1.11107,1.09943)(1.14439,1.11092)(1.17383,1.12362)
- (1.19925,1.13757)(1.22049,1.15278)(1.23743,1.16926)
- (1.24993,1.18702)(1.25787,1.20606)(1.26114,1.22639)
- (1.25963,1.24801)(1.25325,1.2709)(1.24192,1.29508)(1.22557,1.32052)
- (1.20414,1.3472)(1.17758,1.37511)(1.14587,1.40423)(1.10898,1.43452)
- (1.06692,1.46596)(1.0197,1.49852)(0.967353,1.53214)
- (0.909912,1.5668)(0.84744,1.60244)
-%%
-\path(1.0626,1.12156)(1.1026,1.12531)(1.1393,1.1301)
- (1.17253,1.13598)(1.20212,1.14296)(1.22791,1.15108)
- (1.24973,1.16037)(1.26742,1.17086)(1.28083,1.18256)(1.2898,1.19551)
- (1.29418,1.20972)(1.29384,1.22521)(1.28864,1.242)(1.27846,1.26009)
- (1.26319,1.27949)(1.24272,1.30021)(1.21697,1.32225)(1.18585,1.3456)
- (1.14931,1.37026)(1.10728,1.39622)(1.05973,1.42347)
- (1.00664,1.45198)(0.948007,1.48173)(0.883841,1.51269)(0.81417,1.54484)
-%%
-\path(1.14927,1.16539)(1.18593,1.16521)(1.21938,1.16596)
- (1.24942,1.16766)(1.27589,1.17035)(1.2986,1.17407)(1.31737,1.17886)
- (1.33202,1.18475)(1.34238,1.19178)(1.34825,1.19998)
- (1.34948,1.20938)(1.3459,1.22002)(1.33734,1.23191)(1.32364,1.2451)
- (1.30466,1.25959)(1.28026,1.27541)(1.2503,1.29259)(1.21467,1.31112)
- (1.17326,1.33103)(1.12598,1.35233)(1.07274,1.375)(1.01349,1.39906)
- (0.948177,1.4245)(0.876769,1.45131)(0.799255,1.47948)
-%%
-\path(1.24904,1.20411)(1.28307,1.20023)(1.31396,1.19712)
- (1.3415,1.19483)(1.3655,1.19339)(1.38577,1.19284)(1.4021,1.19323)
- (1.41431,1.19461)(1.42218,1.197)(1.42551,1.20046)(1.4241,1.20502)
- (1.41776,1.21074)(1.40628,1.21763)(1.38947,1.22576)
- (1.36714,1.23514)(1.33911,1.24583)(1.3052,1.25784)(1.26524,1.27122)
- (1.21907,1.28599)(1.16656,1.30219)(1.10756,1.31982)
- (1.04196,1.33891)(0.969654,1.35948)(0.890556,1.38154)(0.804598,1.4051)
-%%
-\path(1.3617,1.23817)(1.39385,1.23075)(1.4229,1.22394)
- (1.44865,1.21779)(1.47089,1.21232)(1.48943,1.2076)(1.50402,1.20365)
- (1.51446,1.20053)(1.52052,1.19829)(1.52196,1.19696)
- (1.51856,1.19661)(1.51007,1.19727)(1.49626,1.199)(1.47689,1.20184)
- (1.45173,1.20585)(1.42053,1.21107)(1.38308,1.21755)
- (1.33914,1.22534)(1.28849,1.23448)(1.23092,1.24502)
- (1.16623,1.25701)(1.09423,1.27047)(1.01474,1.28546)
- (0.927602,1.30199)(0.83267,1.32012)
-%%
-\path(1.4872,1.26793)(1.51821,1.2571)(1.5462,1.2467)
- (1.57093,1.23677)(1.5922,1.22735)(1.60978,1.21849)(1.62342,1.21022)
- (1.63288,1.20259)(1.6379,1.19565)(1.63823,1.18945)(1.6336,1.18404)
- (1.62373,1.17947)(1.60833,1.17579)(1.58713,1.17306)
- (1.55982,1.17134)(1.52613,1.17068)(1.48574,1.17114)
- (1.43836,1.17279)(1.3837,1.17569)(1.32146,1.17988)(1.25135,1.18545)
- (1.17308,1.19243)(1.08639,1.20091)(0.99101,1.21092)(0.886683,1.22254)
-%%
-\path(0.927506,0.495809)(0.899539,0.55566)(0.8777,0.611715)
- (0.861604,0.664274)(0.850911,0.713606)(0.845319,0.759952)
- (0.844563,0.803527)(0.848407,0.844524)(0.856643,0.883119)
- (0.869088,0.919469)(0.885577,0.953717)(0.90597,0.985993)
- (0.930139,1.01641)(0.957975,1.04509)(0.989383,1.07211)
- (1.02428,1.09758)(1.0626,1.12156)(1.10428,1.14414)(1.14927,1.16539)
- (1.19753,1.18536)(1.24904,1.20411)(1.30377,1.2217)(1.3617,1.23817)
- (1.42285,1.25356)(1.4872,1.26793)
-%%
-\path(1.10157,0.602843)(1.06552,0.653288)(1.03581,0.700614)
- (1.01206,0.745046)(0.993963,0.786789)(0.981224,0.826026)
- (0.97359,0.862922)(0.970837,0.897627)(0.972764,0.930277)
- (0.979193,0.960993)(0.989968,0.989888)(1.00495,1.01706)
- (1.02402,1.04261)(1.04708,1.06661)(1.07402,1.08915)
- (1.10479,1.11029)(1.1393,1.1301)(1.17751,1.14864)(1.21938,1.16596)
- (1.26487,1.1821)(1.31396,1.19712)(1.36664,1.21106)(1.4229,1.22394)
- (1.48275,1.23581)(1.5462,1.2467)
-%%
-\path(1.25125,0.713425)(1.20852,0.754966)(1.17219,0.793961)
- (1.14193,0.830577)(1.11743,0.864964)(1.09844,0.89726)
- (1.08472,0.927588)(1.07607,0.95606)(1.0723,0.982778)
- (1.07325,1.00784)(1.07878,1.03132)(1.08876,1.0533)(1.10308,1.07385)
- (1.12165,1.09304)(1.14439,1.11092)(1.17123,1.12754)
- (1.20212,1.14296)(1.23702,1.15721)(1.27589,1.17035)
- (1.31872,1.18239)(1.3655,1.19339)(1.41622,1.20335)(1.47089,1.21232)
- (1.52955,1.22032)(1.5922,1.22735)
-%%
-\path(1.37643,0.826777)(1.32827,0.85999)(1.28645,0.891132)
- (1.25067,0.920321)(1.22068,0.947667)(1.19624,0.973268)
- (1.17715,0.997213)(1.16324,1.01959)(1.15433,1.04046)
- (1.15028,1.0599)(1.15098,1.07797)(1.15631,1.09472)(1.16618,1.11021)
- (1.18051,1.12448)(1.19925,1.13757)(1.22233,1.14953)
- (1.24973,1.16037)(1.28142,1.17014)(1.31737,1.17886)(1.3576,1.18655)
- (1.4021,1.19323)(1.4509,1.19893)(1.50402,1.20365)(1.56151,1.20741)(1.62342,1.21022)
-%%
-\path(1.47732,0.94212)(1.42478,0.967642)(1.37842,0.991473)
- (1.338,1.01369)(1.3033,1.03438)(1.27412,1.05361)(1.25029,1.07143)
- (1.23165,1.08791)(1.21807,1.10309)(1.20944,1.11702)
- (1.20565,1.12975)(1.20662,1.1413)(1.21227,1.15172)(1.22256,1.16103)
- (1.23743,1.16926)(1.25686,1.17643)(1.28083,1.18256)
- (1.30933,1.18768)(1.34238,1.19178)(1.37998,1.19488)(1.42218,1.197)
- (1.469,1.19814)(1.52052,1.19829)(1.57679,1.19746)(1.6379,1.19565)
-%%
-\path(1.55438,1.0587)(1.49833,1.07721)(1.44824,1.09432)
- (1.4039,1.11009)(1.36514,1.12456)(1.3318,1.13779)(1.30374,1.14982)
- (1.28083,1.16067)(1.26297,1.17038)(1.25007,1.17898)(1.24206,1.1865)
- (1.23887,1.19294)(1.24046,1.19834)(1.2468,1.20271)(1.25787,1.20606)
- (1.27366,1.20839)(1.29418,1.20972)(1.31944,1.21005)
- (1.34948,1.20938)(1.38435,1.20771)(1.4241,1.20502)(1.46881,1.20133)
- (1.51856,1.19661)(1.57345,1.19085)(1.6336,1.18404)
-%%
-\path(1.60833,1.17579)(1.54946,1.18798)(1.49626,1.199)
- (1.44858,1.20887)(1.40628,1.21763)(1.36924,1.22531)
- (1.33734,1.23191)(1.3105,1.23747)(1.28864,1.242)(1.2717,1.24551)
- (1.25963,1.24801)(1.25241,1.2495)(1.25,1.25)(1.25241,1.2495)
- (1.25963,1.24801)(1.2717,1.24551)(1.28864,1.242)(1.3105,1.23747)
- (1.33734,1.23191)(1.36924,1.22531)(1.40628,1.21763)
- (1.44858,1.20887)(1.49626,1.199)(1.54946,1.18798)(1.60833,1.17579)
-%%
-\path(1.64008,1.2927)(1.5789,1.29929)(1.52307,1.30486)
- (1.47248,1.30943)(1.42702,1.313)(1.3866,1.31559)(1.35115,1.31721)
- (1.3206,1.31786)(1.29492,1.31754)(1.27406,1.31626)(1.258,1.314)
- (1.24675,1.31076)(1.2403,1.30654)(1.23868,1.30132)(1.24192,1.29508)
- (1.25007,1.28781)(1.26319,1.27949)(1.28135,1.27009)
- (1.30466,1.25959)(1.33321,1.24795)(1.36714,1.23514)
- (1.40659,1.22112)(1.45173,1.20585)(1.50274,1.18927)(1.55982,1.17134)
-%%
-\path(1.65074,1.40881)(1.5876,1.4105)(1.52946,1.41127)
- (1.47624,1.41113)(1.42787,1.41007)(1.38428,1.40809)
- (1.34544,1.40519)(1.3113,1.40136)(1.28185,1.39658)(1.25709,1.39085)
- (1.23701,1.38415)(1.22163,1.37646)(1.211,1.36775)(1.20515,1.35801)
- (1.20414,1.3472)(1.20805,1.33529)(1.21697,1.32225)(1.23101,1.30803)
- (1.2503,1.29259)(1.27497,1.27588)(1.3052,1.25784)(1.34116,1.23842)
- (1.38308,1.21755)(1.43118,1.19515)(1.48574,1.17114)
-%%
-\path(1.64154,1.52354)(1.57665,1.52102)(1.51639,1.51763)
- (1.4607,1.51338)(1.40954,1.50826)(1.36288,1.50224)(1.32069,1.49531)
- (1.28297,1.48746)(1.24972,1.47865)(1.22095,1.46887)(1.1967,1.45809)
- (1.177,1.44627)(1.16191,1.43338)(1.15151,1.41938)(1.14587,1.40423)
- (1.14509,1.38787)(1.14931,1.37026)(1.15864,1.35134)
- (1.17326,1.33103)(1.19333,1.30928)(1.21907,1.28599)(1.2507,1.26109)
- (1.28849,1.23448)(1.33271,1.20605)(1.3837,1.17569)
-%%
-\path(1.61383,1.63639)(1.54727,1.6303)(1.48496,1.62339)
- (1.42684,1.61563)(1.37292,1.607)(1.32316,1.59747)(1.27758,1.58703)
- (1.23617,1.57563)(1.19897,1.56326)(1.16601,1.54986)(1.13734,1.5354)
- (1.11301,1.51983)(1.0931,1.50311)(1.0777,1.48517)(1.06692,1.46596)
- (1.06088,1.44542)(1.05973,1.42347)(1.06362,1.40002)(1.07274,1.375)
- (1.08731,1.3483)(1.10756,1.31982)(1.13377,1.28943)(1.16623,1.25701)
- (1.20529,1.2224)(1.25135,1.18545)
-%%
-\path(1.56902,1.7469)(1.50078,1.73787)(1.43637,1.72802)
- (1.37578,1.71732)(1.31901,1.70574)(1.26605,1.69325)(1.21692,1.6798)
- (1.17165,1.66536)(1.13027,1.64988)(1.09284,1.63332)(1.0594,1.61562)
- (1.03003,1.59672)(1.00483,1.57655)(0.983899,1.55505)
- (0.967353,1.53214)(0.955336,1.50773)(0.948007,1.48173)
- (0.945551,1.45402)(0.948177,1.4245)(0.956122,1.39304)
- (0.969654,1.35948)(0.989078,1.32368)(1.01474,1.28546)
- (1.04703,1.24461)(1.08639,1.20091)
-%%
-\path(1.50857,1.85469)(1.43853,1.8433)(1.37192,1.83108)
- (1.30872,1.81799)(1.24895,1.80399)(1.1926,1.78904)(1.13972,1.7731)
- (1.09032,1.75611)(1.04445,1.73802)(1.00217,1.71876)
- (0.963551,1.69828)(0.928663,1.67649)(0.897604,1.65331)
- (0.870487,1.62866)(0.84744,1.60244)(0.828611,1.57454)
- (0.81417,1.54484)(0.80431,1.5132)(0.799255,1.47948)
- (0.799255,1.44351)(0.804598,1.4051)(0.815612,1.36405)
- (0.83267,1.32012)(0.856198,1.27305)(0.886683,1.22254)
-%%
-\path(1.25,1.25)(0.600163,1.38459)
-%%
-\path(0.68242,1.38345)(0.708786,1.37799)
-\path(0.655001,1.38383)(0.707734,1.37291)
-\path(0.627582,1.38421)(0.706681,1.36782)
-\path(0.600163,1.38459)(0.705629,1.36274)
-\path(0.625477,1.37404)(0.704577,1.35766)
-\path(0.650792,1.3635)(0.703524,1.35258)
-\path(0.676106,1.35296)(0.702472,1.3475)
-\path(0.705629,1.36274)(0.709838,1.38307)(0.600163,1.38459)
- (0.70142,1.34242)(0.705629,1.36274)
-%%
-\path(1.25,1.25)(0.90831,0.837544)
-%%
-\path(0.929086,0.887024)(0.940008,0.900207)
-\path(0.922161,0.870531)(0.944004,0.896897)
-\path(0.915235,0.854037)(0.947999,0.893587)
-\path(0.90831,0.837544)(0.951995,0.890277)
-\path(0.923227,0.847417)(0.955991,0.886966)
-\path(0.938144,0.85729)(0.959987,0.883656)
-\path(0.953061,0.867163)(0.963983,0.880346)
-\path(0.951995,0.890277)(0.936012,0.903518)(0.90831,0.837544)
- (0.967979,0.877035)(0.951995,0.890277)
-%%
-\allinethickness{1pt}%
-\color{rgb_980000}%
-\path(2.375,0.125)
- (2.375,2.375)(0.125,2.375)(0.125,0.125)(2.375,0.125)
-%%
-\allinethickness{0.4pt}%
-\color{rgb_000000}%
-\path(4.32177,5.61398)
- (4.31023,5.69921)(4.29571,5.77929)(4.27832,5.85466)
- (4.25813,5.92574)(4.23521,5.99286)(4.20959,6.05635)(4.1813,6.11649)
- (4.15036,6.17352)(4.11676,6.22769)(4.0805,6.27919)(4.04155,6.32822)
- (3.99986,6.37493)(3.9554,6.41949)(3.90809,6.46204)(3.85786,6.50269)
- (3.80463,6.54158)(3.7483,6.5788)(3.68874,6.61445)(3.62584,6.64863)
- (3.55945,6.68142)(3.48941,6.71289)(3.41554,6.74311)
- (3.33764,6.77214)(3.25551,6.80006)
-%%
-\path(4.13841,5.61911)(4.13845,5.69921)(4.13499,5.7746)
- (4.12815,5.84568)(4.11806,5.91278)(4.10479,5.97624)
- (4.08842,6.03631)(4.06899,6.09326)(4.04655,6.14732)
- (4.02109,6.19867)(3.99263,6.24751)(3.96116,6.29401)
- (3.92663,6.33832)(3.88902,6.38056)(3.84826,6.42088)
- (3.80428,6.45939)(3.75699,6.49618)(3.70631,6.53136)
- (3.65209,6.56502)(3.59422,6.59722)(3.53254,6.62806)
- (3.46687,6.65758)(3.39703,6.68587)(3.32279,6.71296)(3.24391,6.73891)
-%%
-\path(3.97074,5.63438)(3.98145,5.70897)(3.98827,5.77929)
- (3.99133,5.84568)(3.99078,5.90844)(3.98672,5.96784)
- (3.97923,6.02413)(3.96839,6.07752)(3.95423,6.12822)
- (3.93678,6.17639)(3.91605,6.22222)(3.89204,6.26583)
- (3.86473,6.30736)(3.83407,6.34695)(3.80002,6.38469)(3.7625,6.42068)
- (3.72142,6.45502)(3.67668,6.4878)(3.62816,6.51909)(3.57571,6.54895)
- (3.51917,6.57745)(3.45835,6.60465)(3.39303,6.63059)
- (3.32299,6.65533)(3.24794,6.6789)
-%%
-\path(3.82031,5.65946)(3.84076,5.72828)(3.85704,5.79325)
- (3.8693,5.85466)(3.87769,5.91278)(3.88234,5.96784)(3.88333,6.02004)
- (3.88074,6.06957)(3.87462,6.1166)(3.86501,6.16129)(3.85192,6.20378)
- (3.83536,6.24419)(3.81529,6.28265)(3.79169,6.31924)
- (3.76451,6.35408)(3.73366,6.38723)(3.69906,6.41879)
- (3.66061,6.44883)(3.61816,6.47739)(3.57157,6.50455)
- (3.52065,6.53035)(3.46521,6.55484)(3.40502,6.57805)
- (3.33981,6.60002)(3.26928,6.62077)
-%%
-\path(3.68828,5.69383)(3.71752,5.75673)(3.74242,5.81619)
- (3.76316,5.87245)(3.77989,5.92574)(3.79272,5.97624)
- (3.80176,6.02413)(3.80708,6.06957)(3.80875,6.1127)(3.80678,6.15367)
- (3.80122,6.19257)(3.79205,6.22953)(3.77926,6.26463)
- (3.76282,6.29797)(3.74266,6.32962)(3.71872,6.35966)
- (3.69089,6.38814)(3.65907,6.41512)(3.62312,6.44066)
- (3.58287,6.46478)(3.53814,6.48754)(3.4887,6.50895)(3.43432,6.52905)
- (3.37469,6.54785)(3.3095,6.56536)
-%%
-\path(3.57536,5.73678)(3.61246,5.79374)(3.64519,5.84764)
- (3.6737,5.89868)(3.69814,5.94703)(3.71864,5.99286)(3.73529,6.03631)
- (3.74816,6.07752)(3.75733,6.1166)(3.76282,6.15367)(3.76466,6.18881)
- (3.76284,6.22212)(3.75735,6.25368)(3.74816,6.28355)(3.7352,6.3118)
- (3.71839,6.33848)(3.69766,6.36364)(3.67286,6.38731)
- (3.64387,6.40955)(3.6105,6.43036)(3.57256,6.44976)(3.52982,6.46778)
- (3.48202,6.48442)(3.42884,6.49968)(3.36994,6.51354)
-%%
-\path(3.48182,5.78746)(3.52593,5.83858)(3.5657,5.88698)
- (3.6013,5.93282)(3.63287,5.97624)(3.66052,6.01738)(3.68434,6.05635)
- (3.70443,6.09326)(3.72082,6.12822)(3.73357,6.16129)
- (3.74268,6.19257)(3.74817,6.22212)(3.75,6.25)(3.74815,6.27626)
- (3.74256,6.30096)(3.73315,6.32411)(3.71983,6.34577)
- (3.70247,6.36595)(3.68092,6.38466)(3.65502,6.40193)
- (3.62455,6.41774)(3.58928,6.43209)(3.54893,6.44498)
- (3.50317,6.45637)(3.45165,6.46623)
-%%
-\path(3.40754,5.84494)(3.45785,5.89041)(3.50396,5.93346)
- (3.54601,5.97421)(3.58414,6.0128)(3.61846,6.04931)(3.64906,6.08384)
- (3.67601,6.11649)(3.69937,6.14732)(3.71917,6.17639)
- (3.73544,6.20378)(3.74817,6.22953)(3.75735,6.25368)
- (3.76295,6.27626)(3.76491,6.29732)(3.76315,6.31686)(3.75758,6.3349)
- (3.74809,6.35145)(3.73451,6.36651)(3.71669,6.38006)(3.69441,6.3921)
- (3.66744,6.40258)(3.63549,6.41148)(3.59823,6.41875)(3.55529,6.42432)
-%%
-\path(3.352,5.90822)(3.40781,5.9483)(3.45961,5.98623)
- (3.50754,6.0221)(3.55172,6.05601)(3.59226,6.08804)(3.62924,6.11826)
- (3.66274,6.14674)(3.69281,6.17352)(3.71948,6.19867)
- (3.74278,6.22222)(3.76271,6.24419)(3.77926,6.26463)(3.7924,6.28355)
- (3.80208,6.30096)(3.80823,6.31686)(3.81077,6.33125)
- (3.80957,6.34412)(3.8045,6.35546)(3.79539,6.36522)(3.78206,6.37338)
- (3.76426,6.37987)(3.74171,6.38464)(3.7141,6.3876)(3.68106,6.38866)
-%%
-\path(3.31441,5.97626)(3.37509,6.01129)(3.432,6.04439)
- (3.48528,6.07564)(3.53504,6.10512)(3.58139,6.13288)(3.6244,6.15897)
- (3.66415,6.18345)(3.70069,6.20635)(3.73405,6.22769)
- (3.76427,6.24751)(3.79135,6.26583)(3.81529,6.28265)
- (3.83606,6.29797)(3.85363,6.3118)(3.86794,6.32411)(3.8789,6.3349)
- (3.88643,6.34412)(3.89039,6.35175)(3.89064,6.35772)
- (3.88701,6.36198)(3.87927,6.36444)(3.86717,6.36501)
- (3.85042,6.36359)(3.82865,6.36003)
-%%
-\path(3.29368,6.04807)(3.35869,6.07842)(3.42021,6.10703)
- (3.47839,6.13398)(3.53332,6.1593)(3.5851,6.18306)(3.63381,6.20527)
- (3.67954,6.22597)(3.72232,6.24518)(3.7622,6.26292)(3.79922,6.27919)
- (3.8334,6.29401)(3.86473,6.30736)(3.89321,6.31924)(3.91881,6.32962)
- (3.94149,6.33848)(3.9612,6.34577)(3.97785,6.35145)(3.99135,6.35546)
- (4.00158,6.35772)(4.00838,6.35815)(4.01158,6.35663)
- (4.01096,6.35306)(4.00627,6.34727)(3.99719,6.33908)
-%%
-\path(3.28857,6.12268)(3.35743,6.14874)(3.42314,6.17324)
- (3.4858,6.19622)(3.54552,6.21772)(3.60241,6.23776)(3.65653,6.25637)
- (3.70797,6.27356)(3.75678,6.28934)(3.80302,6.30372)
- (3.84672,6.31668)(3.88792,6.32822)(3.92663,6.33832)
- (3.96287,6.34695)(3.99662,6.35408)(4.02787,6.35966)
- (4.05658,6.36364)(4.08272,6.36595)(4.10621,6.36651)
- (4.12697,6.36522)(4.14491,6.36198)(4.15988,6.35663)
- (4.17173,6.34904)(4.18026,6.33901)(4.18525,6.32631)
-%%
-\path(3.29768,6.19917)(3.37001,6.22136)(3.43952,6.24213)
- (3.50631,6.26151)(3.57051,6.27953)(3.63219,6.29619)
- (3.69145,6.31151)(3.74836,6.32549)(3.80299,6.33812)(3.85541,6.3494)
- (3.90567,6.35932)(3.95381,6.36784)(3.99986,6.37493)
- (4.04387,6.38056)(4.08585,6.38469)(4.1258,6.38723)(4.16374,6.38814)
- (4.19966,6.38731)(4.23353,6.38466)(4.26532,6.38006)
- (4.29499,6.37338)(4.32247,6.36444)(4.34769,6.35306)
- (4.37053,6.33901)(4.39086,6.32202)
-%%
-\path(4.32177,5.61398)(4.22824,5.61526)(4.13841,5.61911)
- (4.0525,5.62549)(3.97074,5.63438)(3.89329,5.64572)(3.82031,5.65946)
- (3.75194,5.67553)(3.68828,5.69383)(3.6294,5.71428)(3.57536,5.73678)
- (3.52617,5.76121)(3.48182,5.78746)(3.4423,5.81541)(3.40754,5.84494)
- (3.37747,5.87592)(3.352,5.90822)(3.33103,5.94171)(3.31441,5.97626)
- (3.30201,6.01176)(3.29368,6.04807)(3.28926,6.08509)
- (3.28857,6.12268)(3.29144,6.16074)(3.29768,6.19917)
-%%
-\path(4.29571,5.77929)(4.2137,5.77577)(4.13499,5.7746)
- (4.05978,5.77577)(3.98827,5.77929)(3.92064,5.78512)
- (3.85704,5.79325)(3.79759,5.80362)(3.74242,5.81619)(3.6916,5.83089)
- (3.64519,5.84764)(3.60322,5.86637)(3.5657,5.88698)(3.53263,5.90938)
- (3.50396,5.93346)(3.47965,5.95911)(3.45961,5.98623)
- (3.44377,6.01469)(3.432,6.04439)(3.42419,6.07521)(3.42021,6.10703)
- (3.41991,6.13974)(3.42314,6.17324)(3.42973,6.2074)(3.43952,6.24213)
-%%
-\path(4.25813,5.92574)(4.18659,5.9182)(4.11806,5.91278)
- (4.05273,5.90952)(3.99078,5.90844)(3.93239,5.90952)
- (3.87769,5.91278)(3.82683,5.9182)(3.77989,5.92574)(3.73697,5.93537)
- (3.69814,5.94703)(3.66343,5.96068)(3.63287,5.97624)
- (3.60644,5.99364)(3.58414,6.0128)(3.56592,6.03362)(3.55172,6.05601)
- (3.54146,6.07988)(3.53504,6.10512)(3.53237,6.13163)(3.53332,6.1593)
- (3.53775,6.18804)(3.54552,6.21772)(3.55649,6.24825)(3.57051,6.27953)
-%%
-\path(4.20959,6.05635)(4.1476,6.04537)(4.08842,6.03631)
- (4.03224,6.02922)(3.97923,6.02413)(3.92955,6.02106)
- (3.88333,6.02004)(3.8407,6.02106)(3.80176,6.02413)(3.7666,6.02922)
- (3.73529,6.03631)(3.70786,6.04537)(3.68434,6.05635)(3.66475,6.0692)
- (3.64906,6.08384)(3.63724,6.10022)(3.62924,6.11826)
- (3.62499,6.13787)(3.6244,6.15897)(3.62738,6.18147)(3.63381,6.20527)
- (3.64358,6.23027)(3.65653,6.25637)(3.67254,6.28349)(3.69145,6.31151)
-%%
-\path(4.15036,6.17352)(4.0971,6.15956)(4.04655,6.14732)
- (3.99887,6.13685)(3.95423,6.12822)(3.91277,6.12146)(3.87462,6.1166)
- (3.83992,6.11368)(3.80875,6.1127)(3.7812,6.11368)(3.75733,6.1166)
- (3.7372,6.12146)(3.72082,6.12822)(3.70822,6.13685)(3.69937,6.14732)
- (3.69425,6.15956)(3.69281,6.17352)(3.69498,6.18914)
- (3.70069,6.20635)(3.70984,6.22505)(3.72232,6.24518)
- (3.73801,6.26664)(3.75678,6.28934)(3.77849,6.3132)(3.80299,6.33812)
-%%
-\path(4.0805,6.27919)(4.03524,6.26259)(3.99263,6.24751)
- (3.95285,6.23403)(3.91605,6.22222)(3.88236,6.21212)
- (3.85192,6.20378)(3.82484,6.19726)(3.80122,6.19257)
- (3.78114,6.18975)(3.76466,6.18881)(3.75183,6.18975)
- (3.74268,6.19257)(3.73722,6.19726)(3.73544,6.20378)
- (3.73731,6.21212)(3.74278,6.22222)(3.7518,6.23403)(3.76427,6.24751)
- (3.78012,6.26259)(3.79922,6.27919)(3.82147,6.29725)
- (3.84672,6.31668)(3.87484,6.3374)(3.90567,6.35932)
-%%
-\path(3.99986,6.37493)(3.96191,6.35595)(3.92663,6.33832)
- (3.89419,6.32209)(3.86473,6.30736)(3.83839,6.29419)
- (3.81529,6.28265)(3.79555,6.27278)(3.77926,6.26463)
- (3.76651,6.25825)(3.75735,6.25368)(3.75184,6.25092)(3.75,6.25)
- (3.75184,6.25092)(3.75735,6.25368)(3.76651,6.25825)
- (3.77926,6.26463)(3.79555,6.27278)(3.81529,6.28265)
- (3.83839,6.29419)(3.86473,6.30736)(3.89419,6.32209)
- (3.92663,6.33832)(3.96191,6.35595)(3.99986,6.37493)
-%%
-\path(3.90809,6.46204)(3.8768,6.44088)(3.84826,6.42088)
- (3.82261,6.40212)(3.80002,6.38469)(3.78061,6.36864)
- (3.76451,6.35408)(3.75182,6.34105)(3.74266,6.32962)(3.7371,6.31986)
- (3.7352,6.3118)(3.73701,6.30549)(3.74256,6.30096)(3.75186,6.29823)
- (3.76491,6.29732)(3.78166,6.29823)(3.80208,6.30096)(3.8261,6.30549)
- (3.85363,6.3118)(3.88457,6.31986)(3.91881,6.32962)(3.9562,6.34105)
- (3.99662,6.35408)(4.03989,6.36864)(4.08585,6.38469)
-%%
-\path(3.80463,6.54158)(3.77938,6.5184)(3.75699,6.49618)
- (3.73762,6.47503)(3.72142,6.45502)(3.70853,6.43625)
- (3.69906,6.41879)(3.69315,6.40273)(3.69089,6.38814)
- (3.69237,6.37509)(3.69766,6.36364)(3.7068,6.35385)(3.71983,6.34577)
- (3.73676,6.33944)(3.75758,6.3349)(3.78227,6.33216)(3.81077,6.33125)
- (3.84301,6.33216)(3.8789,6.3349)(3.91834,6.33944)(3.9612,6.34577)
- (4.00733,6.35385)(4.05658,6.36364)(4.10878,6.37509)(4.16374,6.38814)
-%%
-\path(3.68874,6.61445)(3.66891,6.58934)(3.65209,6.56502)
- (3.63846,6.54157)(3.62816,6.51909)(3.62135,6.49766)
- (3.61816,6.47739)(3.61871,6.45836)(3.62312,6.44066)
- (3.63148,6.42436)(3.64387,6.40955)(3.66033,6.39629)
- (3.68092,6.38466)(3.70565,6.37472)(3.73451,6.36651)
- (3.76748,6.36008)(3.8045,6.35546)(3.8455,6.35268)(3.89039,6.35175)
- (3.93905,6.35268)(3.99135,6.35546)(4.04713,6.36008)
- (4.10621,6.36651)(4.16841,6.37472)(4.23353,6.38466)
-%%
-\path(3.55945,6.68142)(3.54439,6.65444)(3.53254,6.62806)
- (3.52408,6.60236)(3.51917,6.57745)(3.51798,6.55341)
- (3.52065,6.53035)(3.52733,6.50836)(3.53814,6.48754)
- (3.55319,6.46798)(3.57256,6.44976)(3.59633,6.43299)
- (3.62455,6.41774)(3.65725,6.40408)(3.69441,6.3921)(3.73603,6.38184)
- (3.78206,6.37338)(3.83242,6.36674)(3.88701,6.36198)
- (3.94571,6.35911)(4.00838,6.35815)(4.07484,6.35911)
- (4.14491,6.36198)(4.21837,6.36674)(4.29499,6.37338)
-%%
-\path(3.41554,6.74311)(3.40457,6.71429)(3.39703,6.68587)
- (3.39312,6.65793)(3.39303,6.63059)(3.39694,6.60393)
- (3.40502,6.57805)(3.41743,6.55306)(3.43432,6.52905)
- (3.45581,6.50614)(3.48202,6.48442)(3.51304,6.464)(3.54893,6.44498)
- (3.58974,6.42744)(3.63549,6.41148)(3.68616,6.39719)
- (3.74171,6.38464)(3.80208,6.37389)(3.86717,6.36501)
- (3.93685,6.35806)(4.01096,6.35306)(4.08932,6.35005)
- (4.17173,6.34904)(4.25793,6.35005)(4.34769,6.35306)
-%%
-\path(3.25551,6.80006)(3.24787,6.76939)(3.24391,6.73891)
- (3.24387,6.70872)(3.24794,6.6789)(3.25635,6.64955)(3.26928,6.62077)
- (3.28694,6.59267)(3.3095,6.56536)(3.33712,6.53894)(3.36994,6.51354)
- (3.40808,6.48927)(3.45165,6.46623)(3.5007,6.44454)(3.55529,6.42432)
- (3.61541,6.40566)(3.68106,6.38866)(3.75217,6.37343)
- (3.82865,6.36003)(3.91038,6.34856)(3.99719,6.33908)
- (4.08889,6.33165)(4.18525,6.32631)(4.286,6.32309)(4.39086,6.32202)
-%%
-\path(3.75,6.25)(3.14565,5.94783)
-%%
-\path(3.19923,5.99202)(3.21941,6.00211)
-\path(3.18137,5.97729)(3.22173,5.99747)
-\path(3.16351,5.96256)(3.22405,5.99283)
-\path(3.14565,5.94783)(3.22637,5.98819)
-\path(3.16815,5.95328)(3.22869,5.98355)
-\path(3.19065,5.95872)(3.23101,5.9789)
-\path(3.21315,5.96417)(3.23333,5.97426)
-\path(3.22637,5.98819)(3.21709,6.00675)(3.14565,5.94783)
- (3.23565,5.96962)(3.22637,5.98819)
-%%
-\path(3.75,6.25)(4.35435,5.94783)
-%%
-\path(4.28685,5.96417)(4.26667,5.97426)
-\path(4.30935,5.95872)(4.26899,5.9789)
-\path(4.33185,5.95328)(4.27131,5.98355)
-\path(4.35435,5.94783)(4.27363,5.98819)
-\path(4.33649,5.96256)(4.27595,5.99283)
-\path(4.31863,5.97729)(4.27827,5.99747)
-\path(4.30077,5.99202)(4.28059,6.00211)
-\path(4.27363,5.98819)(4.26435,5.96962)(4.35435,5.94783)
- (4.28291,6.00675)(4.27363,5.98819)
-%%
-\allinethickness{1pt}%
-\color{rgb_980000}%
-\path(4.875,5.125)
- (4.875,7.375)(2.625,7.375)(2.625,5.125)(4.875,5.125)
-%%
-\allinethickness{0.4pt}%
-\color{rgb_000000}%
-\path(3.75,2.95191)
- (3.81752,3.02689)(3.87769,3.10015)(3.93077,3.17175)
- (3.97698,3.24175)(4.01655,3.3102)(4.04971,3.37715)(4.07667,3.44266)
- (4.09761,3.50676)(4.11274,3.5695)(4.12223,3.63093)(4.12626,3.69108)
- (4.125,3.75)(4.11861,3.80772)(4.10725,3.86428)(4.09106,3.91971)
- (4.07018,3.97405)(4.04476,4.02733)(4.01493,4.07958)
- (3.98081,4.13082)(3.94252,4.1811)(3.90018,4.23043)(3.85391,4.27884)
- (3.80382,4.32635)(3.75,4.373)
-%%
-\path(3.62348,3.04636)(3.69014,3.11055)(3.75,3.17364)
- (3.80325,3.23566)(3.85004,3.29665)(3.89055,3.35662)(3.92492,3.4156)
- (3.9533,3.47361)(3.97585,3.53068)(3.9927,3.58684)(4.00399,3.64209)
- (4.00986,3.69647)(4.01042,3.75)(4.0058,3.80269)(3.99613,3.85457)
- (3.98152,3.90564)(3.96208,3.95594)(3.93793,4.00548)
- (3.90916,4.05428)(3.87589,4.10235)(3.8382,4.1497)(3.79621,4.19636)
- (3.75,4.24234)(3.69967,4.28766)(3.64529,4.33232)
-%%
-\path(3.52707,3.13497)(3.59209,3.1895)(3.65084,3.24339)
- (3.70344,3.29667)(3.75,3.34934)(3.79061,3.40141)(3.82538,3.45289)
- (3.85441,3.5038)(3.87779,3.55414)(3.89561,3.60392)(3.90797,3.65315)
- (3.91496,3.70184)(3.91667,3.75)(3.91317,3.79764)(3.90456,3.84476)
- (3.89092,3.89138)(3.87233,3.93749)(3.84887,3.98312)
- (3.82061,4.02827)(3.78763,4.07294)(3.75,4.11715)(3.7078,4.16089)
- (3.6611,4.20419)(3.60997,4.24703)(3.55447,4.28944)
-%%
-\path(3.45806,3.21828)(3.52096,3.26413)(3.57809,3.30969)
- (3.6295,3.35496)(3.67526,3.39995)(3.71541,3.44466)(3.75,3.4891)
- (3.77909,3.53325)(3.80273,3.57714)(3.82096,3.62075)(3.83384,3.6641)
- (3.84142,3.70718)(3.84375,3.75)(3.84087,3.79256)(3.83283,3.83486)
- (3.81967,3.8769)(3.80146,3.91869)(3.77822,3.96024)(3.75,4.00153)
- (3.71685,4.04257)(3.67882,4.08337)(3.63594,4.12393)
- (3.58827,4.16425)(3.53583,4.20433)(3.47868,4.24417)
-%%
-\path(3.41407,3.29673)(3.47461,3.33478)(3.52983,3.37277)
- (3.57974,3.41071)(3.62435,3.44861)(3.66367,3.48645)
- (3.69771,3.52425)(3.72649,3.56199)(3.75,3.59969)(3.76826,3.63734)
- (3.78129,3.67494)(3.78909,3.7125)(3.79167,3.75)(3.78904,3.78746)
- (3.78121,3.82486)(3.76819,3.86222)(3.75,3.89953)(3.72664,3.9368)
- (3.69812,3.97401)(3.66445,4.01118)(3.62564,4.0483)(3.58171,4.08537)
- (3.53265,4.1224)(3.47849,4.15938)(3.41923,4.19631)
-%%
-\path(3.39296,3.37075)(3.4511,3.40176)(3.50433,3.43287)
- (3.55261,3.46409)(3.59592,3.49541)(3.63424,3.52685)
- (3.66754,3.55839)(3.69579,3.59005)(3.71897,3.62182)
- (3.73705,3.65369)(3.75,3.68568)(3.7578,3.71779)(3.76042,3.75)
- (3.75783,3.78233)(3.75,3.81477)(3.73691,3.84733)(3.71853,3.88)
- (3.69483,3.91279)(3.66578,3.9457)(3.63135,3.97872)(3.59152,4.01186)
- (3.54625,4.04512)(3.49552,4.0785)(3.43929,4.112)(3.37755,4.14562)
-%%
-\path(3.39286,3.44071)(3.44871,3.46535)(3.5,3.49019)
- (3.54669,3.51523)(3.58871,3.54048)(3.62601,3.56593)
- (3.65854,3.59158)(3.68622,3.61745)(3.70902,3.64352)
- (3.72685,3.66981)(3.73967,3.69632)(3.74741,3.72305)(3.75,3.75)
- (3.74738,3.77718)(3.7395,3.80458)(3.72627,3.83222)(3.70763,3.86009)
- (3.68351,3.8882)(3.65385,3.91654)(3.61856,3.94513)(3.57759,3.97397)
- (3.53084,4.00306)(3.47826,4.0324)(3.41976,4.062)(3.35526,4.09185)
-%%
-\path(3.41207,3.50691)(3.46585,3.5258)(3.51542,3.54493)
- (3.56068,3.56429)(3.60155,3.58389)(3.63797,3.60374)
- (3.66983,3.62385)(3.69705,3.6442)(3.71955,3.66482)(3.73723,3.6857)
- (3.75,3.70686)(3.75776,3.72829)(3.76042,3.75)(3.75786,3.772)
- (3.75,3.79429)(3.73672,3.81688)(3.71791,3.83978)(3.69345,3.86299)
- (3.66325,3.88651)(3.62716,3.91036)(3.58508,3.93454)
- (3.53687,3.95906)(3.48241,3.98392)(3.42157,4.00914)(3.3542,4.03471)
-%%
-\path(3.44909,3.56967)(3.50114,3.58335)(3.54927,3.59725)
- (3.59338,3.61138)(3.63338,3.62575)(3.66914,3.64036)
- (3.70058,3.65523)(3.72757,3.67034)(3.75,3.68572)(3.76775,3.70137)
- (3.7807,3.71729)(3.78871,3.7335)(3.79167,3.75)(3.78942,3.7668)
- (3.78182,3.7839)(3.76873,3.80132)(3.75,3.81907)(3.72546,3.83715)
- (3.69495,3.85557)(3.6583,3.87434)(3.61533,3.89348)(3.56585,3.91299)
- (3.50967,3.93289)(3.4466,3.95318)(3.37642,3.97388)
-%%
-\path(3.50255,3.62924)(3.55328,3.63818)(3.60037,3.64731)
- (3.6437,3.65662)(3.68317,3.66613)(3.71864,3.67584)(3.75,3.68576)
- (3.7771,3.69589)(3.79982,3.70624)(3.81799,3.71682)(3.83148,3.72763)
- (3.84012,3.73869)(3.84375,3.75)(3.8422,3.76157)(3.83527,3.77341)
- (3.8228,3.78553)(3.80457,3.79794)(3.78037,3.81064)(3.75,3.82366)
- (3.71321,3.837)(3.66978,3.85067)(3.61944,3.8647)(3.56192,3.87908)
- (3.49696,3.89383)(3.42425,3.90898)
-%%
-\path(3.57125,3.68585)(3.62111,3.6905)(3.66761,3.69525)
- (3.71062,3.70012)(3.75,3.70511)(3.78562,3.71023)(3.81734,3.71548)
- (3.84501,3.72086)(3.86847,3.72638)(3.88754,3.73205)
- (3.90206,3.73787)(3.91183,3.74385)(3.91667,3.75)(3.91636,3.75632)
- (3.91068,3.76281)(3.89941,3.7695)(3.8823,3.77637)(3.85908,3.78346)
- (3.82949,3.79075)(3.79324,3.79827)(3.75,3.80602)(3.69946,3.81401)
- (3.64125,3.82226)(3.57502,3.83078)(3.50036,3.83958)
-%%
-\path(3.65406,3.73974)(3.70358,3.74046)(3.75,3.74121)
- (3.79318,3.74198)(3.833,3.74276)(3.86929,3.74358)(3.90191,3.74441)
- (3.93068,3.74527)(3.95544,3.74616)(3.976,3.74708)(3.99216,3.74802)
- (4.0037,3.74899)(4.01042,3.75)(4.01206,3.75104)(4.00837,3.75211)
- (3.99908,3.75322)(3.9839,3.75437)(3.96252,3.75556)(3.9346,3.75679)
- (3.89979,3.75807)(3.8577,3.75939)(3.80792,3.76076)(3.75,3.76219)
- (3.68346,3.76367)(3.60778,3.76522)
-%%
-\path(3.75,3.79107)(3.79972,3.78823)(3.84661,3.7853)
- (3.89054,3.78228)(3.93135,3.77916)(3.9689,3.77593)(4.00301,3.7726)
- (4.03353,3.76915)(4.06025,3.76559)(4.08298,3.7619)(4.10151,3.75807)
- (4.1156,3.75411)(4.125,3.75)(4.12945,3.74573)(4.12867,3.7413)
- (4.12234,3.7367)(4.11013,3.73191)(4.09167,3.72692)(4.06658,3.72172)
- (4.03443,3.71631)(3.99475,3.71065)(3.94705,3.70474)
- (3.89077,3.69857)(3.8253,3.6921)(3.75,3.68532)
-%%
-\path(3.75,2.95191)(3.68279,2.9999)(3.62348,3.04636)
- (3.57169,3.09136)(3.52707,3.13497)(3.4893,3.17726)(3.45806,3.21828)
- (3.43308,3.25809)(3.41407,3.29673)(3.40078,3.33428)
- (3.39296,3.37075)(3.39039,3.40622)(3.39286,3.44071)
- (3.40015,3.47426)(3.41207,3.50691)(3.42844,3.5387)(3.44909,3.56967)
- (3.47384,3.59984)(3.50255,3.62924)(3.53507,3.6579)(3.57125,3.68585)
- (3.61095,3.71312)(3.65406,3.73974)(3.70045,3.76571)(3.75,3.79107)
-%%
-\path(3.87769,3.10015)(3.81014,3.13738)(3.75,3.17364)
- (3.69699,3.20897)(3.65084,3.24339)(3.61129,3.27696)
- (3.57809,3.30969)(3.55101,3.34161)(3.52983,3.37277)
- (3.51434,3.40318)(3.50433,3.43287)(3.49961,3.46187)(3.5,3.49019)
- (3.50533,3.51787)(3.51542,3.54493)(3.53012,3.57138)
- (3.54927,3.59725)(3.57273,3.62255)(3.60037,3.64731)
- (3.63203,3.67153)(3.66761,3.69525)(3.70697,3.71847)(3.75,3.74121)
- (3.79658,3.76348)(3.84661,3.7853)
-%%
-\path(3.97698,3.24175)(3.91004,3.26948)(3.85004,3.29665)
- (3.79676,3.32326)(3.75,3.34934)(3.70956,3.3749)(3.67526,3.39995)
- (3.64691,3.42452)(3.62435,3.44861)(3.60741,3.47223)
- (3.59592,3.49541)(3.58974,3.51816)(3.58871,3.54048)
- (3.59269,3.56239)(3.60155,3.58389)(3.61516,3.60501)
- (3.63338,3.62575)(3.65609,3.64612)(3.68317,3.66613)
- (3.71451,3.68579)(3.75,3.70511)(3.78953,3.7241)(3.833,3.74276)
- (3.8803,3.76111)(3.93135,3.77916)
-%%
-\path(4.04971,3.37715)(3.98409,3.39652)(3.92492,3.4156)
- (3.87206,3.43439)(3.82538,3.45289)(3.78474,3.47113)(3.75,3.4891)
- (3.72103,3.5068)(3.69771,3.52425)(3.67992,3.54144)(3.66754,3.55839)
- (3.66045,3.57511)(3.65854,3.59158)(3.6617,3.60783)(3.66983,3.62385)
- (3.68282,3.63964)(3.70058,3.65523)(3.723,3.6706)(3.75,3.68576)
- (3.78148,3.70072)(3.81734,3.71548)(3.85752,3.73004)
- (3.90191,3.74441)(3.95043,3.7586)(4.00301,3.7726)
-%%
-\path(4.09761,3.50676)(4.03372,3.51878)(3.97585,3.53068)
- (3.9239,3.54247)(3.87779,3.55414)(3.83742,3.56569)(3.80273,3.57714)
- (3.77361,3.58847)(3.75,3.59969)(3.73181,3.61081)(3.71897,3.62182)
- (3.7114,3.63272)(3.70902,3.64352)(3.71176,3.65422)(3.71955,3.66482)
- (3.73232,3.67532)(3.75,3.68572)(3.77252,3.69603)(3.79982,3.70624)
- (3.83182,3.71636)(3.86847,3.72638)(3.90969,3.73632)
- (3.95544,3.74616)(4.00565,3.75592)(4.06025,3.76559)
-%%
-\path(4.12223,3.63093)(4.06031,3.63652)(4.00399,3.64209)
- (3.95323,3.64764)(3.90797,3.65315)(3.86819,3.65864)(3.83384,3.6641)
- (3.80489,3.66953)(3.78129,3.67494)(3.76301,3.68033)(3.75,3.68568)
- (3.74223,3.69101)(3.73967,3.69632)(3.74227,3.7016)(3.75,3.70686)
- (3.76282,3.71209)(3.7807,3.71729)(3.8036,3.72248)(3.83148,3.72763)
- (3.86431,3.73277)(3.90206,3.73787)(3.94468,3.74296)
- (3.99216,3.74802)(4.04444,3.75306)(4.10151,3.75807)
-%%
-\path(4.125,3.75)(4.0651,3.75)(4.01042,3.75)(3.96094,3.75)
- (3.91667,3.75)(3.8776,3.75)(3.84375,3.75)(3.8151,3.75)
- (3.79167,3.75)(3.77344,3.75)(3.76042,3.75)(3.7526,3.75)(3.75,3.75)
- (3.7526,3.75)(3.76042,3.75)(3.77344,3.75)(3.79167,3.75)
- (3.8151,3.75)(3.84375,3.75)(3.8776,3.75)(3.91667,3.75)
- (3.96094,3.75)(4.01042,3.75)(4.0651,3.75)(4.125,3.75)
-%%
-\path(4.10725,3.86428)(4.04926,3.85943)(3.99613,3.85457)
- (3.94789,3.84967)(3.90456,3.84476)(3.8662,3.83982)(3.83283,3.83486)
- (3.80449,3.82987)(3.78121,3.82486)(3.76304,3.81983)(3.75,3.81477)
- (3.74214,3.80969)(3.7395,3.80458)(3.7421,3.79945)(3.75,3.79429)
- (3.76323,3.78911)(3.78182,3.7839)(3.80582,3.77867)(3.83527,3.77341)
- (3.87021,3.76812)(3.91068,3.76281)(3.95672,3.75748)
- (4.00837,3.75211)(4.06567,3.74672)(4.12867,3.7413)
-%%
-\path(4.07018,3.97405)(4.01387,3.96504)(3.96208,3.95594)
- (3.91488,3.94676)(3.87233,3.93749)(3.8345,3.92814)(3.80146,3.91869)
- (3.77327,3.90916)(3.75,3.89953)(3.73173,3.88982)(3.71853,3.88)
- (3.71047,3.87009)(3.70763,3.86009)(3.71008,3.84998)
- (3.71791,3.83978)(3.73119,3.82947)(3.75,3.81907)(3.77443,3.80855)
- (3.80457,3.79794)(3.84049,3.78721)(3.8823,3.77637)(3.93007,3.76543)
- (3.9839,3.75437)(4.04389,3.7432)(4.11013,3.73191)
-%%
-\path(4.01493,4.07958)(3.95994,4.06701)(3.90916,4.05428)
- (3.86269,4.04136)(3.82061,4.02827)(3.78301,4.01499)(3.75,4.00153)
- (3.72167,3.98787)(3.69812,3.97401)(3.67945,3.95996)(3.66578,3.9457)
- (3.6572,3.93123)(3.65385,3.91654)(3.65582,3.90164)(3.66325,3.88651)
- (3.67625,3.87116)(3.69495,3.85557)(3.71949,3.83974)(3.75,3.82366)
- (3.78662,3.80733)(3.82949,3.79075)(3.87877,3.77391)(3.9346,3.75679)
- (3.99715,3.7394)(4.06658,3.72172)
-%%
-\path(3.94252,4.1811)(3.8884,4.16554)(3.8382,4.1497)
- (3.79203,4.13357)(3.75,4.11715)(3.71222,4.10042)(3.67882,4.08337)
- (3.64992,4.066)(3.62564,4.0483)(3.60613,4.03026)(3.59152,4.01186)
- (3.58195,3.9931)(3.57759,3.97397)(3.57857,3.95446)(3.58508,3.93454)
- (3.59727,3.91422)(3.61533,3.89348)(3.63943,3.8723)(3.66978,3.85067)
- (3.70656,3.82859)(3.75,3.80602)(3.8003,3.78296)(3.8577,3.75939)
- (3.92244,3.73529)(3.99475,3.71065)
-%%
-\path(3.85391,4.27884)(3.80014,4.26079)(3.75,4.24234)
- (3.70361,4.22348)(3.6611,4.20419)(3.62261,4.18445)(3.58827,4.16425)
- (3.55823,4.14357)(3.53265,4.1224)(3.51169,4.10072)(3.49552,4.0785)
- (3.48431,4.05574)(3.47826,4.0324)(3.47756,4.00847)(3.48241,3.98392)
- (3.49304,3.95874)(3.50967,3.93289)(3.53255,3.90634)
- (3.56192,3.87908)(3.59806,3.85106)(3.64125,3.82226)
- (3.69179,3.79265)(3.75,3.76219)(3.81621,3.73084)(3.89077,3.69857)
-%%
-\path(3.75,4.373)(3.69598,4.35293)(3.64529,4.33232)
- (3.59808,4.31117)(3.55447,4.28944)(3.51462,4.26712)
- (3.47868,4.24417)(3.44683,4.22058)(3.41923,4.19631)
- (3.39607,4.17133)(3.37755,4.14562)(3.36387,4.11914)
- (3.35526,4.09185)(3.35196,4.06372)(3.3542,4.03471)(3.36226,4.00478)
- (3.37642,3.97388)(3.39698,3.94196)(3.42425,3.90898)
- (3.45859,3.87487)(3.50036,3.83958)(3.54995,3.80305)
- (3.60778,3.76522)(3.6743,3.726)(3.75,3.68532)
-%%
-\path(3.75,3.75)(3,3.75)
-%%
-\path(3.08562,3.76557)(3.11416,3.76557)
-\path(3.05708,3.76038)(3.11416,3.76038)
-\path(3.02854,3.75519)(3.11416,3.75519)
-\path(3,3.75)(3.11416,3.75)
-\path(3.02854,3.74481)(3.11416,3.74481)
-\path(3.05708,3.73962)(3.11416,3.73962)
-\path(3.08562,3.73443)(3.11416,3.73443)
-\path(3.11416,3.75)(3.11416,3.77076)(3,3.75)(3.11416,3.72924)(3.11416,3.75)
-%%
-\path(3.75,3.75)(3.75,3.29644)
-%%
-\path(3.73443,3.33925)(3.73443,3.35352)
-\path(3.73962,3.32498)(3.73962,3.35352)
-\path(3.74481,3.31071)(3.74481,3.35352)
-\path(3.75,3.29644)(3.75,3.35352)
-\path(3.75519,3.31071)(3.75519,3.35352)
-\path(3.76038,3.32498)(3.76038,3.35352)
-\path(3.76557,3.33925)(3.76557,3.35352)
-\path(3.75,3.35352)(3.72924,3.35352)(3.75,3.29644)(3.77076,3.35352)(3.75,3.35352)
-%%
-\allinethickness{1pt}%
-\color{rgb_980000}%
-\path(4.875,2.625)
- (4.875,4.875)(2.625,4.875)(2.625,2.625)(4.875,2.625)
-%%
-\allinethickness{0.4pt}%
-\color{rgb_000000}%
-\path(3.17823,0.61398)
- (3.2696,0.641697)(3.35808,0.672175)(3.44338,0.705355)
- (3.52526,0.741164)(3.60346,0.779511)(3.67777,0.820294)
- (3.748,0.863394)(3.81395,0.908683)(3.87549,0.956019)
- (3.93248,1.00525)(3.98483,1.05622)(4.03246,1.10877)
- (4.07534,1.16272)(4.11344,1.2179)(4.14676,1.27413)(4.17536,1.33125)
- (4.19927,1.38908)(4.21858,1.44744)(4.23339,1.50617)
- (4.24381,1.56512)(4.24998,1.62413)(4.25204,1.68304)
- (4.25015,1.74173)(4.24449,1.80006)
-%%
-\path(3.20899,0.72735)(3.28831,0.749673)(3.36501,0.774599)
- (3.43887,0.802101)(3.50964,0.832134)(3.57711,0.86464)
- (3.64108,0.899549)(3.70136,0.936774)(3.75778,0.976219)
- (3.8102,1.01777)(3.85849,1.06132)(3.90256,1.10672)(3.94232,1.15384)
- (3.97773,1.20253)(4.00875,1.25265)(4.03538,1.30404)
- (4.05764,1.35653)(4.07557,1.40997)(4.08922,1.46419)
- (4.09868,1.51905)(4.10405,1.57438)(4.10544,1.63004)
- (4.10297,1.68587)(4.0968,1.74173)(4.08706,1.79749)
-%%
-\path(3.25032,0.823133)(3.31889,0.840786)(3.38504,0.860893)
- (3.44855,0.883449)(3.50922,0.908436)(3.56683,0.935822)
- (3.62121,0.965564)(3.67218,0.997604)(3.7196,1.03187)
- (3.76331,1.06829)(3.8032,1.10676)(3.83917,1.14717)(3.87115,1.18943)
- (3.89907,1.23339)(3.92291,1.27893)(3.94265,1.32592)
- (3.95829,1.37421)(3.96988,1.42366)(3.97745,1.47411)
- (3.98107,1.52542)(3.98083,1.57745)(3.97684,1.63004)(3.9692,1.68304)
- (3.95805,1.73632)(3.94353,1.78975)
-%%
-\path(3.30152,0.904095)(3.36048,0.917621)(3.41712,0.933458)
- (3.47125,0.951621)(3.52267,0.972112)(3.5712,0.994925)
- (3.61667,1.02004)(3.65892,1.04742)(3.6978,1.07702)(3.73319,1.10879)
- (3.76496,1.14265)(3.79303,1.17853)(3.81732,1.21634)
- (3.83777,1.25597)(3.85434,1.29732)(3.86702,1.34026)
- (3.87582,1.38467)(3.88074,1.43043)(3.88184,1.47739)
- (3.87918,1.52542)(3.87283,1.57438)(3.8629,1.62413)(3.84948,1.67451)
- (3.83271,1.72541)(3.81271,1.77667)
-%%
-\path(3.36219,0.972363)(3.41251,0.982168)(3.46056,0.994146)
- (3.50614,1.00833)(3.54909,1.02474)(3.58923,1.04339)(3.6264,1.06427)
- (3.66046,1.08739)(3.69125,1.1127)(3.71867,1.14019)(3.74261,1.16981)
- (3.76296,1.20149)(3.77966,1.23517)(3.79266,1.27077)(3.8019,1.3082)
- (3.80739,1.34736)(3.80911,1.38814)(3.80708,1.43043)
- (3.80136,1.47411)(3.79199,1.51905)(3.77905,1.56512)
- (3.76263,1.61219)(3.74284,1.66012)(3.71979,1.70877)(3.69363,1.75801)
-%%
-\path(3.43214,1.02959)(3.4747,1.03597)(3.51496,1.04439)
- (3.55275,1.0549)(3.58792,1.06753)(3.6203,1.08231)(3.64973,1.09927)
- (3.67607,1.1184)(3.6992,1.13971)(3.71899,1.16319)(3.73534,1.18881)
- (3.74816,1.21653)(3.75738,1.24631)(3.76294,1.27809)(3.7648,1.3118)
- (3.76296,1.34736)(3.7574,1.38467)(3.74815,1.42366)(3.73525,1.46419)
- (3.71875,1.50617)(3.69874,1.54948)(3.67529,1.59398)
- (3.64852,1.63955)(3.61855,1.68606)(3.58552,1.73338)
-%%
-\path(3.51138,1.07706)(3.54694,1.08023)(3.58016,1.0853)
- (3.61086,1.09235)(3.63888,1.10142)(3.66407,1.11255)
- (3.68628,1.12577)(3.70537,1.14113)(3.72121,1.15862)
- (3.73369,1.17827)(3.74271,1.20006)(3.74817,1.22398)(3.75,1.25)
- (3.74815,1.27809)(3.74259,1.3082)(3.73328,1.34026)(3.72024,1.37421)
- (3.70349,1.40997)(3.68306,1.44744)(3.65901,1.48653)
- (3.63142,1.52713)(3.60039,1.56912)(3.56602,1.61239)
- (3.52843,1.65681)(3.48778,1.70226)
-%%
-\path(3.60007,1.11578)(3.62936,1.11587)(3.65621,1.11774)
- (3.68045,1.12147)(3.70192,1.1271)(3.72047,1.13471)(3.73595,1.14434)
- (3.74823,1.15603)(3.75716,1.16982)(3.76264,1.18573)
- (3.76456,1.20378)(3.76283,1.22398)(3.75738,1.24631)
- (3.74815,1.27077)(3.73509,1.29732)(3.7182,1.32592)(3.69748,1.35653)
- (3.67293,1.38908)(3.6446,1.42349)(3.61256,1.4597)(3.57688,1.49759)
- (3.53766,1.53708)(3.49501,1.57805)(3.44908,1.62039)(3.40001,1.66397)
-%%
-\path(3.69855,1.14651)(3.72225,1.14361)(3.74337,1.14236)
- (3.76176,1.14283)(3.77726,1.14511)(3.78969,1.14925)
- (3.79892,1.15533)(3.8048,1.16341)(3.80719,1.17352)(3.80598,1.18573)
- (3.80105,1.20006)(3.7923,1.21653)(3.77966,1.23517)(3.76307,1.25597)
- (3.74248,1.27893)(3.71787,1.30404)(3.68923,1.33125)
- (3.65659,1.36053)(3.61998,1.39183)(3.57947,1.42509)
- (3.53514,1.46021)(3.48708,1.49713)(3.43543,1.53574)
- (3.38033,1.57593)(3.32194,1.6176)
-%%
-\path(3.80729,1.16986)(3.82604,1.16398)(3.84208,1.15962)
- (3.85522,1.15685)(3.86529,1.15577)(3.87214,1.15645)(3.8756,1.15897)
- (3.87551,1.16341)(3.87174,1.16982)(3.86415,1.17827)
- (3.85261,1.18881)(3.83704,1.20149)(3.81732,1.21634)(3.7934,1.23339)
- (3.76522,1.25265)(3.73275,1.27413)(3.69598,1.29782)
- (3.65492,1.32371)(3.60961,1.35175)(3.56011,1.3819)(3.50651,1.41411)
- (3.4489,1.44831)(3.38744,1.48442)(3.32226,1.52235)(3.25354,1.56199)
-%%
-\path(3.92693,1.18624)(3.94139,1.17736)(3.95296,1.16985)
- (3.96145,1.1638)(3.96668,1.1593)(3.96848,1.15645)(3.96666,1.15533)
- (3.96105,1.15603)(3.95151,1.15862)(3.93788,1.16319)
- (3.92002,1.16981)(3.89781,1.17853)(3.87115,1.18943)
- (3.83994,1.20253)(3.80413,1.2179)(3.76366,1.23554)(3.71851,1.25549)
- (3.66869,1.27773)(3.61423,1.30227)(3.55518,1.32909)
- (3.49162,1.35815)(3.42367,1.38939)(3.35146,1.42277)
- (3.27515,1.45821)(3.19494,1.49562)
-%%
-\path(4.05827,1.19595)(4.06911,1.18399)(4.07686,1.17324)
- (4.08133,1.1638)(4.08232,1.15577)(4.07962,1.14925)(4.07305,1.14434)
- (4.06242,1.14113)(4.04754,1.13971)(4.02825,1.14019)
- (4.00437,1.14265)(3.97577,1.14717)(3.94232,1.15384)(3.9039,1.16272)
- (3.86043,1.17387)(3.81183,1.18736)(3.75806,1.20321)
- (3.69912,1.22147)(3.63501,1.24216)(3.56578,1.26527)(3.4915,1.29081)
- (3.41229,1.31874)(3.32827,1.34904)(3.23963,1.38165)(3.14657,1.4165)
-%%
-\path(4.20232,1.19917)(4.21023,1.18399)(4.21485,1.16985)
- (4.21597,1.15685)(4.21335,1.14511)(4.20679,1.13471)
- (4.19606,1.12577)(4.18094,1.1184)(4.16122,1.1127)(4.1367,1.10879)
- (4.10719,1.10676)(4.07249,1.10672)(4.03246,1.10877)(3.98694,1.113)
- (3.93582,1.11951)(3.87898,1.12838)(3.81635,1.13966)(3.7479,1.15344)
- (3.67361,1.16975)(3.59351,1.18864)(3.50765,1.21013)
- (3.41613,1.23423)(3.31908,1.26093)(3.21668,1.2902)(3.10914,1.32202)
-%%
-\path(3.17823,0.61398)(3.19224,0.673067)(3.20899,0.72735)
- (3.22838,0.77725)(3.25032,0.823133)(3.27472,0.865321)
- (3.30152,0.904095)(3.33069,0.939703)(3.36219,0.972363)
- (3.39601,1.00227)(3.43214,1.02959)(3.47059,1.05448)
- (3.51138,1.07706)(3.55453,1.09746)(3.60007,1.11578)(3.64806,1.1321)
- (3.69855,1.14651)(3.7516,1.15908)(3.80729,1.16986)(3.8657,1.1789)
- (3.92693,1.18624)(3.99108,1.19191)(4.05827,1.19595)
- (4.12864,1.19837)(4.20232,1.19917)
-%%
-\path(3.35808,0.672175)(3.35983,0.72558)(3.36501,0.774599)
- (3.37347,0.819598)(3.38504,0.860893)(3.39963,0.898765)
- (3.41712,0.933458)(3.43745,0.965188)(3.46056,0.994146)
- (3.4864,1.0205)(3.51496,1.04439)(3.54621,1.06595)(3.58016,1.0853)
- (3.61682,1.10254)(3.65621,1.11774)(3.69838,1.13099)
- (3.74337,1.14236)(3.79125,1.15188)(3.84208,1.15962)(3.89595,1.1656)
- (3.95296,1.16985)(4.01323,1.17239)(4.07686,1.17324)
- (4.14402,1.17239)(4.21485,1.16985)
-%%
-\path(3.52526,0.741164)(3.51545,0.788632)(3.50964,0.832134)
- (3.50762,0.871978)(3.50922,0.908436)(3.51427,0.941744)
- (3.52267,0.972112)(3.5343,0.999723)(3.54909,1.02474)
- (3.56698,1.0473)(3.58792,1.06753)(3.61189,1.08554)(3.63888,1.10142)
- (3.66888,1.11525)(3.70192,1.1271)(3.73803,1.13704)(3.77726,1.14511)
- (3.81965,1.15134)(3.86529,1.15577)(3.91427,1.15842)(3.96668,1.1593)
- (4.02266,1.15842)(4.08232,1.15577)(4.14583,1.15134)(4.21335,1.14511)
-%%
-\path(3.67777,0.820294)(3.65721,0.861701)(3.64108,0.899549)
- (3.62915,0.934095)(3.62121,0.965564)(3.6171,0.994154)
- (3.61667,1.02004)(3.6198,1.04337)(3.6264,1.06427)(3.6364,1.08287)
- (3.64973,1.09927)(3.66636,1.11354)(3.68628,1.12577)
- (3.70947,1.13602)(3.73595,1.14434)(3.76576,1.15076)
- (3.79892,1.15533)(3.83551,1.15806)(3.8756,1.15897)(3.91928,1.15806)
- (3.96666,1.15533)(4.01786,1.15076)(4.07305,1.14434)
- (4.13239,1.13602)(4.19606,1.12577)
-%%
-\path(3.81395,0.908683)(3.7835,0.944037)(3.75778,0.976219)
- (3.73655,1.00544)(3.7196,1.03187)(3.70673,1.05569)(3.6978,1.07702)
- (3.69268,1.09599)(3.69125,1.1127)(3.69345,1.12725)(3.6992,1.13971)
- (3.70846,1.15015)(3.72121,1.15862)(3.73744,1.16517)
- (3.75716,1.16982)(3.7804,1.1726)(3.80719,1.17352)(3.83761,1.1726)
- (3.87174,1.16982)(3.90966,1.16517)(3.95151,1.15862)
- (3.99741,1.15015)(4.04754,1.13971)(4.10207,1.12725)(4.16122,1.1127)
-%%
-\path(3.93248,1.00525)(3.89302,1.03469)(3.85849,1.06132)
- (3.82862,1.08529)(3.8032,1.10676)(3.78203,1.12584)(3.76496,1.14265)
- (3.75186,1.15728)(3.74261,1.16981)(3.73712,1.1803)(3.73534,1.18881)
- (3.73721,1.19538)(3.74271,1.20006)(3.75182,1.20285)
- (3.76456,1.20378)(3.78095,1.20285)(3.80105,1.20006)
- (3.82491,1.19538)(3.85261,1.18881)(3.88428,1.1803)(3.92002,1.16981)
- (3.95999,1.15728)(4.00437,1.14265)(4.05336,1.12584)(4.10719,1.10676)
-%%
-\path(4.03246,1.10877)(3.9849,1.13255)(3.94232,1.15384)
- (3.90448,1.17276)(3.87115,1.18943)(3.84215,1.20393)
- (3.81732,1.21634)(3.79653,1.22673)(3.77966,1.23517)
- (3.76664,1.24168)(3.75738,1.24631)(3.75184,1.24908)(3.75,1.25)
- (3.75184,1.24908)(3.75738,1.24631)(3.76664,1.24168)
- (3.77966,1.23517)(3.79653,1.22673)(3.81732,1.21634)
- (3.84215,1.20393)(3.87115,1.18943)(3.90448,1.17276)
- (3.94232,1.15384)(3.9849,1.13255)(4.03246,1.10877)
-%%
-\path(4.11344,1.2179)(4.05862,1.23638)(4.00875,1.25265)
- (3.96358,1.26681)(3.92291,1.27893)(3.88655,1.28908)
- (3.85434,1.29732)(3.82617,1.30368)(3.8019,1.3082)(3.78147,1.3109)
- (3.7648,1.3118)(3.75185,1.3109)(3.74259,1.3082)(3.737,1.30368)
- (3.73509,1.29732)(3.73691,1.28908)(3.74248,1.27893)
- (3.75189,1.26681)(3.76522,1.25265)(3.78259,1.23638)(3.80413,1.2179)
- (3.83001,1.1971)(3.86043,1.17387)(3.89561,1.14806)(3.93582,1.11951)
-%%
-\path(4.17536,1.33125)(4.1141,1.34487)(4.05764,1.35653)
- (4.00578,1.36629)(3.95829,1.37421)(3.91502,1.38033)
- (3.87582,1.38467)(3.84055,1.38727)(3.80911,1.38814)
- (3.78141,1.38727)(3.7574,1.38467)(3.73702,1.38033)(3.72024,1.37421)
- (3.70706,1.36629)(3.69748,1.35653)(3.69152,1.34487)
- (3.68923,1.33125)(3.69069,1.3156)(3.69598,1.29782)(3.70521,1.27783)
- (3.71851,1.25549)(3.73607,1.23067)(3.75806,1.20321)
- (3.78473,1.17295)(3.81635,1.13966)
-%%
-\path(4.21858,1.44744)(4.1516,1.45669)(4.08922,1.46419)
- (4.03123,1.46999)(3.97745,1.47411)(3.9277,1.47657)(3.88184,1.47739)
- (3.83976,1.47657)(3.80136,1.47411)(3.76654,1.46999)
- (3.73525,1.46419)(3.70743,1.45669)(3.68306,1.44744)
- (3.66212,1.43639)(3.6446,1.42349)(3.63055,1.40867)(3.61998,1.39183)
- (3.61298,1.3729)(3.60961,1.35175)(3.60998,1.32826)(3.61423,1.30227)
- (3.62251,1.27364)(3.63501,1.24216)(3.65195,1.20761)(3.67361,1.16975)
-%%
-\path(4.24381,1.56512)(4.17177,1.57053)(4.10405,1.57438)
- (4.04046,1.57668)(3.98083,1.57745)(3.925,1.57668)(3.87283,1.57438)
- (3.82422,1.57053)(3.77905,1.56512)(3.73724,1.55811)
- (3.69874,1.54948)(3.66348,1.53917)(3.63142,1.52713)
- (3.60256,1.51329)(3.57688,1.49759)(3.5544,1.47993)(3.53514,1.46021)
- (3.51915,1.43832)(3.50651,1.41411)(3.49729,1.38745)
- (3.49162,1.35815)(3.48963,1.32601)(3.4915,1.29081)(3.49742,1.25228)(3.50765,1.21013)
-%%
-\path(4.25204,1.68304)(4.1755,1.68516)(4.10297,1.68587)
- (4.03426,1.68516)(3.9692,1.68304)(3.90765,1.6795)(3.84948,1.67451)
- (3.79458,1.66806)(3.74284,1.66012)(3.69417,1.65063)
- (3.64852,1.63955)(3.60582,1.62683)(3.56602,1.61239)
- (3.52909,1.59616)(3.49501,1.57805)(3.46379,1.55795)
- (3.43543,1.53574)(3.40997,1.51128)(3.38744,1.48442)
- (3.36791,1.45499)(3.35146,1.42277)(3.3382,1.38755)(3.32827,1.34904)
- (3.32183,1.30695)(3.31908,1.26093)
-%%
-\path(4.24449,1.80006)(4.16396,1.79942)(4.08706,1.79749)
- (4.01364,1.79428)(3.94353,1.78975)(3.87659,1.78389)
- (3.81271,1.77667)(3.75175,1.76806)(3.69363,1.75801)
- (3.63824,1.74647)(3.58552,1.73338)(3.53538,1.71867)
- (3.48778,1.70226)(3.44267,1.68406)(3.40001,1.66397)
- (3.35977,1.64186)(3.32194,1.6176)(3.28653,1.59104)(3.25354,1.56199)
- (3.22299,1.53026)(3.19494,1.49562)(3.16944,1.4578)(3.14657,1.4165)
- (3.12642,1.37138)(3.10914,1.32202)
-%%
-\path(3.75,1.25)(3.27753,1.48623)
-%%
-\path(3.34504,1.46989)(3.36522,1.4598)
-\path(3.32254,1.47533)(3.3629,1.45515)
-\path(3.30004,1.48078)(3.36058,1.45051)
-\path(3.27753,1.48623)(3.35825,1.44587)
-\path(3.29539,1.4715)(3.35593,1.44123)
-\path(3.31325,1.45677)(3.35361,1.43659)
-\path(3.33111,1.44204)(3.35129,1.43195)
-\path(3.35825,1.44587)(3.36754,1.46444)(3.27753,1.48623)
- (3.34897,1.42731)(3.35825,1.44587)
-%%
-\path(3.75,1.25)(3.14565,0.947826)
-%%
-\path(3.19923,0.99202)(3.21941,1.00211)
-\path(3.18137,0.977289)(3.22173,0.997469)
-\path(3.16351,0.962557)(3.22405,0.992827)
-\path(3.14565,0.947826)(3.22637,0.988186)
-\path(3.16815,0.953275)(3.22869,0.983545)
-\path(3.19065,0.958724)(3.23101,0.978904)
-\path(3.21315,0.964173)(3.23333,0.974263)
-\path(3.22637,0.988186)(3.21709,1.00675)(3.14565,0.947826)
- (3.23565,0.969622)(3.22637,0.988186)
-%%
-\allinethickness{1pt}%
-\color{rgb_980000}%
-\path(4.875,0.125)
- (4.875,2.375)(2.625,2.375)(2.625,0.125)(4.875,0.125)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/layout.xp b/graphics/epix/doc/layout.xp
deleted file mode 100644
index cd3e201011..0000000000
--- a/graphics/epix/doc/layout.xp
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*-ePiX-*- */
-/* layout.xp -- June 27, 2007 */
-#include "epix.h"
-using namespace ePiX;
-
-const double a(sqrt(3));
-P f(double u, double v)
-{
- return P((u-v)*(u+v), 2*u*v, u); //u*(u-a*v)*(u+a*v));
-}
-
-int main()
-{
- picture(P(0,0), P(2,3), "5x7.5in");
-
- begin();
-
- domain R(P(-1,-1), P(1,1), mesh(12,12), mesh(24,24));
-
- for (int i=0; i<2; ++i)
- for (int j=0; j<3; ++j)
- {
- screen my(P(-3,-3), P(3,3));
- activate(my);
- border(Red(0.6), "1pt");
- camera.at(sph(10, (2*j+i+1)*M_PI/8, M_PI/6));
-
- plot(f, R);
- arrow(P(0,0,0), 2*E_1);
- arrow(P(0,0,0), 2*E_2);
- inset(P(i+0.05,2.05-j), P(i+0.95,2.95-j));
- }
-
- end();
-}
-
diff --git a/graphics/epix/doc/manual.pdf b/graphics/epix/doc/manual.pdf
deleted file mode 100644
index bd8fc76619..0000000000
--- a/graphics/epix/doc/manual.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/epix/doc/manual.tex b/graphics/epix/doc/manual.tex
deleted file mode 100644
index 71aa59aa97..0000000000
--- a/graphics/epix/doc/manual.tex
+++ /dev/null
@@ -1,5030 +0,0 @@
-%% Version 1.2.0
-\documentclass[12pt]{book}
-\usepackage{amsmath,latexsym,epic,eepic,pstricks,xcolor,comment}
-\usepackage[dvips,hyperref]{hyperref}
-
-\usepackage{makeidx}
-\makeindex
-
-\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}
-
-\newcommand{\code}[1]{\texttt{#1}}
-\newcommand{\filename}[1]{\texttt{#1}}
-\newcommand{\Key}[1]{\texttt{#1}}
-\newcommand{\URL}[1]{\texttt{#1}}
-
-%% \setlength{\topmargin}{0.5in}
-\newcommand{\ePiX}{\code{ePiX}}
-\newcommand{\ext}{\code{ePiX\_ext}}
-\newcommand{\epix}{\code{epix}}
-\newcommand{\eepic}{\code{eepic}}
-\newcommand{\C}{\code{C}}
-\newcommand{\CXX}{\code{C++}}
-\newcommand{\pyepix}{\code{Pyepix}}
-
-\DeclareMathOperator{\clip}{clip}
-
-\newcommand{\Header}[1]{\smallskip\noindent\texttt{#1}%
- \index{Header file!{#1}@\texttt{#1}}\quad}
-
-%% Substitution commands easily removable by sed for texinfo:
-%% Remove recalcitrant chunks,
-\newcommand{\texicomment}{}
-\newcommand{\texicommentend}{}
-
-%% mark simple math,
-\newcommand{\teximath}[1]{$#1$}
-%% make function index entries,
-\newcommand{\findex}[1]{}
-
-%% top-level division (first argument for texinfo node name)
-\newcommand{\texinfochapter}[2]{\chapter{#2}}
-\newcommand{\texinfoappendix}[2]{\chapter{#2}}
-
-%%\renewcommand{\subsection*}[1]{\subsection{#1}}
-
-\title{ \ePiX\ Tutorial and \\ Reference Manual}
-\author{Andrew D. Hwang \\
- Department\ of Math and CS \\
- College of the Holy Cross}
-\date{Version 1.2, September, 2007}
-
-\begin{document}
-
-\maketitle
-
-\tableofcontents
-
-\texinfochapter{1}{Introduction}
-
-\ePiX, a collection of batch utilities, creates mathematically
-accurate figures, plots, and animations containing \LaTeX\ typography.
-The input syntax is easy to learn, and the user interface resembles
-that of \LaTeX\ itself: You prepare a scene description in a text
-editor, then ``compile'' the input file into a picture. \LaTeX- and
-web-compatible output types include a \LaTeX\ picture-like environment
-written with \code{PSTricks}, \code{tikz}, or \code{eepic} macros;
-vector images (\code{eps}, \code{ps}, and~\code{pdf}); and bitmapped
-images and movies (\code{png}, \code{mng}, and~\code{gif}).
-
-\ePiX's strengths include:
-
-\begin{itemize}
-\item Quality of output: \ePiX\ creates accurate, publication-quality
- figures whose appearance matches that of \LaTeX. Typography may be
- put in a figure as easily as in an ordinary \LaTeX\ document.
-
-\item Ease of use: Figure objects and their attributes are specified
- by simple, descriptive commands.
-
-\item Flexibility: Objects are described by attributes and Cartesian
- location; as in \LaTeX, printed appearance is determined when the
- figure is compiled. A well-designed figure can be altered
- dramatically, yet precisely, with command-line switches or minor
- changes to the input file.
-
-\item Power and extendibility: \ePiX\ inherits the power of \CXX\ as a
- programming language; variables, data structures, loops, and
- recursion can be used to draw complicated plots and figures with
- just a few lines of input. External code can be incorporated in a
- figure with a command line option or by using a Makefile.
-
-\item Economy of storage and transmission: For a document containing
- many figures, a compressed tar file of the \LaTeX\ sources and
- \ePiX\ files is typically a few percent the size of the compressed
- PostScript file.
-
-\item License: \ePiX\ is \emph{free software}.\index{Free software}
- You are granted the right to use the program for whatever purpose,
- and to inspect, modify, and re-distribute the source code, so long
- as you do not restrict the rights of others to do the same. In
- short, the license is similar to the terms under which theorems are
- published.
-
-\end{itemize}
-
-
-\ePiX\ facilitates logical, as opposed to visual, structuring of
-mathematical figures, analogous to the relationship between \LaTeX\
-and a word processor. A few stylistic defaults streamline the creation
-of simple figures, but there are few internal restrictions on the
-contents or appearance of a figure; aesthetic and practical decisions
-are left to you.
-
-If you are a:
-
-\begin{itemize}
-
-\item Potential user, you may wish to skip immediately to ``Software
- Dependencies'' before investing additional time.
-
-\item New user, proceed from here until you have enough understanding
- to run the software, then experiment with the samples files while
- reading Chapter~\ref{chapter:started}, or return to the manual as
- needed.
-
-\item More advanced user, browse at will, probably starting with
- Chapter~\ref{chapter:ref-man}.
-
-\end{itemize}
-
-This manual is relatively conversational, and occasionally redundant,
-especially between portions meant for readers at different levels of
-familiarity. Throughout, you are assumed to be familiar with \LaTeX\
-and basic linear algebra: the description of points, vectors, lines,
-and planes in three-dimensional space. Other material, such as \CXX\
-syntax, is introduced as needed.
-
-
-\section{Changes in Version~1.2}
-
-\ePiX~1.2.x has been written almost entirely from scratch. The
-conceptual model is unchanged, but there are a few changes of
-syntax. If you're new to~\ePiX, please skip straight to
-Section~\ref{section:software_deps}.
-
-
-\subsection{Syntax Changes}
-
-Except as noted below, \ePiX~1.0 files will compile under
-Version~1.2. Generally, global variables have been deprecated or
-removed, and should be replaced by function calls in new files. The
-following changes are either required, or else strongly recommended
-(and may become mandatory).
-
-\begin{itemize}
-
-\item (Mandatory) The global variable \verb+tix+ in a \filename{flix}
- file must be manipulated through the function \verb+tix()+.
-
-\item (Mandatory) The command \code{use\_pstricks()} is obsolete.
- PSTricks output is obtained systematically as an output format.
-
-\item (Mandatory) Deprecated ``aliases'' no longer exist:
- \code{triple} (for the \code{P} class), \code{D}~(for \code{Deriv}),
- and \code{I}~(for \code{Integral}). Lowercase trig function names
- conflicted with the standard namespace and have been removed.
-
-\item (Mandatory) Geometric object commands (\code{circle},
- \code{plane}, \code{segment}, and~\code{sphere}), which formerly
- created class objects, now perform drawing just as \code{ellipse},
- \code{line}, \code{rect}, etc., do. The classes are available with
- capitalized names (\code{Circle}, etc.).
-
-\item (Mandatory) Camera orientation is controlled with functions
- named \code{tilt}, \code{pan}, and~\code{roll}; each rotates
- the camera about an axis through the viewpoint, not through the
- target.
-
-\item (Recommended) The global size variables \verb+x_min+,
- \verb+x_max+, \verb+y_min+, \verb+y_max+, \verb+x_size+, and
- \verb+y_size+ should be replaced by the function calls
- \verb+xmin()+, etc. (No underscores.)
-
-\item (Suggested) The camera may be accessed through the function
- \code{cam()}.
-
-\item (Suggested) The size and bounding box are given in one command,
- such as \code{picture(P(-1,0), P(1,1), "4x3in")}. The old syntax
- will be retained indefinitely.
-
-\end{itemize}
-
-
-\subsection{New Features}
-
-\begin{itemize}
-
-\item Output is cleanly separated from the internal representation.
- Figures may be written with a choice of macros---\code{PSTricks},
- \code{tikz}, and \code{eepic} at present---and new output types
- are easily coded so long as the format supports arbitrary line
- segments, color, and the ability to place a \LaTeX\ box at a
- specified location.
-
-\item Colors are a manipulable data type, available in RGB, CMY, CMYK,
- and Gray models. \filename{xcolor}-style operations, such as color
- model conversion, blending, superposition, and inversion are
- provided.
-
- The camera has a filter which affects the colors of all scene
- elements. Filters performing CMYK separation are provided.
-
-\item Color filling is controlled with declarations, similarly to line
- colors in \ePiX~1.0. Arrows and markers of type spot, dot, ddot,
- and~circ are now colored like other markers. Parametric surfaces
- may be color-shaded.
-
- If a figure contains many shaded elements, a color-capable output
- format (e.g.\ \code{PSTricks}~or \code{tikz}) should be used for
- efficiency. Filled regions are implemented as fine hatching in
- \filename{eepic}.
-
-\item An \code{axis} class provides coordinate axes with labels in a
- variety of styles: decimals or scientific notation of specified
- precision, fractions, trig fractions, logarithmic labels in
- arbitrary (integer) base, and user-supplied styles.
-
-\item \ePiX~1.2.x performs page layout. Sub-figures may be manipulated
- flexibly. The sample files give several applications.
-
-\item Non-member intersection operators for circles, planes, spheres,
- and segments are provided. A ``non-generic'' intersection does not
- throw an exception, but instead returns an undrawable ``malformed''
- object.
-
-\end{itemize}
-
-
-\section{Software Dependencies}
-\label{section:software_deps}
-
-\index{Installation|(}
-\index{Mac OS X}
-
-If you run GNU/Linux, a BSD, or Solaris, you probably have (and can
-surely install) all the external software needed to use \ePiX. On
-Mac~OS~X, you will need the Apple developer tools and an X~server
-(XCode and XDarwin on the Tiger disks), and the free~\code{fink}
-package manager to build a GNU environment. For Windows, you'll need
-to install Cygwin and several packages. Detailed instructions are
-given below.
-
-``Under the hood'', an input file is successively converted to a
-\LaTeX\ picture; \code{dvi}; PostScript, \code{pdf}~or \code{eps}; and
-if desired, to a bitmapped image or movie. Four shell
-scripts---\epix, \code{laps}, \code{elaps}, and~\code{flix}---automate
-the various file format conversions.
-
-\ePiX\ consists of a \CXX\ library, header, and shell scripts, and
-requires GNU \code{bash} and a compiler \emph{for normal use}. For
-complete functionality, you need \code{g++} (Version~3.2 or later),
-\code{bash}, a text editor (\ePiX\ works particularly well with
-\code{emacs}), a \LaTeX\ distribution, \code{Ghostscript}, \code{gv}
-(or your favorite PS/PDF previewer), and \code{ImageMagick}. GNU
-\code{grep} and \code{sed} are good to have. You may need additional
-``developer packages'' (\code{binutils}, \code{make}) in order to
-build \ePiX. The more up to date your software is, the better your
-experience is likely to be, but bleeding edge versions are not
-necessary, or even always desirable.
-
-Aside from their reliance on specific programs, \ePiX's shell scripts
-are written using Unix-style pathnames. Thus, the most straightforward
-way to use \ePiX\ is to install a GNU environment.
-
-Jay Belanger's \code{emacs} mode allows you to write, compile, and
-view \ePiX\ figures without leaving \code{emacs}. If you use another
-editor, you'll want to create template source files so you don't have
-to type boilerplate code each time you write a new figure.
-\index{Emacs@\code{emacs}}
-
-
-\subsection{Setting up an Environment Under Windows}
-
-\index{Windows operating system|(}
-\begin{comment}
-Version~1.0.4 of \ePiX\ has been implemented in Python~2.2 by Andrew
-Sterian, making \ePiX\ available on any platform that supports Python,
-and without requiring a \CXX~compiler or~\code{bash}. Python is a
-GPL-ed scripting language, and is available with a Windows installer
-and detailed instructions. The easiest alternative for Windows users
-is probably to install Python~2.2 or later (if necessary) and
-\code{Pyepix}. The \code{pyepix} project home page is:
-\URL{claymore.engineer.gvsu.edu/~steriana/Python/index.html}
-\end{comment}
-
-Cygwin can be used to run \ePiX\ under Windows. Download
-\filename{setup.exe} from \URL{www.cygwin.com}, then install the
-packages you need. The following are recommended, and sufficient for
-the actions described in this manual.
-\begin{verbatim}
-(Archive) bzip2, tar
-(Devel) binutils, coreutils, gcc, gcc-g++, make, sed
-(Editors) emacs, emacs-X11, vim
-(Graphics) ImageMagick, ghostscript-base, ghostscript-x11, gv
-(Publishing) tetex (all)
-(Shells) bash, bash-completion
-(X11) X-start-menu-icons, X-startup-scripts,
- XFree86-lib-compat, xorg-x11-fscl, xorg-x11-fsrv
-\end{verbatim}
-\index{Windows operating system|)}
-
-
-\section{Installation}
-
-\ePiX\ is distributed over the World-Wide Web as source code. Packages
-may be found at \URL{mathcs.holycross.edu/\~{}ahwang/epix/ePiX.html}
-The latest stable release is also on the CTAN mirrors, in the
-\code{graphics} directory. (Some users of Red Hat have reported file
-permission problems when unpacking the CTAN tarballs. If you encounter
-this difficulty, please try downloading the sources from the project
-main page.) Unpack the compressed tar file with the appropriate
-command:
-\begin{verbatim}
- tar -zxvf epix-x.y.z.tar.gz
- tar -jxvf epix-x.y.z.tar.bz2
-\end{verbatim}
-(\code{x.y.z}~is the version number) or, if your \code{tar}
-doesn't do decompression,
-\begin{verbatim}
- gunzip -c epix-x.y.z.tar.gz | tar -xvf -
- bzcat epix-x.y.z.tar.bz2 | tar -xvf -
-\end{verbatim}
-\code{cd} to the source directory, \filename{epix-x.y.z}. The
-\filename{INSTALL} file contains detailed installation instructions.
-If you're impatient, the short of it is \code{./configure [--options];
- make; make install}. Run \code{./configure --help} for a list of
-options.
-
-By default, \ePiX\ installs in subdirectories of
-\filename{/usr/local}; if you want to install elsewhere, supply
-\code{./configure} with the appropriate \code{--prefix}. You may also
-want to consult \filename{POST-INSTALL} for information on setting
-your \code{PATH} variable so your shell can find \ePiX. The manual
-and sample files are in \filename{/usr/local/share/doc/epix}.
-\index{Installation|)}
-
-
-\subsection{Development}
-
-There are two mailing lists, one for user questions, one for
-development discussion. Please visit
-\URL{savannah.nongnu.org/mail/?group=epix} to subscribe.
-
-
-\texinfochapter{2}{Getting Started}
-\label{chapter:started}
-
-This chapter describes the basics of creating figures in \ePiX\ for
-readers familiar with \LaTeX\ but completely new to~\CXX. No detailed
-knowledge of~\CXX\ is needed to use \ePiX, only a bit of grammar that
-is easily absorbed by example.
-
-Section~\ref{section:running} describes the commands (shell scripts)
-comprising \ePiX, and explains how to set up a graphical environment
-using standard *nix programs. Section~\ref{section:overview} briefly
-describes figure creation. Section~\ref{section:tutorial} presents a
-few files side-by-side with their output, and should be read at a
-computer so you can run the exercises.
-
-
-\section{Running \ePiX}
-\label{section:running}
-
-An ``input file'' is a human-written figure specification containing
-\ePiX\ commands. An ``output file'' is machine-created, and is
-included directly into a \LaTeX\ document with the appropriate
-packages.
-
-Conversion (``compiling'' a figure) is accomplished with four shell
-scripts, \code{laps}, \code{epix}, \code{elaps}, and \code{flix}.
-Each script has a preferred extension for its input files, and is
-invoked with a command of the form
-\begin{verbatim}
- <script> [options] <input file(s)>
-\end{verbatim}
-Often, no options are necessary. \code{<script> --help}
-describes \code{<script>}'s options.
-\texicomment
-Figure~\ref{fig:programs} (page~\pageref{fig:programs}) diagrams the
-shell scripts and the file types they process.
-\texicommentend
-
-By default, output file names are constructed by replacing the input
-extension with the (preferred) output extension. For brevity,
-extensions may be omitted. If the script has doubts about your intent,
-it proceeds with default behavior and prints a warning message.
-
-The author is a great fan of \Key{TAB} completion, under which a
-shell, based on what has been typed so far, automatically fills in a
-command when the \Key{TAB} key is pressed. \ePiX\ comes with code
-snippets that complete intelligently when the first part of a command
-is one of the shell scripts. For example, if command completion is
-active, typing \code{epix} \Key{TAB} prints only names of \code{epix}
-input files. To use this feature, you must install Ian MacDonald's
-\code{bash completion} package. The \filename{INSTALL} and
-\filename{POST\_INSTALL} files contain details.
-
-
-\subsubsection*{\code{laps}}
-
-\code{laps} performs \LaTeX\ to PostScript/PDF conversion, and is
-independent of the rest of \ePiX. By default, \code{laps} invokes
-\LaTeX~and \code{dvips}. The option \code{--pdf} creates a PDF~file by
-post-processing the PostScript with~\code{ps2pdf}. Other \TeX-family
-processors (\code{pslatex}, \code{pdftex}, etc.) may be used instead
-of~\LaTeX\ by invoking \code{laps} with an appropriate option.
-
-
-\subsubsection*{\code{epix}}
-
-\code{epix} compiles an input file into a \LaTeX\ picture. The input
-file should have extension \filename{xp} (for eXtended Picture). Jay
-Belanger's \code{emacs} mode is Highly Recommended; the installation
-procedure can be found in the \filename{POST\_INSTALL} file. When this
-mode is active, \code{emacs} automatically inserts a preamble template
-when a new \filename{xp} file is created. In addition, you can peruse
-\ePiX's info file, or format, compile, and preview files, all from
-within \code{emacs}.
-\index{Emacs@\code{emacs}}
-
-Output files from the script \code{epix} have extension
-\filename{eepic}, after Conrad Kwok's enhancements to the \LaTeX\
-picture environment. In Version~1.2, however, an output file need not
-contain \code{eepic} macros at all.
-
-An output file is \code{input} directly into a \LaTeX\ document whose
-preamble contains appropriate \code{usepackage} lines.
-\texicomment
-\begin{center}
- \begin{tabular}{cc}
- Format & Required Package(s) \\
- \hline
- \code{eepic} & \code{epic,eepic,xcolor} \\
- \code{pst} & \code{pstricks} \\
- \code{tikz} & \code{tikz}
- \end{tabular}
-\end{center}
-\texicommentend
-Rotated text requires the \code{rotating} package.
-
-
-\subsubsection*{\code{elaps}}
-
-\code{elaps} creates stand-alone vector images (\filename{eps}~or
-\filename{pdf}) from \code{epix} input files or \filename{eepic}
-figures, even those not produced with \code{epix}. \code{elaps}
-automatically loads the \LaTeX\ packages needed for features described
-in this manual. Additional \LaTeX\ packages and \code{dvips} options
-may be specified on the command line.
-
-
-\subsubsection*{\code{flix}}
-
-\code{flix} creates bitmapped images and movies,
-Section~\ref{section:animation}. Input files should have extension
-\filename{flx}, and must contain a valid \code{epix} header as well as
-additional code. Jay Belanger's \code{emacs} mode facilitates creation
-of \code{flix} files.
-
-
-\section{The Drawing Model}
-\label{section:overview}
-
-To draw a figure manually, you select a sheet of paper of appropriate
-size and add paths, markers, and labels. These scene elements have
-attributes (line color, line width, fill color, font size, etc.)
-affecting their appearance.
-
-\index{canvas}
-\ePiX's drawing model behaves similarly. A \code{picture} command
-sets the \emph{canvas} (or logical drawing area, a Cartesian
-rectangle) and the true size of the final figure. A \code{begin}
-command initializes the ``virtual paper'' for drawing. Subsequent
-\emph{drawing commands} add objects to the scene: lines, curves,
-function plots, labels, and the like. The printed appearance of scene
-elements is determined by the current ``attribute state'' and
-controlled by \emph{style declaration} which remain in effect until
-superseded. Finally, an \code{end} command closes the figure and
-prints it to the output file.
-
-In this manual, command descriptions follow a few
-conventions. Optional arguments are enclosed in square brackets. A
-\code{len} argument is either a number (representing a length in
-\code{pt}) or a double-quoted string containing a number and a
-two-letter \LaTeX\ length unit, such as \code{"1.5pt"} or
-\code{"6cm"}. A \code{color} argument is a named primary
-(\code{Red()}, \code{Cyan()}, \code{White()}, etc.), or a \code{Color}
-specified by densities (\code{RGB(r,g,b)}, \code{CMY(c,m,y)}, etc.)
-
-\begin{itemize}
-
-\item Fill color: \code{fill(color)}, \code{nofill()}.
-
-\item Line color and width: \code{plain([color])},
- \code{bold([color])}.
-
-\item Text size: \code{font\_size([size])}, returns to
- \code{normalsize} if no argument is given.
-
-\end{itemize}
-
-\noindent A complete list of style commands is found in
-Section~\ref{section:quickref}, starting on
-page~\pageref{section:quickref}.
-
-To handle three-dimensional scenes, a \code{camera} performs point
-projection from a selected spatial location to the canvas. As a user,
-you'll need to control relatively few of the \code{camera}'s
-parameters. Keep in mind, however, that elements are added to a scene
-in the same order their commands appear in the output file, and that
-later elements generally cover earlier ones. Some three-dimensional
-scenes require manual ordering of the input file; such ordering is
-dependent on the \code{camera}'s location.
-
-By default, \ePiX\ draws thin, solid, black lines, performs no filling
-of regions, prints text in a 12~pt Roman font, and looks down the
-\teximath{z}~axis from a large distance, giving orthogonal projection
-on the \teximath{(x,y)}~plane. When the \code{camera} is moved, the
-\teximath{z}~axis points vertically up on the page.
-
-
-\section{Tutorial}
-\label{section:tutorial}
-
-This section presents sample input files side-by-side with their
-output so you can compare what you write with what you'll see on the
-screen or page. \ePiX\ provides standard drawing capabilities, but
-like all software has its own idioms and personality. The basic
-syntax, which comes from \code{C}/\CXX, should be mostly
-self-explanatory. One-line comments begin with the
-string~``\verb+//+''.
-
-
-%%\index{Emacs@\code{emacs}}
-\index{Graphical interface}
-To use the sample files interactively, you'll need working software:
-\filename{bash}, \filename{emacs}, \ePiX, \filename{g++},
-\filename{gv}, and a running X~server. To complete your ``GUI'',
-start~\filename{gv} and select ``Watch file'' from the ``State''
-menu. The loaded file will update automatically when it changes.
-
-Create a ``scratch'' directory, \code{cd} into it, and run the command
-\begin{verbatim}
- tar -zxf /usr/local/share/doc/epix/sample_src.tar.gz
-\end{verbatim}
-(Change the path as appropriate for your installation.) This unpacks
-copies of the sample files into your scratch directory, including all
-the files mentioned in this manual. The \filename{README} file serves
-as a table of contents.
-
-Open a sample file in \filename{emacs}, compile it from the drop-down
-menu (or with the keyboard command), then open the \filename{EPS} file
-in~\filename{gv}. Now you're ready to follow the tutorial
-interactively. A few suggested exercises are included with each
-file. Naturally, as you study more files, you'll be able to make more
-interesting changes on your own.
-
-
-\subsubsection*{Basic Drawing}
-
-The first sample, \filename{hello.xp}, contains code needed to specify
-the figure's size, followed by the classic greeting. The \code{border}
-command draws a box around the figure in the specified color and
-width, and serves here merely to delimit the output from the
-surrounding page.
-\begin{verbatim}
-/* -*-ePiX-*- */
-#include "epix.h" // These lines are analogous
-using namespace ePiX; // to a usepackage command.
-
-int main()
-{
- picture(P(-1,-1), P(1,1), "2 x 1in"); // corners, true size
-
- begin(); // ---- Figure body starts here ----
-
- border(Black(), "1pt"); // color, line width
-
- font_size("Huge"); // May be any font size, e.g. "scriptsize"
- label(P(0,0), "Hello, world!");
-
- end(); // ---- End figure; write output file ----
-}
-\end{verbatim}
-
-\begin{center}
- \input{hello.eepic}
-\end{center}
-
-\begin{itemize}
-
-\item Change the color and width of the
- border. (\code{RGB(r,g,b);} creates an RGB color, CMY colors are
- analogous. Named primaries are available. The densities should be
- between \teximath{0}~and \teximath{1} for ``expected'' behavior.)
-
-\item Add \code{backing(Cyan());} after the \code{border} command.
-
-\item Put the command \code{crop\_ellipse();} before the \code{border}
- command. Permute the \code{crop\_ellipse} command with the
- \code{border} and \code{backing} lines, and note how the attribute
- (\code{crop}) affects objects (\code{border}, \code{backing}).
-
-\end{itemize}
-
-
-\subsubsection*{Geometric Objects}
-
-Our next file uses simple objects to draw a 2-D house-and-sun scene.
-
-\begin{verbatim}
-int main()
-{
- picture(P(0,0), P(5,2), "3.75 x 1.5in");
-
- begin();
-
- triangle(P(0.9, 1), P(3.1, 1), P(2, 1.5)); // vertices
- circle(P(4,1.5), 0.25); // center and radius
-
- rect(P(1,0), P(3,1)); // opposite corners
-
- fill(Black(0.1)); // light gray
- rect(P(2.3,0), P(2.7,0.8)); // the door
- nofill();
-
- bold(); // draw thicker lines
- grid(P(1.4, 0.2), P(2, 0.6), 2, 2); // corners, number of squares
-
- line(P(xmin(), 0), P(xmax(), 0)); // endpoints
-
- end();
-}
-\end{verbatim}
-
-\begin{center}
- \input{objects.eepic}
-\end{center}
-
-\begin{itemize}
-
-\item Add declarations such as \code{bold(RGB(1,0.9,0.5))} or
- \code{fill(Yellow())} to color the scene. (Color and filling are
- orthogonal attributes.)
-\end{itemize}
-
-\noindent The sample file \filename{house.flx} uses loops to draw
-gradient fills of the lawn, sky, and sun, and animates a sunset.
-
-
-\subsubsection*{Function Plotting}
-
-Plotted functions must be defined in the ``preamble'', before
-\code{main}. ``High-level'' elements---coordinate axes and grids, axis
-labels, and graphs---are drawn with mnemonically-named commands.
-\begin{verbatim}
-// double = double-precision floating point
-double f(double x) { return 0.75*Sin(x) - 0.25*Sin(2*x); }
-
-int main()
-{
- picture(P(-2,-1), P(2,1), "5 x 1in"); // [-2,2] x [-1,1]
-
- begin();
- revolutions(); // set angle units, [0,1] = one turn
-
- h_axis(16); // axes w/default endpts
- v_axis(4);
- h_axis_labels(4, P(0,-4), b); // shift down 4pt, align below
-
- plain(Red());
- plot(f, xmin(), xmax(), 120); // use 120 intervals
-
- end();
-}
-\end{verbatim}
-
-\begin{center}
- \input{plotting.eepic}
-\end{center}
-
-\begin{itemize}
-
-\item Define and plot some different functions; adjust the bounding
- box as necessary. (Use repeated multiplication for polynomials.
- The \code{polarplot} command graphs \teximath{r=f(\theta)}.)
-
-\item Change the arguments to \code{h\_axis\_labels}. The first
- specifies the number of intervals to label; the second gives the
- label offset in~\code{pt}. The last puts each label below~(\code{b})
- its Cartesian location.
-
-\end{itemize}
-
-
-\subsubsection*{Multivariable Plotting}
-
-Functions of two or three variables are defined just like functions of
-one variable, but for plotting the return type must be a
-point~(\code{P}), not a real number~(\code{double}). The \code{domain}
-class specifies the set of inputs to plot.
-
-\begin{verbatim}
-P f(double r, double th)
-{
- return P(r*Cos(th), r*Sin(th), pow(r, 3)*Cos(3*th));
-}
-
-int main()
-{
- picture(P(-1,-1), P(1, 1), "2 x 1in");
- begin();
- pst_format(); // use PSTricks macros for output
-
- // corners ([0,1] x [0,2\pi]) and fineness
- // (8x40 rectangles, plotted at 16x120 resolution)
- domain R(P(0,0), P(1, 2*M_PI), mesh(8,40), mesh(16,120));
-
- camera.at(P(3,1,2)); // set the viewpoint
- arrow(P(0,0,0), P(1.25,0,0)); // coordinate axes
- arrow(P(0,0,0), P(0,1.25,0));
-
- plain(Blue(1.2)); // line color and width
- fill(Yellow()); // shading color
- surface(f, R);
-
- end();
-}
-\end{verbatim}
-
-\begin{center}
- \input{plotting2.eepic}
-\end{center}
-
-
-\subsubsection*{Loops and Control Structures}
-\label{taylor_poly}
-
-A function can be defined by an arbitrary algorithm, and a
-\code{domain} may be used to plot a family of functions for several
-values of one variable.
-
-\begin{footnotesize}
-\begin{verbatim}
-P sin_n(double x, double n) // Taylor polynomial of sin x
-{
- const int N((int) floor(n)); // convert n to an index bound
- const double sqx(-pow(x, 2)); // -x^2
- double val(x), summand(x);
-
- for (int i=1; i <= 2*N+1; i += 2)
- {
- summand *= (sqx/((i+1)*(i+2))); // (-1)^i x^{2i+1}/(2i+1)!
- val += summand;
- }
-
- return P(x, val); // return (x, y)
-}
-
-int main()
-{
- picture(P(0, -1), P(6*M_PI, 1), "5 x 1in");
-
- begin();
-
- set_crop();
- bold(Green());
- plot(Sin, 0, xmax(), 120);
-
- domain R(P(0,1), P(6*M_PI, 41), mesh(60, 40), mesh(120, 40));
- for (int i=3; 0 <= i; --i) // print in descending degree
- {
- bold(RGB(0.25*i, 0, 1-0.25*i)); // degree-dependent color
- plot(sin_n, R.slice2(5*i+1)); // plot for n = 5i+1
- }
- end();
-}
-\end{verbatim}
-\end{footnotesize}
-
-\begin{center}
- \input{plotting3.eepic}
-\end{center}
-
-
-\subsubsection*{Page Layout}
-
-Page layout can be composed from sub-pages with \code{screen} objects.
-In the loop body below, objects are added to the ``active''
-\code{screen}, then \code{inset} into the ``canvas'', the screen
-representing the entire figure.
-
-\begin{verbatim}
-P f(double u, double v)
-{
- return P((u-v)*(u+v), 2*u*v, u);
-}
-
-int main()
-{
- picture(P(0,0), P(2,3), "5x7.5in"); // overall size
-
- begin();
-
- domain R(P(-1,-1), P(1,1), mesh(12,12), mesh(24,24));
-
- for (int i=0; i<2; ++i)
- for (int j=0; j<3; ++j)
- {
- screen my(P(-3,-3), P(3,3));
- activate(my);
- border(Red(0.6), "1pt");
- // frame-dependent viewpoint
- camera.at(sph(10, (2*j+i+1)*M_PI/8, M_PI/6));
-
- plot(f, R);
- arrow(P(0,0,0), 2*E_1);
- arrow(P(0,0,0), 2*E_2);
- // SW corner at (i, 2-j), padded by 0.05 on all sides
- inset(P(i+0.05,2.05-j), P(i+0.95,2.95-j));
- }
-
- end();
-}
-\end{verbatim}
-
-\begin{center}
- \input{layout.eepic}
-\end{center}
-
-
-\section{\CXX\ Basics}
-
-\index{Cplusplus@\CXX|(}
-An \ePiX\ source file is a \CXX~program. If you've successfully
-modified and compiled the sample files, you know enough~\CXX\ to use
-\ePiX. In the author's experience, \code{C}~grammar suffices for most
-applications. An excellent introduction to definitions of functions
-and variables, control statements, and overall program structure is
-Kernighan~and Ritchie's \emph{The \code{C} Programming Language},
-second edition~\cite{KnR}.
-
-
-\subsection{File Format}
-
-\index{Emacs@\code{emacs}}
-Jay Belanger's \code{emacs} mode for \code{ePiX} inserts a file
-template when an empty buffer is opened with the extension~\code{xp}.
-This section explains the purposes served by the template. A few
-additional remarks may help you avoid basic syntax pitfalls.
-
-A \CXX\ file consists of ``statements'', analogous to ordinary
-sentences. Common types include \emph{declarations} (which
-``register'' a function, variable, or type name with the compiler),
-\emph{definitions} (which assign meaning to declared names), and
-\emph{function calls} (which cause a named function to execute). Most
-statements in an \ePiX\ input file are function calls (``commands'').
-Plain declarations are relatively rare in user files, since a
-definition serves to declare any new names that it contains.
-
-Every statement ends with a semicolon, and conventionally a file
-contains at most one statement per line. The compiler ignores
-nearly all whitespace (spaces, tabs, and newlines), which should be
-used freely to make files easy to read. Other punctuation
-(periods, commas, (semi)colons, parentheses, braces, and quotes)
-dictates file parsing, and must adhere stringently to grammar.
-
-An \ePiX\ file always begins with the lines
-\findex{include}
-\begin{verbatim}
-#include "epix.h" // N.B. pre-processor directive, no semicolon
-using namespace ePiX;
-\end{verbatim}
-The first line is analogous to a \LaTeX\ \code{usepackage} command: It
-loads the contents of the ``header'' file \filename{epix.h}, importing
-the names of commands provided by~\ePiX. To avoid name conflicts,
-\ePiX's commands are enclosed in a ``namespace''. For example, the
-\code{label} command is actually known to the compiler as
-\code{ePiX::label}. The second line above tells the compiler to apply
-the prefix tacitly.
-
-
-\subsection{Variables and Functions}
-%% \index{Variable}\index{Variable!names}
-%% \index{Function}\index{Function!names}
-
-Definitions of variables and functions play the same role in a figure
-that macro definitions play in a \LaTeX\ document: gathering and
-organizing information on which the figure depends. A variable is
-defined by supplying its type, name, and initial value. By far the
-most common data types in~\ePiX\ are \code{double} (double-precision
-floating point number), \code{P}, and \code{int}. The name of a
-variable may consist (only) of letters (including the underscore
-character) and digits, and must begin with a letter:
-\begin{verbatim}
-my_var, var2, MY_var, aLongVariableName; // valid
-my-var, 2var, \v@riable, $x, ${MY_VARIABLE}; // not valid
-\end{verbatim}
-Variable names are case-sensitive, and numerous (non-universal)
-conventions govern the significance of capitalization. Generally, make
-names descriptive but not unwieldy, and avoid language keywords (such
-as \code{const}, \code{true}, \code{double}, \code{class}, or
-\code{public}) and names that begin with an underscore.
-
-A function accepts ``arguments'' and ``returns a value''. To define a
-function in~\CXX, you must specify the return type, the name of the
-function, the types of the arguments, and the algorithm by which the
-value is computed from the inputs. The code block
-\begin{verbatim}
-double f(double x)
-{
- return sqrt(1-x*x);
-}
-\end{verbatim}
-specifies the \code{double}-valued function~\teximath{f} of one \code{double}
-variable defined by the formula \teximath{f(x)=\sqrt{1-x^2}}.
-
-
-\subsection{Comments}
-
-\CXX\ has two types of comments. \code{C}-style comments, which may
-span several lines, are delimited by the strings \code{/*}~and
-\code{*/}. One-line comments, analogous to the \LaTeX~\code{\%}, are
-begun with \code{//}. A one-line comment may appear within a multi-line
-comment, but a \code{C}-style comment may not; the compiler will
-mistake the first~\code{*/} it encounters as the end of the current
-multi-line comment.
-
-
-\subsection{Program Execution}
-
-All the ``action'' in a \CXX\ program occurs inside the special
-function~\code{main}. Running a compiled \CXX~program is viewed by the
-operating system as calling the program's \code{main} function. The
-return value (an \code{int}) is the program's exit status. The
-contents of the output file start with \code{begin()} and terminate
-with \code{end()}. Intervening statements constitute the \emph{body}
-of the file.
-
-In \CXX, a function may not be defined inside another function. Thus,
-variables may be defined inside \code{main}, but functions cannot be.
-
-
-\subsection{Strings and Raw Output}
-
-In \CXX, a \code{string} is a sequence of characters. Most
-\code{string}s in \ePiX\ input files are \emph{literals},
-double-quoted \code{string}s whose value is read from the input. In a
-string literal, backslash is an escape character; a single backslash
-is produced by a double backslash in the input file. Certain letters
-have special meanings when backslash-escaped, including ``\verb+\n+''
-(newline) and ``\verb+\t+'' (\Key{TAB}). Unlike~\LaTeX, \CXX~does not
-require a space to separate an escape sequence from following text;
-the string ``\verb+\\textwidth+'' literally represents a \LaTeX\
-command, while ``\verb+\textwidth+'' is read ``\code{TABextwidth}'' by
-the compiler.
-
-Though not commonly needed, raw text can be printed to the output
-file. The functions \code{write}, \code{pre\_write}, and
-\code{post\_write} accept \code{string} arguments. \code{write} prints
-its argument where the call appears in the input file. The other
-functions print their arguments before or after the completed picture,
-respectively. These commands must be in the file body. As an
-application, a complete \LaTeX\ \code{figure} environment (with
-caption and label) can be produced by an \ePiX\ file,
-Figure~\ref{fig:captioned}.
-
-\index{pre\_write}
-\index{post\_write}
-\index{write}
-\findex{pre\_write}
-\findex{post\_write}
-\findex{write}
-\begin{figure}
-\begin{footnotesize}
-\begin{verbatim}
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- picture(P(-1,-1), P(1,1), "10cm x 3in);
- begin();
- pre_write("\\begin{figure}[hbt]"); // comes before the picture
-
- post_write("\\caption{A \\LaTeX\\ figure.}"); // and after
- post_write("\\end{figure}");
-
- < ... other ePiX commands ... >
- write("%% A comment near the end, but inside the picture.");
- end();
-} // End of main()
-\end{verbatim}
-\end{footnotesize}
-\caption{Generating a self-contained figure in \ePiX.}
-\label{fig:captioned}
-\end{figure}
-
-
-\subsection{Conditionals and Loops}
-
-An algorithm's behavior usually depends on internal state. A
-\emph{conditional statement} causes blocks of code to be executed
-according to criteria. A \emph{loop} repeatedly executes a code
-block, usually changing the values of variables in a predictable way,
-so that the loop exits after finitely many traversals.
-
-\texicomment
-Figure~\ref{fig:gcd} illustrates conditionals and loops with
-Euclid's algorithm for the greatest common divisor. Three pieces of
-notation require explanation: \code{j\%i} means~``\teximath{j\pmod i}'',
-\code{||} is logical~``or'', and \code{==} is ``test for equality''.
-(A single~``\code{=}'' is the assignment operator.)
-
-\index{Function!Euclidean algorithm}
-\begin{figure}[hbt]
-\begin{footnotesize}
-\begin{verbatim}
-int gcd (int i, int j)
-{
- int temp(i); // initialization syntax
- if (i==0 || j==0)
- return i+j; // define gcd(k,0) = k
-
- else {
- if (j < i) // swap them
- {
- temp = j;
- j = i;
- i = temp;
- }
- // the work is done here...
- while (0 != (temp = j%i)) // assign temp, test for zero
- {
- j = i;
- i = temp;
- }
- return i;
- }
-}
-\end{verbatim}
-\end{footnotesize}
-\caption{Euclid's division algorithm in~\CXX.}
-\label{fig:gcd}
-\end{figure}
-\texicommentend
-
-%% \noindent For details on conditionals, or for more advanced techniques
-%% of \CXX\ programming, please consult a textbook or online tutorial.
-\index{Cplusplus@\CXX|)}
-
-%% Force previous two figures onto the same page
-%%\clearpage
-
-\section{Animation}
-\label{section:animation}
-
-\index{Animation|(}
-\ePiX\ is well-suited to the creation of mathematically accurate
-animations: If a figure depends suitably upon a ``time'' parameter,
-then a loop can be used to draw the entire figure for multiple time
-values, yielding successive ``snapshots'' of the figure as time
-progresses. The shell script~\code{flix} automates the process of
-compiling a suitable input file into a collection of \filename{png}s
-and assembling these frames into a \filename{mng}~or \filename{gif}
-animation. ImageMagick is the image-handling engine.
-
-A \code{flix} file is an \code{epix} file with two restrictions:
-\begin{itemize}
- \item The \code{double} variable \code{tix()} is used as
- ``clock''.
-
- \item \code{main} accepts two command line arguments and sets
- \code{tix()} accordingly.
-\end{itemize}
-\index{Emacs@\code{emacs}}
-Jay Belanger's \code{emacs} mode recognizes the file
-extension~\filename{.flx} and inserts template code if an empty buffer
-is opened. Creation of \code{flix} files is as easy as creation of
-\code{epix} files. The \filename{samples} directory contains a
-handful of \code{flix} files that may be consulted for ideas.
-
-By default, \code{flix} creates movies with 24~frames, in which
-\code{tix()} runs from~0 to~1, and animates at
-\teximath{0.08}~sec/frame. These and other parameters can be changed
-with command-line options.
-
-A ``typical'' \code{.flx} file may take 30~seconds to a few minutes to
-compile, depending on the number of frames and the complexity of each
-frame. To facilitate debugging, \code{elaps} can be run on a
-\code{flix} file. \code{elaps} runs in a fraction of the time, and if
-\code{elaps} can't produce a viewable image, \code{flix} will surely
-fail. While running, \code{flix} prints a progress bar counting the
-number of \filename{eps} files that have been created. There will be
-a delay of a few seconds (or more) after the last frame is produced,
-during which ImageMagick's \code{convert} utility assembles the movie.
-\index{Animation|)}
-
-
-\section{Layout Tricks}
-\label{section:layout}
-\index{Layout}
-
-\subsection{Stereograms}
-\index{Stereograms}
-Stereograms are created by drawing a single scene twice from slightly
-different points of view. To create a stereogram with \ePiX, write a
-``scene'' function containing the necessary drawing commands, then set
-the camera appropriately and call the scene function twice, once for
-each frame.
-
-\subsubsection*{Crossed-Eyes Stereograms}
-
-The sample files \filename{lorenz.xp}~and \filename{twisted\_cubic.xp}
-use page layout to draw crossed-eyes stereograms. For each frame,
-create and activate a \code{screen}, set the camera, and call the
-scene function. The frames are inset side by side in the final
-picture. For a crossed-eyes stereogram, the frame from the
-``rightmost'' camera position is placed on the left.
-
-\subsubsection*{Bi-Color Stereograms}
-
-The sample files \filename{cube.flx}~and \filename{mirrorball.flx}
-contain animated red-cyan stereograms, suitable for viewing with 3-D
-glasses. The technique works best with black-and-white line drawings,
-but the basic approach is the same as for crossed-eyes stereograms:
-Create a scene function and call it twice, setting the camera
-appropriately. Layout is unnecessary since the frames are superposed.
-Pen colors should be close to red and cyan, but ``optimal'' choices
-depend on one's eyes and 3-D glasses.
-
-\subsubsection*{Stereographic Movies}
-
-Either form of stereogram can be animated in a \code{.flx} file, but
-keeping one's eyes properly crossed requires practice while most
-people can instantly see depth with 3-D glasses. As always when using
-\code{flix}, debug the scene with \code{elaps} before compiling a
-movie. If a stereoscopic effect is difficult to see in a still image,
-it will be even harder to perceive in a movie.
-
-
-\subsection{Inset Images}
-
-\ePiX\ can place external images into a figure, similarly to
-Rolf Niepraschk's \code{overpic} package. You provide the Cartesian
-center point, the file name, and optionally the true height and/or
-width of the image:
-\findex{label}
-\begin{verbatim}
- label(P(a,b), "\\includegraphics[width=w,height=h]{file}");
-\end{verbatim}
-This effect requires the \filename{graphicx} package. When compiling a
-stand-alone graphic containing an external image, you must specify the
-\filename{graphicx} package on the command line: \code{elaps -p
-graphicx <file>}
-
-\texicomment
-\begin{figure}[hbt]
- \begin{center}
- \input{ePiX.eepic}
- \end{center}
- \caption{Visual guide to \ePiX's shell scripts}
- \label{fig:programs}
-\end{figure}
-\texicommentend
-
-
-\texinfochapter{3}{Reference Manual}
-\label{chapter:ref-man}
-
-This chapter details \ePiX's capabilities, discussing attributes and
-data types, and listing available commands in the form
-\begin{verbatim}
- label(P posn, [P offset], string text, [align]);
- circle(P ctr, double rad=1, normal=P(0,0,1));
-\end{verbatim}
-As in Chapter~\ref{chapter:started}, function arguments are given by
-type (\code{P}, \code{double}, \code{string}, etc.)\ and name, or by
-name alone if the type is clear. Optional arguments are enclosed in
-square brackets. A few argument types, such as \code{[align]} above,
-admit only a small number of values; these cases are explained when
-the corresponding command is first introduced.
-
-A name followed by an equals sign and a value indicates a default
-argument; if omitted in an input file, the compiler substitutes the
-default value. Only trailing arguments may be specified this way. For
-example, if the \code{rad} argument of the \code{circle} command is
-omitted, the \code{normal} argument \emph{must} be omitted as well.
-
-In an input file, only an argument's value is given, not the type:
-\begin{verbatim}
- label(P(0,0), P(0,-4), "Hello world", b);
- circle(P(0,-0.25), sqrt(2)); // use default normal
-\end{verbatim}
-
-Generally, \code{len} signifies either a number (representing a length
-in \code{pt}) or a double-quoted string containing a number and a
-two-letter \LaTeX\ length unit, such as \code{"1.5pt"} or
-\code{"6cm"}. \code{color} represents a \code{Color} object
-constructed from a named primary (\code{Blue()}, \code{Magenta(0.7)},
-etc.), a color specification (\code{RGB(r,g,b)}, \code{CMY(c,m,y)},
-etc.), or an operator applied to an existing \code{Color}.
-
-
-\section{File Structure}
-
-An \ePiX\ input file constitutes a short \CXX\ program. When this
-program is compiled and run by one of the shell scripts, it creates a
-figure file suitable for inclusion in \LaTeX.
-
-\index{Preamble}
-Like a \LaTeX\ document, an \ePiX\ file contains a \emph{preamble},
-which sets up a drawing environment, and a \emph{body}, which contains
-actual figure-generating commands. The minimal file has the form
-\findex{picture}
-\findex{begin}
-\findex{end}
-\begin{verbatim}
-#include "epix.h" // N.B. no semicolon
-using namespace ePiX;
-
-int main() {
- picture(P(a1,b1), P(a2,b2), "n1 [unit1] x n2 unit2");
- begin(); // end of preamble, start of body
- end(); // end of body
-}
-\end{verbatim}
-\ePiX\ commands are of four general types: drawing, attribute setting,
-definitions (of data and functions), and operations on existing
-objects. Except as noted below, drawing and attribute commands must
-appear in the body, between \code{begin()}~and \code{end()}. Function
-definitions must come in the preamble, before \code{main()}. Data
-definitions may appear in the preamble or body.
-
-
-\subsubsection*{Output Format}
-\index{Output format}
-
-The \code{end()} command writes the output file to \code{stdout},
-using \code{eepic} macros by default. The shell scripts redirect
-\code{stdout} to an appropriate disk file.
-
-The attribute-setting command \code{pst\_format()} causes the output
-file to be written using \code{PSTricks} macros when \code{end} is
-called. Similarly, \code{tikz\_format()} causes the file to be written
-using \code{tikz} macros, and \code{eepic\_format()} causes the file
-to be written using \code{eepic} macros. These commands may appear
-anywhere in the figure body. There is no reason for a file to contain
-more than one such command.
-
-The output format may be selected on the command line, overriding any
-explicit request in the input file. Supplying \code{epix},
-\code{elaps}, or \code{flix} with one of the options \code{--pst},
-\code{--tikz}, or \code{--eepic} is tantamount to issuing a
-\code{pst\_format()} (etc.)\ command just before the end of the
-file. These options are listed in decreasing precedence. If more than
-one is given, the ``strongest'' applies, regardless of the command
-line order.
-
-A figure may be written directly to a specified disk file, in a format
-unaffected by the command line flags above. The command
-\begin{verbatim}
- print_eepic("file.tex");
-\end{verbatim}
-writes the figure to the named file using \code{eepic}
-macros. Analogous commands exist for the formats \code{pst}~and
-\code{tikz}. These commands perform an immediate action. Consequently,
-the command's location in the input file is significant, and multiple
-commands may appear in a single file, so long as distinct file name
-arguments are provided. Applications include writing the same figure
-in multiple formats, or creating successive ``snapshots'' of a lengthy
-computation.
-
-
-\section{Picture Size and Aspect Ratio}
-
-\index{Picture!size}
-\index{Picture!offset}
-The \code{picture} command specifies a figure's logical and true
-sizes. In the ``minimal file'' snippet above, the \emph{canvas} is the
-Cartesian rectangle \teximath{[a_1,a_2]\times[b_1,b_2]} whose corners
-are given. Either pair of opposite corners is acceptable, but
-confusion is less likely when the SW~and NE corners are given, in this
-order.
-
-The true (printed) width and height are read from \code{picture}'s
-third argument, a ``size \code{string}'' such as \verb+"4cm x 1in"+,
-containing a number and optional \LaTeX\ length unit, an~\code{x},
-another number, and a mandatory length unit. Spaces may be used for
-legibility. The mandatory length unit becomes the \LaTeX\
-\code{unitlength}. The argument \verb+"4cm x 1in"+ creates a picture
-4~cm wide and 1~in high, but internally converts 4~cm to inches.
-Recognized length units are \code{pt} (points, the default), \code{cm}
-(centimeters), \code{in} (inches), \code{mm} (millimeters), \code{pc}
-(picas), and \code{bp} (big points).
-(\code{1in = 2.54cm = 72bp = 72.27pt}, \code{1pc = 12pt}.)
-
-The logical and true sizes may be defined separately with the commands
-\findex{bounding\_box}
-\findex{picture}
-\findex{unitlength}
-\begin{verbatim}
- bounding_box(P(a1,b1), P(a2,b2));
- picture(n1, n2);
- unitlength(len); // len a length string, not a double
-\end{verbatim}
-One way or another, the logical and true dimensions \emph{must} have
-positive values when the \code{begin()} command is issued.
-
-\LaTeX\ treats the contents of a picture environment as a single box,
-aligned by default on its lower left corner. An \code{offset} command
-accepts two \code{double} arguments or a size \code{string} and shifts
-the page location accordingly. The command
-\code{offset("0.25 x -0.5cm")} shifts the picture right
-\teximath{0.25}~cm and down \teximath{0.5}~cm. If the
-\code{unitlength} is 1~cm, the command \code{offset(0.25, -0.5)} has
-the same effect.
-
-A non-zero \code{offset} causes a picture's contents to appear in a
-location where \LaTeX\ does not expect them. This can be useful in a
-\LaTeX\ document, but should be avoided when compiling a stand-alone
-image, since \code{dvips} may crop according to rules of its own.
-
-
-\index{Picture!aspect ratio}
-\index{Picture!bounding box}
-The canvas's corners are \code{(xmin(),ymin())} and
-\code{(xmax(),ymax())}, while its width and height are
-\code{xsize()}~and \code{ysize()}. The canvas is a virtual, advisory
-data structure; its dimensions are not directly related to the
-figure's printed size, and picture elements may lie outside the
-canvas. Affine scaling maps the canvas to the page when the output
-file is written.
-\begin{center}
-\input{scaling.eepic}
-\end{center}
-\label{page:scaling}
-The figure's aspect ratio is controlled by sizing the canvas. The
-aspect ratio is ``true'' if the canvas and page rectangles are
-geometrically similar, e.g., if both boxes are 1.5~times as wide as
-they are tall.
-
-
-\section{Color}
-\label{section:color}
-
-\index{Color|(}
-\ePiX\ provides a \code{Color} data type. Four models are implemented:
-\code{RGB}, \code{CMY}, \code{CMYK}, and \code{Gray}. A \code{Color}
-holds primary color ``channels'', each carrying an intensity between
-0~(no color) and~1 (full saturation). ``No color'' means black in
-\code{RGB} and \code{Gray}, white in \code{CMY(K)}. \code{RGB},
-\code{CMY}, and~\code{CMYK} colors are written to the output file as
-commands in the corresponding model. \code{Gray} shades are written
-in~\code{RGB}.
-
-Operations on red-green-blue colors are described below. Functionally,
-colors are converted to~\code{RGB}, operated upon, then converted back
-to the original model. Conversions are as described in Uwe Kern's
-\filename{xcolor} manual~\cite{xcolor}.
-
-
-\subsection{Constructors}
-
-Each color model has a ``constructor'' creating a color of specified
-densities. The \code{RGB}~and \code{CMY} models have named ``primary''
-constructors; the density argument is optional and defaults to~1.
-\findex{RGB}
-\findex{Red}
-\findex{Green}
-\findex{Blue}
-\findex{White}
-\findex{Black}
-\begin{verbatim}
- // red-green-blue colors
- RGB(double r=0, double g=0, double b=0);
- Red(d=1); Green(d=1); Blue(d=1);
- White(d=1); Black(d=1);
-\end{verbatim}
-\findex{CMY}
-\findex{Cyan}
-\findex{Magenta}
-\findex{Yellow}
-\findex{CMY\_White}
-\findex{CMY\_Black}
-\findex{CMYK}
-\findex{Gray}
-\begin{verbatim}
- // cyan-magenta-yellow colors
- CMY(double c=0, double m=0, double y=0);
- Cyan(d=1); Magenta(d=1); Yellow(d=1);
- CMY_White(d=1); CMY_Black(d=1);
-
- // gray
- Gray(double d=0); // equivalent to RGB(d, d, d)
-\end{verbatim}
-Each \code{CMY} constructor has a corresponding \code{CMYK} function,
-e.g.\ \code{CyanK()}~or \code{CMYK\_White()}.
-
-Though color densities lie between 0~and 1, \ePiX's primary color
-constructors take arguments mod~4, viewed as elements
-of~\teximath{[-2,2]}. Consider \code{Red(d)}, ``red with
-density~\teximath{d}''. For integer values of~\teximath{d}, the
-constructor has the following meanings: \code{Red(0)}~is black,
-\code{Red(1)}~is red, \code{Red(2)}=\code{Red(-2)}~is white, and
-\code{Red(-1)}~is anti-red, or cyan. For non-integer~\teximath{d}, the
-constructor interpolates between the bracketing integer values,
-Figure~\ref{fig:densities}. Other primary constructors work
-analogously.
-
-\begin{figure}[hbt]
- \begin{center}
- \input{color_density.eepic}
- \end{center}
- \caption{The red primary constructor.}
-\label{fig:densities}
-\end{figure}
-
-Let \teximath{\delta:[-2,2]\to[0,1]} be the piecewise-linear function
-that converts real numbers to primary color densities,
-\teximath{\clip:\mathbf{R}\to[0,1]} the clipping function. The
-non-primary constructor \code{RGB(r, g, b)} computes the density of
-the red channel as
-\teximath{\clip\bigl(\delta(r)+\delta(-g)+\delta(-b)\bigr)}; the green
-and blue channel densities are computed similarly. Every color can be
-created with arguments between 0~and 1, but the constructor accepts
-arbitrary real arguments and returns colors varying ``continuously and
-periodically''.
-
-\index{Color!transparency}
-Colors possess an ``alpha-channel'' for transparency. Except as
-supported by the output format, this feature is a stub.
-
-
-\subsection{Color Operations}
-
-Colors can be scaled, inverted, blended, superposed, and filtered. In
-the code below, \code{tint}~is a \code{Color}. The effect of each
-operation is described in the \code{rgb} model; the visual result is
-the same in all models.
-\findex{Color.invert}
-\findex{Color.blend}
-\findex{Color.superpose}
-\findex{Color.alpha}
-\findex{Color.filter}
-\begin{verbatim}
- tint *= double c; // multiply channels by c, rebuild
- tint.invert(); // (r, g, b) -> (1-r, 1-g, 1-b)
- tint.blend(Color col, double t); // (1-t)*tint + t*col
- tint.superpose(col); // add channels, then clip to [0,1]
- tint.alpha(double d); // set alpha channel to clip(d)
-
- tint.filter(col); // return min density in each channel
-\end{verbatim}
-Except for \code{filter}, these operators modify their object.
-\code{filter} simulates the effect of viewing \code{col}
-through a transparent sheet of \code{tint}, and returns a new
-\code{Color} object having the same model as \code{tint} without
-modifying \code{tint} itself.
-
-
-\section{Scene Attributes}
-
-Objects in a scene sit in 3-dimensional space. A \emph{camera}
-maps objects to the \emph{active screen}. The active \code{screen}
-may, in turn crop its contents. Each drawing command creates an
-object, ``photographs'' it, and adds the image to the active
-\code{screen}. This section describes the \code{Camera} and
-\code{screen} classes and a few associated concepts.
-
-
-\subsection{Angular Mode}
-\index{Angle units}
-
-By default, angles are measured in \code{radian}s. Two other angular
-modes are available: \code{degrees}~and \code{revolutions}. The
-angular mode is set with a named command, \code{radians()},
-\code{degrees()}, or \code{revolutions()}. The current angular mode
-affects all trigonometric functions and operations.
-
-
-\subsection{The Camera}
-\index{Camera|(emph}
-\index{Screen|(}
-
-Three-dimensional scenes are drawn on flat paper by applying a
-mathematical transformation. By default, \ePiX\ uses \emph{point
-projection}, the technique used by art students when they trace on a
-window with grease pencil, Figure~\ref{fig:camera}.
-
-\begin{figure}[hbt]
- \begin{center}
- \input{camera.eepic}
- \end{center}
- \vspace*{-0.25in}
- \caption{Point projection.}
- \label{fig:camera}
-\end{figure}
-
-\index{Camera!viewpoint}
-\index{Viewpoint}
-\ePiX\ depicts a Cartesian world by projecting mathematically to a
-screen plane, then affinely scaling to a printed page. The camera,
-which maps the world to the screen, consists of a \emph{body} (data
-that determines the position and orientation of the camera), a
-\emph{lens} (the actual mapping to the screen plane), and a
-\emph{filter} (a color through which the scene is viewed).
-
-
-\subsubsection*{Body}
-
-The camera's spatial orientation is described by a triple of mutually
-perpendicular unit vectors. In memory of happy days at the beach,
-these vectors are called \emph{sea}, \emph{sky}, and~\emph{eye}. The
-screen plane is parallel to the sea-sky plane; the sea vector points
-horizontally to the right, sky points vertically upward. The eye is
-their cross product, which points directly at the viewer.
-
-The sea-sky-eye basis is located at the \emph{viewpoint}, the camera's
-spatial location. The \emph{target}, the origin of the screen plane,
-lies on the line through the viewpoint in the direction opposite the
-eye vector. The distance from the viewpoint to the target is the
-\emph{range}. The \emph{camera sphere} is centered at the viewpoint
-and passes through the target. The orientation, viewpoint, target,
-and range completely (and redundantly) determine the camera's
-geometric situation in the world.
-
-
-\subsubsection*{The Lens}
-\index{Camera!lens}
-
-A \emph{lens} maps the world to the screen. \ePiX\ comes with four
-lenses: \emph{shadow} (the default), \emph{orthogonal},
-\emph{fisheye}, and \emph{bubble}. Each lens simulates the appearance
-of world objects as seen by an observer at the viewpoint. The shadow
-lens is point projection from the viewpoint to the screen plane. The
-orthogonal lens projects from infinite distance. Each of the other
-lenses performs radial projection to the camera sphere, then maps the
-sphere to the screen plane; the fisheye lens does orthogonal
-projection (so the entire image lies inside the disk centered at the
-target whose radius is the range) while the bubble lens does
-stereographic projection from the target's antipode.
-\index{Screen|)}
-
-
-\index{Camera!manipulation|(}
-An input file normally uses a single camera, so a global object named
-\code{camera} is defined automatically. At the start of a figure, the
-\code{camera} looks down on the \teximath{(x_1,x_2)}-plane from a
-distant point on the \teximath{x_3}-axis. The resulting view,
-essentially projection along the axis, is suitable for 2-dimensional
-figures.
-
-The \code{camera} is manipulated similarly to a real camera:
-\findex{Camera.at}
-\findex{Camera.look\_at}
-\findex{Camera.range}
-\findex{Camera.focus}
-\findex{Camera.tilt}
-\findex{Camera.pan}
-\findex{Camera.roll}
-\findex{Camera.clip\_range}
-\begin{verbatim}
- camera.at(P posn); // set viewpoint to posn
- camera.look_at(P targ); // set target to targ
- camera.range(double dist); // fix target, move viewpoint
- camera.focus(double dist); // fix viewpoint, move target
- camera.tilt(double angle); // rotate about the sea axis
- camera.pan(double angle); // rotate about the sky axis
- camera.roll(double angle); // rotate about the eye axis
- camera.clip_range(dist); // cull scenery closer than dist
-\end{verbatim}
-Explicitly setting the viewpoint or target makes the sky vector
-parallel to the projection of the \teximath{x_3}~axis when possible;
-otherwise the \teximath{x_2}-axis is used. Setting the range or focus
-moves the \code{camera} parallel along the eye line. Each command
-re-sizes the image; note that increasing the focus \emph{enlarges} the
-image. The three rotation operations fix the viewpoint, but only roll
-fixes the target.
-
-
-\subsubsection*{Filtering and Color Separation}
-\index{Color!separation}
-\index{Camera!color separation}
-
-The \code{camera} has a \emph{filter} through which all scene
-\code{Color}s pass. For uniformity, the filter should only be set at
-the start of the file body, before any visible elements have been
-placed in the scene. The filter has two primary uses---model
-conversion and color separation---but can also be used for special
-effects.
-
-There is a \code{Neutral} color, for which filtering has no effect at
-all. The \code{camera}'s default filter is \code{Neutral}. In
-addition, each color model has a \emph{neutral} representative,
-\code{RGB\_Neutral}, etc. Passing \code{Color}s through a neutral
-filter preserves their appearance but converts them to the neutral
-\code{Color}'s model.
-
-Filtering can be used to ``split'' a \code{Color} into primary
-constituents. For \code{RGB} channels, the primaries themselves are
-suitable filters. For \code{CMYK} channels, there are special
-\emph{process} filters, named \verb+C_Process+, etc.
-\begin{verbatim}
- camera.filter(CMY_Neutral()); // convert all colors to CMY
- camera.filter(Gray_Neutral()); // black and white photography
- camera.filter(Green()); // the green channel
- camera.filter(M_Process()); // the magenta channel
- camera.filter(Red(1.4)); // la vie en rose?
-\end{verbatim}
-\index{Camera!manipulation of|)}
-\index{Camera|)}
-
-
-\subsection{Clipping}
-
-\index{Clipping|(}
-
-Two operations handle elements lying far from the target.
-\emph{Cropping} culls elements based on their screen location, and is
-described later. \emph{Clipping} removes objects whose spatial
-location lies outside the ``clip region''.
-
-Initially, the clip region is a very large box centered at the
-origin. Commands are provided to resize this box, keeping the faces
-parallel to coordinate planes.
-\findex{clip\_box}
-\findex{clip\_to}
-\begin{verbatim}
- clip_box(P pt1, P pt2); // opposite corners
- clip_box(P pt); // opposite corners pt and -pt
- clip_to (P pt); // pt and P(0,0,0)
- clip_box(); // very large box
-\end{verbatim}
-Additional ``clippers'' may be added manually. Individual clipping
-planes are specified by a point and inward-pointing normal vector.
-Parallel planes cutting a ``slice'' or ``slab'' are described by a
-location, direction, and a distance. The location lies halfway between
-the clipping planes, and the planes' normals point toward the location.
-\findex{clip\_face}
-\findex{clip\_slice}
-\findex{clip\_restore}
-\begin{verbatim}
- clip_face(P loc, P perp); // perp points inward
- clip_slice(loc, perp); // very close parallel planes
- clip_slice(loc, perp, dist); // planes separated by dist
- clip_restore(); // remove manually-added clip planes
-\end{verbatim}
-Like \code{clip\_restore}, the \code{clip\_box} and \code{clip\_to}
-commands remove all user-specified half spaces.
-\index{Clipping|)}
-
-
-\subsection{Screens and Page Layout}
-\index{Screen|(}
-\index{Screen!active}
-\index{Layout}
-
-By default, drawing occurs in the Cartesian coordinate system of the
-\code{canvas}. However, insets and subfigures are most naturally
-composed in ``local'' coordinates, then placed into their final
-location as a unit, a process called \emph{layout}. \ePiX\ implements
-layout with the \code{screen} class.
-
-
-\subsubsection*{Screens}
-\index{Bounding box}
-
-A \code{screen} is a Cartesian plane containing a distinguished
-coordinate rectangle, its \emph{bounding box}. The \code{canvas} of a
-figure is a \code{screen}, as is the internal representation of the
-printed page. At any point of a file body, some \code{screen} is
-\emph{active}, or ``open for drawing''. A new \code{screen} is created
-from a pair of opposite corners, but is not used until explicitly
-activated.
-\findex{activate}
-\findex{deactivate}
-\begin{verbatim}
- screen subfig(P(a1,b1), P(a2,b2)); // [a1, a2] x [b1, b2]
- activate(subfig); // open subfig for drawing
- // commands to draw in subfig
- deactivate(subfig); // re-activate the previous screen
-\end{verbatim}
-
-The \code{canvas} is automatically drawn at the \code{end} of the
-input file. The contents of other \code{screen}s must be incorporated
-into the \code{canvas} explicitly with an \code{import}~or
-\code{inset} command. \code{import} affinely scales the bounding box
-of the ``child'' \code{screen} to the \code{canvas}. \code{inset}
-specifies corners in the ``parent'' where the child is
-placed.
-\findex{import}
-\findex{inset}
-\begin{verbatim}
- import(); // active screen to canvas
- import(subfig); // subfig to canvas
- inset(P sw, P ne); // active screen to specified rectangle
- inset(subfig, sw, ne); // subfig to specified rectangle
- inset(subfig); // inset to subfig's corners
-\end{verbatim}
-
-
-\subsubsection*{Extracting}
-
-The portion of a \code{screen} enclosed by a specified rectangle can
-be \emph{extracted}. Each of the commands
-\findex{extract}
-\findex{canvas}
-\begin{verbatim}
- subfig.extract(P sw, P ne);
- canvas().extract(P sw, P ne);
-\end{verbatim}
-returns the \code{screen} having stated corners and containing part of
-\code{subfig} or the \code{canvas}, respectively. Elliptical and
-diamond-shaped portions of a \code{screen} may be extracted. The
-contents occupy the ellipse or diamond inscribed in the given
-rectangle.
-\findex{extract\_diamond}
-\findex{extract\_ellipse}
-\begin{verbatim}
- subfig.extract_ellipse(sw, ne);
- canvas().extract_diamond(sw, ne);
-\end{verbatim}
-The \code{screen} returned by \code{extract} (or its variants) may be
-used just like a manually-constructed \code{screen}, for example to
-construct a magnified inset.
-
-
-\subsubsection*{True-Size Drawing}
-\label{truesize}
-
-On occasion, it is necessary to draw at known page size, independently
-of the unit length. For 2-dimensional drawing in the
-\teximath{(x_1,x_2)}-plane with the \code{camera} in its default
-location, the coordinates (horizontal, vertical, or both) of a
-\code{screen} may be interpreted as true~pt offsets relative to a
-specified point rather than as Cartesian coordinates.
-\findex{inlay}
-\findex{inlay\_horizontal}
-\findex{inlay\_vertical}
-\begin{verbatim}
- inlay(subfig, P loc);
- inlay_horizontal(subfig, loc);
- inlay_vertical(subfig, loc);
-\end{verbatim}
-Each command maps the origin of \code{subfig} to the specified
-location in the active \code{screen}. The first performs affine
-scaling so that one Cartesian unit in \code{subfig} maps to one
-true~pt on the page. The second and third commands perform this
-scaling only in the named direction.
-
-\findex{pt\_to\_screen}
-The \code{inlay} functions are suitable only for 2-dimensional
-effects. For 3-dimensional true-size drawing, the function
-\code{pt\_to\_screen} converts a true length of 1~pt into Cartesian
-coordinates in the active \code{screen}. For example, the command
-\code{line(P(0,0), P(pt\_to\_screen(12),0))} draws a line segment
-12~pt long with its left endpoint at the Cartesian origin. True size
-drawing is unusual in an input file, but has definite uses in library
-code; \ePiX's right angle marker is a typical application.
-
-Either type of true-size drawing works as described when drawing in
-the \code{canvas}, and \emph{only} when drawing in a \code{screen}
-imported to the \code{canvas} at ``true Cartesian'' size (one
-\code{screen} unit maps to one Cartesian unit in the \code{canvas}).
-In other situations, the true size coordinate(s) will be scaled by
-additional affine transformation(s).
-
-
-\subsubsection*{Cropping and Decorations}
-
-\index{Cropping}
-A \code{screen} has a \emph{crop mask}: rectangular (default),
-elliptical, or diamond-shaped. If cropping is switched on in the
-active \code{screen}, added elements are cropped to the crop mask.
-For example, cropping by the default crop mask in the \code{canvas}
-ensures the figure lies inside the printed region allocated by
-\LaTeX.
-
-The \code{crop} commands below affect the active \code{screen}
-only. Cropping is not a ``global'' attribute, but must be set or unset
-explicitly for each \code{screen}. By default, cropping is switched
-off.
-\findex{crop}
-\findex{crop\_ellipse}
-\findex{crop\_diamond}
-\findex{set\_crop}
-\begin{verbatim}
- set_crop(); // activate cropping
- set_crop(false); // deactivate cropping
- crop_diamond(); // <>-shaped mask, set crop state
- crop_ellipse(); // etc...
- crop(); // crop active screen's contents
-\end{verbatim}
-Normally the crop mask is inscribed in the \code{screen}'s bounding
-box. The commands \code{crop\_diamond} and \code{crop\_ellipse} also
-accept a pair of \code{P}~arguments, which are treated as corners of
-the crop box.
-
-The active \code{screen} may be decorated with a \code{border}
-(outline of specified color and line width) and \code{backing} (solid
-fill color). The crop mask determines the shape of the \code{border}
-and \code{backing}.
-\findex{border}
-\findex{backing}
-\begin{verbatim}
- border(color, len);
- backing(color);
-\end{verbatim}
-Identically-named member functions can be applied to an arbitrary
-\code{screen} whether or not it is active:
-\begin{verbatim}
- scr.crop_rectangle().backing(Blue(1.8));
- canvas().crop();
-\end{verbatim}
-
-
-\subsubsection*{Affine Maps}
-\index{Affine map}
-
-A \emph{plane affine map} has the form \teximath{T(x) = Ax+b} for some
-invertible \teximath{2\times2} matrix~\teximath{A} and a constant
-vector~\teximath{b}. \ePiX's \code{affine} class allows affine maps to
-be built and applied to \code{screen}s' contents.
-
-An affine map is uniquely determined by the images of three
-non-collinear points. The constructor returns the affine map sending
-the points \teximath{(1,0)}, \teximath{(0,1)}, and~\teximath{(0,0)} to
-\code{pt1}, \code{pt2}, and~\code{pt0}, respectively.
-\findex{affine}
-\begin{verbatim}
- affine af(P pt1, P pt2, P pt0=P(0,0));
-\end{verbatim}
-To emphasize, the arguments are locations, not displacements, and the
-image of the origin comes last. There is also a \code{void}
-constructor (taking no arguments) which returns the identity map.
-
-To facilitate construction of affine maps, an existing \code{affine}
-may be post-composed with a variety of ``elementary'' affine
-transformations. In the commands below, \code{th} is an angle (in
-current units), \code{sc} is a non-zero \code{double}, and \code{ctr}
-is a point fixed by the composing transformation. In each command,
-\code{ctr} defaults to \teximath{(0,0)}.
-\findex{shift}
-\findex{rotate}
-\findex{reflect}
-\findex{h\_scale}
-\findex{v\_scale}
-\findex{scale}
-\findex{h\_shear}
-\findex{v\_shear}
-\findex{postcomp}
-\begin{verbatim}
- affine af; // the identity map
- af.shift(P arg); // translate by arg
- af.rotate(th, [ctr]); // counterclockwise rotation about ctr
- af.reflect(th, [ctr]); // reflect across line through ctr
-
- af.h_scale(sc, [ctr]); // horizontal scaling
- af.v_scale(sc, [ctr]); // vertical scaling
- af.scale(sc, [ctr]); // dilatation
-
- af.h_shear(sc, [ctr]); // shear preserving horizontals
- af.v_shear(sc, [ctr]); // shear preserving verticals
-
- af.invert(); // the inverse
- af.postcomp(affine f); // post-compose with f
- af(f); // pre-compose, af not modified
-\end{verbatim}
-A non-invertible \code{affine} can be created \emph{only} by shearing
-or scaling with an extremely large or extremely small argument, or by
-supplying three collinear points to the constructor. Calling
-\code{invert} on a non-invertible map merely issues a warning and
-performs no action.
-
-An \code{affine} may be applied to a \code{screen}'s current contents.
-The \code{screen} class has eight member functions (\code{shift}
-through \code{shear}) with syntax identical to the affine map
-functions. In addition, an arbitrary \code{affine} may be applied to a
-\code{screen}:
-\findex{apply}
-\begin{verbatim}
- scr.shift(arg); // shift scr's contents by arg; etc.
- scr.apply(f); // apply f to scr's contents
-\end{verbatim}
-To apply a composition of several maps to a \code{screen}, it's best
-to build an \code{affine} map by composition, then \code{apply} the
-map. Composing \code{affine}s is cheap; \code{apply}ing an
-\code{affine} is costly in proportion to the number of elements in the
-\code{screen}.
-
-Applying an \code{affine} to a \code{screen} has no effect on the
-bounding box, \code{border}, or \code{backing}, and may move elements
-outside the bounding box even if cropping is active. To ensure a
-\code{screen}'s contents lie inside the bounding box, \code{crop} the
-\code{screen} \emph{after} \code{apply}ing the \code{affine}(s).
-
-The sample file \filename{inverse.xp} uses \code{affine} maps to
-depict branches of inverse functions in one variable,
-\filename{symmetry.xp} depicts the permutation group~\teximath{S_3}
-by its action on a regular hexagon.
-\index{Screen|)}
-
-
-\section{Drawing Attributes}
-
-\ePiX\ maintains drawing states for filled regions, paths, and text
-objects.
-
-
-\subsection{Filled Regions}
-
-\index{Filling}
-\index{Path|(}
-\index{Path!filled}
-Filling is either on or off. When filling is active, closed paths are
-filled with the current \emph{fill color}.
-\findex{fill}
-\findex{nofill}
-\begin{verbatim}
- fill(); // turn filling on
- fill(color); // turn filling on, specify color
- nofill(); // turn filling off, same as fill(false);
-\end{verbatim}
-
-
-\subsection{Paths}
-
-Paths and borders of filled regions are drawn with two \emph{pen}s,
-each described by color and line width. The \emph{line pen} draws
-all path-like objects. The \emph{base pen} does nothing unless it is
-wider then the line pen, in which case it draws an ``underlayer'' or
-``border'' on the line pen.
-\findex{pen}
-\begin{verbatim}
- pen(len); // set line pen width
- pen(color); // set line color, keep width
- pen(color, len); // set color and width
-\end{verbatim}
-As usual, \code{len} may be either a length string or a \code{double},
-interpreted as a width in~\code{pt}. There are \code{base} functions
-with the same signatures and analogous meanings for the base pen.
-
-The line width can be set with named declarations; the optional
-argument sets the line color:
-\findex{plain}
-\findex{bold}
-\findex{bbold}
-\begin{verbatim}
- plain([color]); // 0.4pt
- bold([color]); // 0.8pt
- bbold([color]); // 1.6pt
-\end{verbatim}
-
-
-\subsubsection*{Path Style}
-
-\index{Path!style}
-By default, path-like objects are drawn with solid lines. Dashed,
-dotted, and free-form path style patterns are also available. (The
-\code{base} underlayer is always solid.) The page length of a pattern
-defaults to 12~pt, but can be set.
-\findex{line\_style}
-\findex{dash\_size}
-\begin{verbatim}
- line_style(string);
- dash_size(len=12);
-\end{verbatim}
-The path style is set with a WYSIWYG string of dashes, spaces, and
-periods, representing a pattern of dashes, gaps, and dots. In the
-sample styles below, the repeating units have the same page size,
-12~pt.
-\begin{center}
- \input{pathstyle.eepic}
-\end{center}
-For brevity and uniformity, named commands are provided.
-\findex{solid}
-\findex{dashed}
-\findex{dotted}
-\begin{verbatim}
- solid(); "-" dashed(); "- -" dotted(); " . "
-\end{verbatim}
-A sequence of \teximath{n}~dashes, spaces, and dots corresponds to a
-dash/dot pattern in an interval divided into \teximath{n}~subintervals
-of equal length. If the \teximath{i}th character is a dash or space,
-the \teximath{i}th~subinterval is drawn solid or empty,
-respectively. If the \teximath{i}th~character is a period, a dot is
-placed at the midpoint of the \teximath{i}th~subinterval.
-
-This pattern is applied to a path-like object as follows. The page
-length of each edge is divided by the current \code{dash\_size} and
-the ceiling (next largest integer) taken. This many copies of the
-current path style are scaled onto the edge. The first and last
-characters are adjacent in repeated units.
-
-There are three inequivalent ways to adjust the dash length/dot
-spacing in a non-line path: Change the \code{dash\_length}, create a
-path with a different number of points, or use a longer, repetitive
-pattern. For best results, the style string should not be longer than
-about a dozen characters.
-
-If you need several dashed/dotted line styles in multiple figures,
-it's best to define a custom header instead of hard-coding line
-styles. See Section~\ref{section:extensions} for guidance.
-\index{Path|)}
-
-
-\subsection{Text Objects}
-
-\index{Labels|(emph}
-\index{Labels!alignment}
-
-Two types of textual element may appear in a file: \emph{labels} (text
-boxes) and \emph{markers} (\LaTeX\ symbols). A marker occupies a box
-of zero size, and is placed at a specified Cartesian location. A label
-has typographical size, and is usually offset from its Cartesian
-location. For placement, an \emph{alignment point} is attached to each
-label, and Cartesian coordinates position the alignment point.
-
-\subsubsection*{Labels}
-
-A label is printed as a \LaTeX\ box. By default, the alignment point
-is its reference point, the intersection of the left edge and the
-baseline, which is used by \LaTeX\ to position the box on the
-page:\input{basepoint.eepic}
-
-\index{Labels!alignment|(}
-The alignment point may be \emph{offset} manually by a specified
-number of \code{pt}. Additionally, a label's location with respect to
-the alignment point can be chosen with an optional \LaTeX-style
-alignment option. This scheme allows labels to be placed easily where
-they will not overlap other parts of the figure, and ensures labels
-stay properly positioned when the size or aspect ratio of a figure
-changes.
-\findex{label}
-\begin{verbatim}
- label(P posn, P offset, string msg, [align]);
- label(posn, msg);
-\end{verbatim}
-The first two components of the \code{offset} argument are numbers
-of~\code{pt} to shift the alignment point right and up. The optional
-\code{align} argument may be one---or an appropriate pair---of
-\code{t}, \code{b}, \code{r}, or~\code{l} (top, bottom, right, left),
-or~\code{c} (center). These alignment options specify the position of
-the label \emph{relative to the Cartesian location}~\code{posn},
-namely they work \emph{opposite} to the way they work in \LaTeX.
-\begin{center}
- \input{alignment_lr.eepic}\qquad
- \input{alignment.eepic}
-\end{center}
-\index{Labels!alignment|)}
-
-The \code{msg} argument is usually a snippet of \LaTeX\ code enclosed
-in double quotes. \CXX~treats ``\verb+\+'' as an escape character, so
-a double backslash is needed in the source to get a single backslash
-in the output. For example,
-\begin{verbatim}
- label(P(0,0), P(2,-1), "$\\rho = \\sin\\theta$", br);
-\end{verbatim}
-positions an alignment point \code{2pt}~right and \code{1pt}~below the
-(Cartesian) origin, and typesets the equation
-\teximath{\rho=\sin\theta} below and to the right.
-
-\index{Labels!rotated}
-\index{Angle units}
-Labels can be rotated; the (counterclockwise) angle is set in current
-angle units with the command \code{label\_angle(theta)}. For example,
-a rotation angle of~90 degrees prints labels along a vertical
-axis. Though label rotation has legitimate uses, it can make labels
-more difficult to read, defeating their purpose. Do not use rotated
-labels merely because they are available. As a practical matter, if an
-output file contains rotated labels, the enclosing document must use
-the \code{rotating} package. \code{elaps} automatically loads this
-package.
-
-\index{Affine map!action on labels}
-An \code{affine} behaves moderately intelligently when acting on a
-marker or label. The mapping is applied to the label's location, and
-the ``linear part'' is used to adjust the offset and label angle. No
-attempt is made to treat alignment. For best results, if a
-\code{screen} will have an \code{affine} applied to it, label
-positions should be fine-tuned only with offsets, not alignment
-arguments. In all situations, the font itself is unchanged; no
-attempt is made to print sheared, scaled, or reflected text. The
-sample file \filename{inverse.xp} illustrates the effect of affine
-maps on labels.
-
-
-\subsubsection*{Fonts and Type Size}
-
-\index{Fonts}
-\index{Labels!fonts in}
-By default, the font in an \ePiX\ figure is that of the enclosing
-document. The font size and face are changed with
-``declaration-style'' commands such as
-\findex{font\_size}
-\findex{font\_face}
-\begin{verbatim}
-font_size("Large");
-font_face("sc");
-\end{verbatim}
-The argument of \verb+font_size+ is a valid \LaTeX\ size. If no
-argument is given, \code{normalsize} is understood. \verb+font_face+
-accepts a two-letter string, appended to the string ``\code{text}'' to
-give a \LaTeX\ font declaration command (``\code{textsc}'' above).
-Finer-grained control is accomplished by placing \LaTeX\ commands
-into the label text.
-
-
-\subsubsection*{Label Attributes and Masked Labels}
-
-Each label command has a corresponding ``mask'' version
-(\code{masklabel}) that draws an opaque rectangle under the label
-text. The mask size exceeds the label's size by an amount of
-\emph{padding}, and the mask is itself surrounded by a rectangular
-\emph{border}, of specified color and width.
-\findex{label\_color}
-\findex{label\_mask}
-\findex{label\_pad}
-\findex{label\_border}
-\findex{no\_label\_border}
-\begin{verbatim}
- label_color(color); // set label text color
- label_mask(color=White()); // set mask color
- label_pad(string len);
-
- label_border(color, [len]); // set color (and line width)
- label_border(len); // set line width only
- no_label_border(); // turn off label borders
-\end{verbatim}
-
-
-\subsubsection*{Markers}
-
-\index{Marker types|(}
-\ePiX's marker types, listed in Table~\ref{table:marker}, are obtained
-with the command \verb+marker(P pt, <MARKER TYPE>);+ Several
-``dot-like'' marker types are available by name: \input{dots.eepic}
-\findex{spot}
-\findex{dot}
-\findex{ddot}
-\findex{box}
-\findex{bbox}
-\findex{ring}
-\findex{circ}
-\begin{verbatim}
- spot(P pt); dot(P pt); ddot(P pt);
- --- box(P pt); bbox(P pt);
- ring(P pt); circ(P pt); ---
-\end{verbatim}
-A \code{circ} is filled with the current \code{mask\_color}, and a
-\code{ring} is ``hollow''. Each dot-like marker can also be called
-with label syntax, generating a labeled marker with one command.
-\begin{verbatim}
- dot(P posn, offset=P(0,0), msg="", align=none); // etc.
-\end{verbatim}
-
-\findex{dot\_size}
-By default, \code{spot}~and \code{ring} are 4~pt in diameter;
-\code{dot}, \code{box}, and~\code{circ} are 3~pt in diameter;
-\code{ddot}~and \code{bbox} are 2~pt in diameter. At arbitrary
-diameter, a \code{spot} is \teximath{4/3}~the diameter of a~\code{dot}
-and a~\code{ddot} is \teximath{2/3}~the diameter. The command
-\code{dot\_size(diam=3)} sets the diameter of a \code{dot}, and hence
-the size of all dot-like markers.
-
-\begin{table}[tb]
- \begin{center}
- \input{marker.eepic}
- \end{center}
- \caption{\ePiX's \code{marker} types.}
- \label{table:marker}
-\end{table}
-\index{Marker types|)}
-
-
-
-\subsubsection*{Reminders}
-
-When constructing and placing a label,
-\begin{itemize}
-\item Offsets are specified in \code{pt} (true length), not Cartesian
- units: A label's location relative to its alignment point should not
- depend on the logical or printed size of the figure.
-
-\item The label text is enclosed in double quotes (the single
- character~\code{"}), and contains the \LaTeX\ code to generate the
- label. Backslashes are doubled.
- \index{Labels!backslash in}
- \index{Labels!in double quotes}
-\end{itemize}
-\index{Labels|)}
-
-
-\subsection{Color Declarations}
-
-Old-style color declarations set the fill color, line color, and
-text color.
-\findex{rgb}
-\findex{cmyk}
-\begin{verbatim}
- rgb(r, g, b); cmyk(c, m, y, k);
- rgb(P); cmyk(P); // for function-controlled colors
- red(d); // similarly for other primaries
-\end{verbatim}
-\index{Color|)}
-
-
-\section{Creating and Drawing Objects}
-
-Scene elements include geometric objects, coordinate grids, axis
-labels, and function plots. A few commands create an object (a point,
-line segment, circle, sphere, or plane) that can be used in subsequent
-computations, but most drawing commands automatically create, draw,
-and discard objects.
-
-
-\subsection{Geometric Data Structures}
-
-\index{Point|(}
-The simplest object in the world, and by far the most common named
-data structure, is~\code{P}, an ordered triple of real numbers
-(double-precision floats). The function~\code{P(x1,x2,x3)} creates the
-point~\teximath{(x_1,x_2,x_3)}. If only two arguments are provided,
-\teximath{x_3=0} by default. This convention allows \ePiX\ to treat
-2-~and 3-dimensional figures uniformly. The standard basis is
-available: \code{E\_1=P(1,0,0)}, etc.
-
-Depending on context, a \code{P} may represent either a
-\emph{location} (point) or a \emph{displacement} (vector). Almost all
-\ePiX\ functions treat a~\code{P} as a point. However, algebraic
-operators and commands that plot vector fields treat \code{P}
-arguments as displacements.
-
-Polar, cylindrical, and spherical coordinate \code{P}~constructors are
-sensitive to the current angular mode.
-\index{Angular mode}
-\findex{P}
-\findex{polar}
-\findex{cis}
-\findex{cyl}
-\findex{sph}
-\begin{verbatim}
- P pt=polar(r,t); // (r*Cos(t), r*Sin(t), 0)
- P pt=cis(t); // (Cos(t), Sin(t), 0) = polar(1, t)
- P pt=cyl(r,t,z); // (r*Cos(t), r*Sin(t), z)
- P pt=sph(r,t,phi); // polar(r,t)*Cos(phi) + (0,0,r*Sin(phi))
-\end{verbatim}
-
-Algebraic operations---addition/subtraction, scalar multiplication;
-scalar, cross, and componentwise products; orthogonalization---can
-be performed on~\code{P}s. In compound expressions, the binary
-operators below should be enclosed in parentheses, and scalars must be
-collected at left, \code{P}s at right.
-\findex{P.x1}
-\findex{P.x2}
-\findex{P.x3}
-\findex{J}
-\begin{verbatim}
- double u=pt.x1(); // first coordinate of pt, etc.
- P(a,b,c)|P(x,y,z); // scalar product, ax+by+cz
- P(a,b,c)&P(x,y,z); // componentwise product (ax, by, cz)
- P(a,b,c)*P(x,y,z); // cross product (bz-cy, cx-az, ay-bx)
- J(p); // quarter turn about the x3-axis
- p%q; // orthogonalization, p (mod q)
-\end{verbatim}
-Explicitly, \code{p\%q}~is the unique vector \code{p+k*q}
-perpendicular to~\code{q}.
-
-\code{P}~operations express mathematical relationships, and therefore
-imbue a figure with logical structure, making the input file easier to
-read, modify, and maintain. Commonly, a file preamble will define a
-few named points with hard-coded coordinates, then define additional
-points of interest using \code{P}~operators.
-\index{Point|)}
-
-
-\subsubsection*{Other Geometric Classes}
-
-In addition to~\code{P}, objects of type \code{Circle}, \code{Plane},
-\code{Segment}, and \code{Sphere} can be used for Euclidean geometry
-constructions. Simple affine operations are supplied for each type, as
-is a \code{draw()} function, which represents the object as a path in
-the screen.
-\findex{shift}
-\findex{move\_to}
-\findex{scale}
-\findex{draw}
-\begin{verbatim}
- obj.shift(P arg); // translate by arg
- obj.move_to(P arg); // move center to arg
- obj.scale(double c); // scale about center by c
- obj.draw();
-\end{verbatim}
-A \code{Segment}'s ``center'' is its midpoint. A \code{Plane} has no
-center; \code{move\_to} translates the \code{Plane} to pass through
-\code{arg}, and \code{scale} has no effect.
-
-\index{Circle}
-A \code{Circle} data structure consists of a center, radius, and a
-perpendicular unit vector. Three constructors are provided:
-\findex{Circle}
-\begin{verbatim}
- Circle(center=P(0,0,0), double rad=1, normal=E_3);
- Circle(P center, P point);
- Circle(P p1, P p2, P p3);
-\end{verbatim}
-The second constructor creates the \code{Circle} parallel to the
-\teximath{(x_1,x_2)}~plane, with given center, and radius equal to the distance
-between the arguments. (A warning is printed if the second argument
-does not lie on the circle, namely, if the arguments do not lie in a
-plane parallel to the \teximath{(x_1,x_2)}~plane.) The third returns the
-\code{Circle} passing through the given points; the points must not be
-collinear.
-
-The data defining a \code{Circle} are recovered with member functions
-named \code{center()}, \code{radius()}, and \code{perp()}.
-
-\index{Plane}
-\findex{Plane}
-A \code{Plane} is specified by a point and normal vector, or by three
-non-collinear points. The \code{draw()} function clips the plane and
-draws the resulting polygon. Unless the clip box has been set
-manually, the clipped polygon's vertices will have large coordinates.
-
-\index{Segment}
-\findex{Segment}
-A \code{Segment} is constructed from its endpoints. The member
-function \code{midpoint()} returns the center.
-
-\index{Sphere}
-\findex{Sphere}
-A \code{Sphere} is specified by a point and a radius---by default the
-origin and unity, or by the center and a point on the sphere. Member
-functions \code{center()}~and \code{radius()} return the defining
-data. Capabilities specific to geography and spherical geometry are
-described below, pp.~\pageref{non-eucl}ff.
-
-The \code{draw()} function of a \code{Sphere} draws the horizon
-visible from the current viewpoint. While this horizon is a circle in
-object space, its image in the screen is generally an ellipse.
-Antipodal points are not generally mapped to points symmetrically
-placed with respect to the center of this ellipse. These effects are
-most pronounced when the viewpoint is close to the \code{Sphere} and
-the center is not close to the \code{target}.
-
-
-\subsubsection*{Intersection}
-
-\index{Intersection}
-
-To facilitate geometric computation, \ePiX's \code{Circle},
-\code{Plane}, \code{Segment}, and \code{Sphere} classes can be
-intersected with the \code{*}~operator.
-\texicomment
-Table~\ref{table:intersect}
-lists the return types for each pair of arguments. Intersection is
-commutative, so only the top half of the table is shown. For purposes
-of intersection, a \code{Segment} is extended into a line.
-The sample file \filename{pascal.xp} gives typical applications of
-objects and intersection.
-\findex{intersection}
-\begin{table}[hbt]
-\begin{center}
- \begin{tabular}{c|cccc}
- \code{*} &
- \code{Segment} & \code{Circle} & \code{Plane} & \code{Sphere} \\
- \hline
- \code{Segment} & \code{P} & \code{Segment} & \code{P} & \code{Segment} \\
- \code{Circle} & & \code{Segment} & \code{Segment} & \code{Segment} \\
- \code{Plane} & & & \code{Segment} & \code{Circle} \\
- \code{Sphere} & & & & \code{Circle}
- \end{tabular}
- \caption{Object intersection types.}
- \label{table:intersect}
-\end{center}
-\end{table}
-\texicommentend
-
-A \code{Circle} has a center, radius, and unit normal; a \code{Plane}
-has a distinguished point and unit normal; a \code{Segment} has two
-endpoints; a \code{Sphere} has a center and radius. An object is
-\emph{malformed} if these conditions are not met. The constructors
-return well-formed objects with two exceptions: \code{Circle} and
-\code{Plane} create malformed objects if called with three collinear
-points. The operator~\code{*} returns a malformed object if either
-argument is malformed, or if the operands are disjoint, tangent, or
-coincident. Malformedness is benign: Calling \code{draw()} on a
-malformed object does nothing.
-
-
-\subsubsection*{Orthonormal Frames}
-
-A \code{frame} comprises three mutually perpendicular unit
-vectors. The constructor takes three vectors. The \code{frame}'s third
-vector~\teximath{e_3} is positively proportional to~\code{v3}, the
-second vector~\teximath{e_2} is positively proportional to
-\code{v2\%v3}, and the first is the cross product,
-\teximath{e_1=e_2\times e_3}. Thus, a \code{frame} is right-handed,
-and does not depend on~\code{v1}.
-
-The elements of a \code{frame} are named \code{sea}, \code{sky}, and
-\code{eye}, just as for the \code{camera}. A \code{frame} can be
-rotated through an arbitrary angle about any of its elements.
-\findex{frame}
-\begin{verbatim}
- frame(); // the standard basis {E_1, E_2, E_3}
- frame fr(v1, v2, v3); // orthonormalize {v1, v2, v3}
- fr.sea(); // the first element of fr, etc.
- fr.rot1(theta); // rotate fr through theta about sea, etc.
-\end{verbatim}
-
-
-\subsection{Path-Like Elements}
-
-Basic path-like objects are drawn with named commands. Arguments of
-polygon commands are endpoints/vertices. Except for \code{line}~and
-\code{Line}, the following are subject to filling.
-\findex{line}
-\findex{Line}
-\findex{triangle}
-\findex{rect}
-\findex{quad}
-\findex{circle}
-\begin{verbatim}
- line(P p1, P p2, [double expand]);
- Line(p1, p2); // draw line through p1, p2 (crop required)
- triangle(P p1, P p2, P p3);
- rect(P p1, P p2);
- quad(P p1, P p2, P p3, P p4); // quadrilateral
- circle(ctr=P(0,0,0), rad=1, normal=E_3);
- circle(ctr, pt);
- circle(pt1, pt2, pt3);
-\end{verbatim}
-The optional \code{line} argument is an expansion parameter:
-\code{line(p1,p2,t);} draws a segment centered at the midpoint of
-\code{p1}~and \code{p2}, with length scaled
-by~\teximath{2^{t/100}}. (Setting \teximath{t=100} doubles the length,
-while \teximath{t=-100} halves the length.) The arguments of
-\code{rect()} must lie in a plane parallel to a coordinate plane. The
-arguments to \code{circle} commands are the same as for \code{Circle}
-constructors.
-
-Quadratic and cubic splines are described by their control points. A
-list of~\code{P} is drawn as a ``natural'' spline (the \teximath{C^2}
-piecewise cubic curve with vanishing second derivatives at the
-endpoints); the number of points per cubic segment must be specified.
-Circular and elliptical arcs are given by center, a basis, angular
-range, and an optional number of intervals.
-\findex{spline}
-\findex{arc}
-\findex{ellipse}
-\begin{verbatim}
- spline(P p1, P p2, P p3, [int n]); // quadratic
- spline(P p1, P p2, P p3, P p4, [int n]); // cubic
- spline(vector<P>, int n); // natural spline
-
- arc(P ctr, rad, t_min, t_max); // parallel to (x1,x2)-plane
- ellipse(P ctr, P v1, P v2); // in plane spanned by v1, v2
- ellipse(P ctr, P v1, P v2, t_min, t_max, [int n]);
-\end{verbatim}
-\texicomment
-Mathematically, these commands draw parametric paths
-\begin{align*}
- \text{Spline:}\quad&(1-t)^2 p_1 + 2(1-t)t p_2 + t^2 p_3,
- && t\in[0,1] \\
- \text{Spline:}\quad&(1-t)^3 p_1 + 3(1-t)^2t p_2 + 3(1-t)t^2 p_3 + t^3p_4,
- && t\in[0,1] \\
- \text{Arc:}\quad&\mathrm{ctr} + (\cos t)(\mathrm{rad},0,0)
- + (\sin t)(0,\mathrm{rad},0),
- && t\in[t_\mathrm{min}, t_\mathrm{max}] \\
- \text{Ellipse:}\quad&\mathrm{ctr} + (\cos t)v_1 + (\sin t)v_2,
- && t\in[t_\mathrm{min}, t_\mathrm{max}].
-\end{align*}
-\texicommentend
-If parameter bounds are omitted in an \code{ellipse} command, the
-entire ellipse is drawn. When the angular range subtends one or more
-full turns in an \code{arc}~or \code{ellipse} the curve is subject to
-filling.
-
-Commands for planar (half-)ellipses remain from \ePiX's early days:
-\findex{ellipse}
-\findex{ellipse\_left}
-\findex{ellipse\_right}
-\findex{ellipse\_top}
-\findex{ellipse\_bottom}
-\begin{verbatim}
- ellipse(P ctr, P radius);
- ellipse_left(P ctr, P radius);
- ellipse_right(P ctr, P radius);
- ellipse_top(P ctr, P radius);
- ellipse_bottom(P ctr, P radius);
-\end{verbatim}
-If \code{radius} is \code{P(a,b)}, these commands draw all or half of
-the ellipse with given center in the \teximath{(x_1,x_2)} plane, axes
-parallel to the coordinate axes, and axis lengths \teximath{2a}~and
-\teximath{2b}.
-
-Two commands are available to mark off right angles or a subtended
-angle. Each accepts a spatial location and two non-zero directions,
-and draws a scene element in the plane spanned by the vectors.
-\findex{right\_angle}
-\findex{arc\_measure}
-\begin{verbatim}
- right_angle(P loc, P v1, P v2, scale=8);
- arc_measure(P loc, P v1, P v2, scale=8);
- arc_measure(P loc, P v1, P v2, offset, text, align, scale=8);
-\end{verbatim}
-The \code{right\_angle} command does not check its arguments for
-perpendicularity. The \code{arc\_measure} commands mark the
-\emph{small} angle subtended by the directions; the label form places
-a label at the midpoint of the arc. The (optional) \code{scale}
-argument is the true size in~\code{pt} of the marker.
-
-
-\subsubsection*{Recursive Fractal Curves}
-
-\index{Path!fractal}
-Consider a path made up of equal-length segments that can point at any
-angle of the form~\teximath{2\pi k/n} radians, for \teximath{0\leq
-k<n}, like spokes on a wheel. A path is specified by a finite sequence
-of integers, taken modulo~\teximath{n}. For example, if
-\teximath{n=6}, then the sequence \teximath{0, 1, -1, 0} corresponds
-to the ASCII path \verb+_/\_+. \ePiX's fractal approximation starts
-with such a ``seed'' then recursively (up to a specified depth)
-replaces each segment with a scaled and rotated copy of the seed,
-Figure~\ref{fig:fractal}. The seed above generates the standard
-von~Koch snowflake fractal. In code:
-\findex{fractal}
-\begin{verbatim}
- const int seed[] = {6, 4, 0, 1, -1, 0};
- fractal(P(a,b), P(c,d), depth, seed);
-\end{verbatim}
-The first entry of \code{seed[]} (here~6) is the number of
-``spokes''~\teximath{n}, the second~(4) is the number of terms in the
-seed, and the remaining entries are the seed proper. The final path
-joins \teximath{(a,b)}~to \teximath{(c,d)}. The number of segments in
-the final path grows exponentially in the depth, so depths larger than
-5~or 6 are likely to exceed the capabilities of \LaTeX\ and/or
-PostScript.
-\begin{figure}[hbt]
- \begin{center}
- \input{koch.eepic}
- \end{center}
- \caption{Successive iterations of \{\code{4,8,0,1,0,3,3,0,1,0}\}}
- \label{fig:fractal}
-\end{figure}
-
-
-\subsubsection*{Arrows}
-
-\index{Arrow}
-Line segments, splines, and arcs can be drawn with arrowheads at one
-end. In profile, an arrowhead's width is \code{3pt}, and its height
-is 5.5~times the width. The actual printed height depends on the
-head's orientation with respect to the camera. By default, an
-arrowhead is a filled triangle. The shape and size are adjusted with
-declarations:
-\findex{arrow\_width}
-\findex{arrow\_ratio}
-\findex{arrow\_inset}
-\begin{verbatim}
- arrow_width(w=3); // width in pt
- arrow_ratio(r=5.5); // height-to-width
- arrow_inset(c=0); // base indent as frac of ht
-\end{verbatim}
-\input{arrow.eepic} Inset\teximath{=0}\qquad
-\input{arrow25.eepic} Inset\teximath{=0.25}\qquad
-\input{arrow50.eepic} Inset\teximath{=0.5} \\
-The \code{inset} must be between \teximath{-1}~and \teximath{1}. Each
-\code{arrow} command accepts an optional \code{scale} argument, which
-scales the arrowhead.
-\findex{arrow}
-\begin{verbatim}
- arrow(P tail, P tip, [scale]);
- arrow(P p1, P p2, P p3, [scale]); // spline arrows
- arrow(P p1, P p2, P p3, P p4, [scale]);
- arrow(P ctr, P v1, P v2, t_min, t_max, [scale]); // ellipse
-\end{verbatim}
-A few ``special-purpose'' commands are supplied:
-\findex{dart}
-\findex{aarrow}
-\findex{arc\_arrow}
-\begin{verbatim}
- dart (P p1, P p2); // same as arrow(p1, p2, 0.5);
- aarrow(P p1, P p2); // double-headed arrow <--->
- arc_arrow(ctr, rad, t_min, t_max, [scale]);
-\end{verbatim}
-If an \code{arc\_arrow} is too short, nothing is drawn.
-
-
-\subsection{Coordinate Axes and Labels}
-
-\index{Labels!axis|(}
-\index{Axes!labeling}
-\index{Axes|(}
-\ePiX\ provides an \code{axis} class for coordinate axes. Labels are
-generated automatically in a variety of styles: decimal, scientific
-notation, fraction, and trigonometric fraction. Logarithmic axes and
-labels are available. Axis and labeling commands from Version~1.0 have
-been retained.
-
-
-\subsubsection*{The \code{axis} Class}
-
-An \code{axis} consists of a line segment divided into a specified
-number of equal-length subintervals by ``major'' (long) tick marks.
-Each subinterval may be divided further by ``minor'' (short) tick
-marks. Minor ticks may be equally-spaced (``Cartesian'') or
-logarithmically placed. Finally, a label is written at each major tick
-mark with specified offset and alignment. Labels are generated
-automatically from the endpoints, so the line should be parallel to a
-coordinate axis. Label attributes (masking, borders, font size and
-face, rotation angle) are determined by the current label style, not
-by the \code{axis}.
-
-The command
-\findex{axis}
-\begin{verbatim}
- axis(P tail, P head, int n, P offset=P(0,0), [align = none]);
-\end{verbatim}
-creates an axis joining \code{tail} to \code{head}, divided into
-\code{n}~segments of equal length, with a major tick mark and label at
-each division point and endpoint. The \code{offset} and \code{align}
-arguments have the same meaning as for ordinary labels.
-
-The number and length of minor ticks, and the alignment of ticks, are
-controlled with member functions:
-\findex{axis.subdivide}
-\findex{axis.tick\_ratio}
-\findex{axis.align}
-\begin{verbatim}
- axis Ax(P(a,c), P(b,c), n);
- Ax.subdivide(n); // put n-1 minor ticks in each axis segment
- Ax.tick_ratio(r); // minor length = r*major length
- Ax.align(AL=c); // align all ticks; AL = t, b, l, r, or c
-\end{verbatim}
-By default, major ticks are \code{6pt}~long and twice the length of
-minor ticks. The global declaration \code{tick\_size(len)} sets the
-major length, subject to ``reasonable stylistic limits''. For visual
-consistency, tick lengths should not be changed casually.
-
-\index{Axes!labeling}
-Labels on an \code{axis} may be drawn in several styles, selected with
-member functions:
-\findex{axis.dec}
-\findex{axis.frac}
-\findex{axis.trig}
-\findex{axis.sci}
-\findex{axis.unmark}
-\findex{axis.precision}
-\findex{axis.align\_labels}
-\begin{verbatim}
- Ax.dec(); // decimals (default)
- Ax.frac(); // fractions, e.g. 0.5 -> \frac{1}{2}
- Ax.trig(); // fractional multiples of \pi
- Ax.sci(); // scientific notation, k\times base^N
-
- Ax.unmark(double); // remove label at selected location
- Ax.precision(p); // set number of digits for decimal labels
- Ax.align_labels(AL); // re-align labels
-\end{verbatim}
-Arbitrary textual labels depending on one coordinate are obtained by
-writing a \code{string}-valued function of~\code{double} and
-``registering'' it:
-\findex{axis.label\_rep}
-\begin{verbatim}
- // f represents x as a string in given precision and base
- std::string f(double x, unsigned int prec, unsigned int base);
- Ax.label_rep(f);
-\end{verbatim}
-For example, textual tags can be printed instead of numeric labels.
-
-By default, an \code{axis} is Cartesian. The member function
-\code{log(int b=10)} converts an \code{axis} to ``log mode'' with
-specified base; this affects both tick marks and labeling. If \code{b}
-is at least~3, minor tick marks appropriate for a logarithmic axis
-base~\code{b} are drawn. Second, labels are written in decimal or
-scientific notation appropriately for a logarithmic axis; that is,
-``\teximath{k\times b^N}'' (or its decimal value) is written at
-location \teximath{N+\log_b k}.
-
-Minor ticks of a log \code{axis} may be labeled individually; again,
-this is controlled with member functions:
-\findex{axis.tag}
-\findex{axis.tag235}
-\findex{axis.tags}
-\findex{axis.untag}
-\begin{verbatim}
- Ax.tag(d); // labels at N+log_b(d)
- Ax.tag235(); // tag 2, 3, and 5 if b=10
- Ax.tags(); // tag 1, ..., b-1
- Ax.untag(); // remove all tags, including 1
- Ax.untag(double); // remove one tag, e.g. Ax.untag(9);
-\end{verbatim}
-
-For convenience, an \code{axis} object along an edge of the active
-\code{screen} can be created with a named command:
-\findex{top\_axis}
-\findex{bottom\_axis}
-\findex{left\_axis}
-\findex{right\_axis}
-\begin{verbatim}
- top_axis(n, offset, align);
- bottom_axis(n, offset, align);
- left_axis(n, offset, align);
- right_axis(n, offset, align);
-\end{verbatim}
-The ticks automatically point into the bounding box.
-
-The functions above create objects or set \code{axis} attributes, but
-write no output. Tick marks and labels can be printed separately, or
-at once:
-\findex{axis.draw}
-\findex{axis.draw\_ticks}
-\findex{axis.draw\_labels}
-\begin{verbatim}
- Ax.draw(); // axis, tick marks, and labels
- Ax.draw_ticks(); // axis and ticks only
- Ax.draw_labels();
-\end{verbatim}
-
-
-\subsubsection*{Other Axis-Drawing Commands}
-
-\index{Axes!logarithmic}
-\ePiX\ formerly supplied commands for drawing simple axes and their
-labels. These commands have been kept for compatibility. Horizontal
-axes are generated with
-\findex{h\_axis}
-\findex{h\_log\_axis}
-\findex{v\_axis}
-\findex{v\_log\_axis}
-\begin{verbatim}
- h_axis(p1, p2, n, align=c); // n subintervals (n+1 ticks)
- h_log_axis(p1, p2, n, align=c, base=10);
-\end{verbatim}
-For vertical axes, use \code{v\_axis}. The style of tick mark is
-appropriate for an axis of the given type. Horizontal axis tick marks
-may be aligned \code{t}~(above the axis) or~\code{b}
-(below). Similarly, vertical axis ticks may be aligned \code{r}~or
-\code{l}.
-
-The endpoint arguments of a coordinate axis may be omitted, in which
-case they default to \teximath{p_1=(x_\mathrm{min},0)} and
-\teximath{p_2=(x_\mathrm{max},0)} for a horizontal axis, or to
-\teximath{p_1=(0,y_\mathrm{min})} and
-\teximath{p_2=(0,y_\mathrm{max})} for a vertical axis. If the bounding
-box has integer width and/or height, omitting the number of points
-draws tick marks one unit apart.
-
-Labels for a horizontal Cartesian or logarithmic axis are generated
-with the commands
-\findex{h\_axis\_labels}
-\findex{h\_axis\_masklabels}
-\findex{h\_axis\_log\_labels}
-\findex{h\_axis\_log\_masklabels}
-\findex{v\_axis\_labels}
-\findex{v\_axis\_masklabels}
-\findex{v\_axis\_log\_labels}
-\findex{v\_axis\_log\_masklabels}
-\begin{verbatim}
- h_axis_labels(P p1, P p2, int n, P offset, [align]);
- h_axis_masklabels(p1, p2, n, offset, [align]);
- h_axis_log_labels(p1, p2, [n], offset, [align], base=10);
- h_axis_log_masklabels(p1, p2, [n], offset, [align], base=10);
-\end{verbatim}
-Labels for a vertical axis are generated with \code{v\_axis\_labels},
-etc. The labels are automatically generated to match their horizontal
-location. The first puts \teximath{(n+1)}~evenly-spaced labels on the segment
-joining \code{p1}~and \code{p2}. As with ordinary labels, the
-\code{offset} is in~\code{pt}, and the optional \LaTeX-style alignment
-option positions the labels using their corners. The second command
-draws masked labels according to the current label masking
-attributes. The third writes labels in exponential notation, using the
-Cartesian coordinate as exponent.
-
-As for coordinate axes, the initial and final points may be omitted in
-an \code{axis\_[mask]labels} command, with the same defaults. The
-\code{offset} and number of labels must always be specified.
-
-
-\subsubsection*{Broken Axes}
-\index{Axes!broken}
-
-Broken axes are best drawn using page layout, especially if axis
-labels are to be drawn. To accomplish the task, create a screen for
-each piece of axis, using appropriate Cartesian coordinates for the
-corners, then \code{inset} the screens so the axis pieces are nearly
-end to end. A zig-zag glyph signifies the break:
-\findex{axis\_break}
-\begin{verbatim}
- axis_break(P, P, scale=12);
-\end{verbatim}
-The \code{P} arguments are the screen coordinates of the ends to be
-joined; the optional third argument is the true height and width
-in~\code{pt} of the glyph. The sample file \filename{coord\_tricks.xp}
-uses layout and axis breaks.
-
-
-\subsubsection*{Coordinate Grids}
-
-Cartesian grids fill a coordinate rectangle, and have a specified
-number of lines in each direction. A polar grid has specified radius,
-and numbers of rings and sectors.
-\findex{grid}
-\findex{polar\_grid}
-\begin{verbatim}
- grid(n1, n2); // fills the bounding box
- grid(p1, p2, n1, n2); // fills the box with corners p1, p2
- polar_grid(r, n1, n2);
-\end{verbatim}
-
-Log and semi-log grids are drawn with analogous syntax:
-\findex{log\_grid}
-\findex{log1\_grid}
-\findex{log2\_grid}
-\begin{verbatim}
- log_grid (p1, p2, n1, n2, [base1], [base2]); // log-log
- log1_grid(p1, p2, n1, n2, [base]); // log-lin
- log2_grid(p1, p2, n1, n2, [base]); // lin-log
-\end{verbatim}
-The~\teximath{n_i} arguments dictate the number of squares, namely the number
-of orders of magnitude spanned in the logarithmic direction(s). The
-(optional) base arguments default to~10, and control the number of
-lines drawn per order of magnitude. As with Cartesian grids, the
-corners are optional; if omitted, the grid fills the bounding box.
-
-\index{Graph paper}
-Graph paper may be created by superimposing grids:
-\texicomment
-\begin{center}
- \begin{minipage}[b]{2.5in}
- \begin{footnotesize}
-\texicommentend
-\findex{pen}
-\findex{grid}
-\begin{verbatim}
- pen(0.25);
- grid(10*xsize(), 10*ysize());
- pen(0.5);
- grid(2*xsize(), 2*ysize());
- pen(1);
- grid(xsize(), ysize());
-\end{verbatim}
-\texicomment
- \end{footnotesize}
- \end{minipage}
- \qquad
- \input{graphpaper.eepic}
-\end{center}
-\index{Axes|)}
-\texicommentend
-
-\subsection{The Path Class}
-
-\index{Path!class}
-A \code{path} data structure is an ordered list of points that can be
-cropped, clipped, mapped, concatenated, and drawn. The first four
-constructors mirror polygon-drawing commands above. Function graphs
-and parametric paths are built from a real- or \code{P}-valued
-function~\code{f} of one variable.
-\findex{path}
-\begin{verbatim}
- path(p1, p2, expand=0); // line (endpoints)
- path(p1, p2, p3, [n]); // quadratic spline
- path(p1, p2, p3, p4, [n]); // cubic spline
- path(p1, v1, v2, t_min, t_max, [n]); // ellipse
- path(f, t_min, t_max, [n]);
-\end{verbatim}
-
-The member function \code{pt()} accepts a~\code{P} or three (or two)
-doubles and appends the specified point to a \code{path}. This
-snippet creates a regular \teximath{n}-gon:
-\begin{verbatim}
- path ngon; // declare new path
- for (int i=0; i<=n; ++i)
- ngon.pt(cis(i*full_turn()/n)); // works in all angle modes
-\end{verbatim}
-Compound paths may be built by concatenation. If \code{path1}~and
-\code{path2} share an endpoint, the commands
-\begin{verbatim}
- path1 += path2;
- path1 -= path2;
-\end{verbatim}
-replace \code{path1} with the result of traversing \code{path1}
-``forward'', then following \code{path2} in the forward or reverse
-direction (respectively). For expected results, the first
-(or last) point on~\code{path2} should be the last point
-of~\code{path1}. The notation suggests 1-dimensional homology
-chains. The sample file \filename{contour.xp} illustrates path
-creation and manipulation.
-
-A \code{path} is a data structure, and must be drawn explicitly to
-create visible output. By default a \code{path} is not a closed loop
-(even if the first and last points are the same), and is not filled
-when drawn. Member functions perform these tasks. Continuing the
-\teximath{n}-gon snippet above,
-\findex{path.close}
-\findex{path.fill}
-\findex{path.draw}
-\begin{verbatim}
- ngon.close(); // mark path as closed
- ngon.fill(); // draw filled region if filling is active
- ngon.draw(); // print to the screen
-\end{verbatim}
-\code{path::close()} adds a closing edge if necessary. Once a
-\code{path} is closed, no more points can be added. A closed path
-clips and crops differently than an open \code{path} with the same
-data. \code{path::fill()} has no effect on an unclosed \code{path}.
-
-
-\subsection{Function Plotting}
-
-\index{Plotting|(}
-The noun ``map'' refers to a \CXX\ function that accepts one or
-more \code{double} arguments and returns a \code{double}~or
-a~\code{P}. Mathematically, a map can be depicted in two ways: as a
-graph (which retains information about the domain), or as a
-parametrized curve or surface (which discards domain
-information). \ePiX\ assumes that \code{double}-valued maps are
-graphed and \code{P}-valued maps are drawn parametrically. Either sort
-of depiction is called a ``plot''. \ePiX\ plots are either ``wire
-mesh'', produced by a \code{plot} command, or ``shaded'', produced by
-a \code{surface} command.
-
-
-\subsubsection*{Basic Plotting}
-
-For the moment, ``function'' means ``function of one variable''
-(precisely, a \code{double}-valued function of a \code{double}
-variable). A function graph depends on the domain and the number of
-points to use. Each of the commands
-\findex{plot}
-\findex{polarplot}
-\findex{shadeplot}
-\begin{verbatim}
- plot(f, t_min, t_max, n);
- polarplot(f, t_min, t_max, n);
- shadeplot(f, t_min, t_max, n);
-\end{verbatim}
-graphs the function~\code{f} on the interval \code{[t\_min, t\_max]}
-by dividing the interval into \code{n}~subintervals of equal length.
-The first gives a Cartesian plot, the second a polar plot with bounds
-in current angular units, the third shades the region between the
-graph and the horizontal axis. If two functions are given to
-\code{shadeplot}, the region between their graphs is shaded.
-
-
-\subsubsection*{Domains and Wiremesh Plots}
-
-\index{Domain|(}
-An \ePiX\ \code{domain} is a coordinate box of dimension one, two, or
-three, specified by a pair of opposite corners and two \emph{meshes}
-(``coarse'' and ``fine'', respectively) which specify the amount of
-data to be plotted. Plotting is explained in detail below.
-\findex{domain}
-\begin{verbatim}
- // [a1,a2] x [b1,b2]: n1 x n2 rectangles, m1 x m2 intervals
- domain R2(P(a1,b1), P(a2,b2), mesh(n1,n2), [mesh(m1,m2)]);
-
- // [a1,a2] x [b1,b2] x [c1,c2] divided analogously
- domain R3(P(a1,b1,c1), P(a2,b2,c2),
- mesh(n1,n2,n3), [mesh(m1,m2,m3)]);
-\end{verbatim}
-If unspecified, the fine mesh is the same as the coarse mesh. For
-expected behavior, the coarse mesh should ``divide'' the fine mesh, in
-that \teximath{m_i}~should be a (usually small) integer multiple
-of~\teximath{n_i} for each~\teximath{i}.
-
-A \code{domain} may be \emph{resized} in any coordinate for which the
-thickness is positive, and can be \emph{sliced} by setting one
-variable to a constant. The result of slicing is a \code{domain} whose
-dimension is one smaller than the original. Finally,
-``\code{slices}'' operators return the list of \code{domain}s obtained
-by setting one variable to evenly-spaced constants. By default, the
-number of slices is specified by the coarse mesh. An optional argument
-specifies the number of slices. This argument need not be related to
-the coarse mesh.
-\findex{domain.resize}
-\findex{domain.slice}
-\findex{domain.slices}
-\begin{verbatim}
- R2.resize2(a,b); // [a1,b1] x [a,b]
- R2.slice1(t); // set x1 = t
- R3.slices3([n]); // (n+1) domains with x3 = const
-\end{verbatim}
-\begin{center}
- \input{slices.eepic}
-\end{center}
-\smallskip
-When possible, resizing preserves grid square sizes. Generally,
-though, integer truncation occurs: If \code{R=domain(P(0,0), P(1,1),
-mesh(10,6))}, then \code{R.resize1(0,0.25)} is the rectangle
-\teximath{[0,0.25]\times[0,1]} subdivided into \teximath{2\times6}
-subrectangles, since \teximath{10\div4=2} in integer arithmetic. For
-expected behavior, choose mesh sizes to avoid integer truncation.
-
-
-The arguments of a \code{plot} command are a map, followed by either a
-domain or its logical equivalent.
-\findex{plot}
-\begin{verbatim}
- double f(double t) { return t*t; }
- P F(double u, double v) { return P(u, v, exp(u)*Sin(v)); }
- P G(double u, double v, double w) { return P(v*w, u*w, u*v); }
-
- plot(f, a, b, n); // f:[a,b] -> R, using n intervals
- plot(F, R2); // graph of exp(u)*Sin(v)
- plot(G, R3.slice2(0.5); // G: R^3 -> R^3 restricted to y=0.5
-\end{verbatim}
-By (compiler-enforced) convention, \code{plot} commands involving a
-\code{P}-valued map accept a \code{domain} argument, as in the second
-and third commands above. To plot a \code{double}-valued function, by
-contrast, supply the logical equivalent of a \code{domain}, usually
-the endpoints and the number of intervals, as in the first \code{plot}
-command above.
-
-Resizing and slicing allow a map~\code{F} to be plotted selectively
-over parts of its domain. This can be used to emphasize parts of the
-image, layer scene elements, patch surfaces together, and so forth.
-Resize and slice(s) commands may be used directly in a \code{plot}
-command:
-\findex{plot}
-\begin{verbatim}
- plot(F, R2.resize1(0,0.5));
- plot(F, R2.slices1());
-\end{verbatim}
-
-
-\subsubsection*{Meshes and Plotting}
-
-The \code{P}~arguments of a \code{domain} are a pair of opposite
-corners. The first \code{mesh} argument, the \emph{coarse} mesh,
-specifies the number of subdivisions in each coordinate direction.
-The second \code{mesh}, the \emph{fine} mesh, determines the number of
-points used in each direction when plotting.
-
-\begin{comment}
-Suppose the \code{domain}~\code{R2} is, as above, the rectangle
-\teximath{[0,3]\times[-1,2]}. The argument \code{mesh(12,6)} divides the
-rectangle a \teximath{12\times6}~array of subrectangles known as the
-\emph{coarse mesh}. A \code{P}-valued map~\code{F} of two variables is
-plotted over the edges of the coarse mesh. Rather than drawing
-quadrilaterals, however, \ePiX\ draws the image curves at the
-resolution specified by the argument \code{mesh(60,60)}, the
-\emph{fine mesh}. In this example, the curves in each direction are
-drawn using 60~line segments.
-\end{comment}
-
-Separating the roles of coarse and fine meshes allows a plot to
-conform closely to a surface without using a fine grid of curves.
-Both parts of Figure~\ref{fig:plot} are drawn with a
-\teximath{6\times20} coarse mesh. In the first picture, the fine mesh
-is also \teximath{6\times20}, while in the second, the fine mesh is
-\teximath{12\times60}.
-
-\begin{figure}[hbt]
- \begin{center}
- \input{plot_a.eepic}\hspace*{0.5in}
- \input{plot_b.eepic}
- \caption{Coarse and fine meshes.}
- \label{fig:plot}
- \end{center}
-\end{figure}
-
-The coarse mesh is significant only for domains of dimension at
-least~2. The coarse mesh's size determines the number of curves or
-surfaces plotted \emph{perpendicularly} to a coordinate direction,
-while the fine mesh's size determines the number of segments used
-\emph{along} that direction. For predictable results, the fine mesh
-should be a small multiple of the coarse mesh.
-
-Plotting works analogously for 3-dimensional \code{domain}s and maps
-depending on three variables: The ``one-dimensional skeleton'' of the
-\code{domain}'s image is drawn. A \code{P}-valued map of
-three variables can be plotted over a 1-~or 2-dimensional
-\code{domain}. (The effect may be unexpected unless the domain arises
-by slicing, however.) A map depending on one or two variables cannot
-be plotted over a 3-dimensional \code{domain}.
-\index{Domain|)}
-
-
-\subsubsection*{Shaded Surfaces}
-
-\index{Plotting!surface|(}
-
-\ePiX's shaded surface plotting implements a degree of hidden surface
-removal. The algorithm breaks a surface into mesh fragments, sorts
-them in decreasing (approximate) distance to the camera, and prints
-them. If filling is active, a mesh fragment is shaded according to
-the angle between the normal vector and the direction to the camera,
-simulating constant ambient lighting; otherwise, the current fill
-color is used. This technique works fairly well for surfaces without
-intersection, and even acceptably handles intersecting surfaces for
-which mesh elements intersect only along boundaries.
-
-The syntax of a \code{surface} command is identical to a \code{plot}
-command when only a single surface is drawn. For example,
-\findex{surface}
-\begin{verbatim}
- surface(F, R, cull=0);
-\end{verbatim}
-plots the \code{P}-valued function~\code{F} over the domain~\code{R},
-the shaded equivalent of the corresponding \code{plot} command. The
-optional \code{cull} argument removes elements that point toward
-(\code{cull=-1}) or away from (\code{cull=1}) the camera. Naturally,
-orientation of mesh elements depends on the parametrization~\code{F},
-not merely on the surface. Culling reduces the output file size, but
-is useful mostly for closed, convex surfaces.
-
-There are special commands for surfaces of rotation; each accepts a
-final \code{cull} argument.
-\findex{surface\_rev}
-\begin{verbatim}
- surface_rev(f, t_min, t_max, n_lats, n_longs);
- surface_rev(f, g, t_min, t_max, n_lats, n_longs=24);
- surface_rev(f, g, R, frame coords);
-\end{verbatim}
-The first revolves the graph of~\teximath{f} about the
-\teximath{x}-axis, the second uses the parametric curve
-\teximath{t\mapsto\bigl(f(t),g(t)\bigr)} as profile. In each case, the
-parameter interval \verb+[t_min,t_max]+ is divided into \verb+n_lats+
-equal-length subintervals, \verb+n_longs+ copies of the profile curve
-are drawn, and the complete surface (one full turn) is drawn.
-
-The third form uses a \code{domain} to control the range of
-longitudes, and draws a surface of rotation in the Cartesian
-coordinate system defined by the orthonormal basis \code{coords}, by
-default the standard basis. The arguments \code{f}~and \code{g} define
-a parametric curve in the plane spanned by the first two elements
-of~\code{coords}, and the first element is the axis of rotation.
-
-As in wire mesh plotting, the fine mesh is used to draw the boundaries
-of surface patches; this tends to make surfaces look smoother for
-modest-sized coarse meshes. If the coarse mesh is too coarse, however,
-two visually undesirable effects can occur. First, adjacent regions of
-the surface may be shaded very differently, since shading is constant
-over patches defined by the coarse mesh. Second, a patch nearly
-tangent to a line of sight may be drawn badly if the patch bends back
-on itself, since the boundary of the \emph{patch} is drawn, not the
-visible edge of the mathematical surface. See
-\filename{samples/artifacts.xp}.
-
-
-\subsubsection*{Multiple Domains and/or Maps}
-
-A scene containing two or more shaded surfaces cannot generally be
-built up one surface at a time. Instead, multiple surfaces must be
-assembled into a single data structure before they can be drawn.
-Multiple surfaces are built from one or more maps and one or more
-2-dimensional \code{domain}s. In the code snippets below, \code{F}~and
-\code{G} are \code{P}-valued functions of 3~variables, and~\code{R} is
-a 3-dimensional \code{domain}.
-
-To plot the images of several \code{domain}s under a \emph{single
-map}, assemble the \code{domain}s into a list if necessary, then issue
-a \code{surface} command:
-\findex{surface}
-\findex{domain\_list}
-\findex{domain\_list.add}
-\begin{verbatim}
- surface(F, R.slices3(), cull=0);
-
- domain_list DL(R.slice1(0)); // build domain list
- DL.add(R.slice2(0.5)); // add a domain, etc.
- surface(G, DL, cull=0); // draw
-\end{verbatim}
-For multiple maps, \ePiX\ provides the \code{scenery}
-class. Conceptually, \code{scenery} is an agglomeration of shaded
-surfaces, built one surface at a time from maps and 2-dimensional
-\code{domain}s. The \code{add} function accepts two arguments---a map,
-and either a \code{domain} or a list of \code{domain}s---and
-contributes its data to the \code{scenery} rather than plotting
-immediately. Completed \code{scenery} is drawn manually.
-\findex{scenery}
-\findex{scenery.add}
-\findex{scenery.draw}
-\begin{verbatim}
- scenery S(F, R.slice3(0.25)); // S contains one surface
- S.add(F, R.slice2(0)); // S contains two surfaces
- S.add(G, R.slices1(3)); // S contains six surfaces
- S.draw(cull=0);
-\end{verbatim}
-Complete examples are included in the \filename{samples} directory:
-\filename{spherical.xp}~and \filename{minkowski.xp}.
-
-In principle, a scene may contain arbitrarily many surfaces. However,
-figures that contain many objects tend to tax \LaTeX's internal
-stacks. Frequent color changes exacerbate the problem. Even if you
-use \filename{hugelatex} (or increase \LaTeX's memory), a figure
-containing more than a few thousand mesh elements is unlikely to
-compile. At moderate resolution, a surface can easily contain
-1000~patches. Each shell script has a command-line option to invoke
-\filename{hugelatex}; your mileage may vary.
-
-
-\subsubsection*{User-Specified Color Shading}
-
-\index{Color!surface plotting}
-By default, a \code{surface} or \code{scenery} is colored according to
-the current fill color. For finer control, each \code{surface},
-\code{surface\_rev}, and \code{scenery} command accepts an optional
-position-dependent \code{color} specification.
-\findex{surface}
-\findex{surface\_rev}
-\findex{scenery}
-\findex{scenery.add}
-\begin{verbatim}
- surface(F, R, color, cull=0);
- surface_rev(f, [g], t_min, t_max, n_lats, n_longs, color);
- surface_rev(f, g, R, color, [coords]);
-
- scenery S(F, R, color);
- S.add(F, R, color);
-\end{verbatim}
-The \code{color} argument is a \code{P}-valued function of two or
-three \code{double}s whose output is interpreted as a set of
-\code{RGB}~densities. If \code{color} takes two arguments, they are
-\code{domain} coordinates, and the surface is colored according to
-parameter values. If \code{color} takes three arguments, they are
-Cartesian coordinates, and the surface is colored according to spatial
-location. Please see the sample files
-\filename{surface\_shade.xp}~and \filename{S2\_harmonics.xp}.
-\index{Plotting!surface|)}
-
-
-\subsection{Calculus Plotting}
-\index{Plotting!calculus|(}
-
-\ePiX\ provides high-level commands for plotting derivatives and
-definite integrals, Riemann sums, tangent lines, slope- and vector
-fields, and solutions of planar and spatial systems of differential
-equations.
-
-In this section, \code{f}~and \code{g} are \code{double}-valued
-functions of one variable.
-
-\subsubsection*{Utility Functions}
-
-\findex{sup}
-\findex{inf}
-\findex{newton}
-\begin{verbatim}
- sup(f, a, b); // max/min of f on [a,b]
- inf(f, a, b);
- newton(f, g, x0); // find approximate crossing point
-\end{verbatim}
-Newton's method returns the crossing point of the given functions,
-starting from the specified seed, which should be reasonably close to
-the expected solution. If a critical point is hit or 5~iterations
-pass, a warning is issued and the current result (probably incorrect)
-is returned. The second function~\teximath{g} defaults to the zero function if
-omitted.
-
-\subsubsection*{Derivatives and Integrals}
-
-The classes \code{Deriv}~and \code{Integral} are used to calculate
-values of derivatives and integrals, and to plot these functions.
-\findex{Deriv}
-\findex{Deriv.eval}
-\findex{Deriv.left}
-\findex{Deriv.right}
-\findex{Integral}
-\findex{Integral.eval}
-\begin{verbatim}
- Deriv df(f); // function object: df(x) = f'(x)
- df.eval(t); // return f'(t)
- df.left(t); // deriv from left at t: (f(t)-f(t-dt))/dt
- df.right(t); // deriv from right at t: (f(t+dt)-f(t))/dt
-
- Integral prim(f,a); // function object: prim(x) = int_a^x f
- prim.eval(b); // numerical integral of f over [a,b]
- double val(Integral(f).eval(1)); // val = \int_0^1 f
-\end{verbatim}
-The lower limit on an integral is~0 by default. \code{Deriv}s and
-\code{Integral}s can be used directly in a \code{plot} command:
-\findex{plot}
-\findex{riemann\_sum}
-\begin{verbatim}
- plot(Deriv(f), a, b, n); // plot f' over [a,b]
- plot(Integral(f, x0), a, b, n);
- riemann_sum(f, a, b, n, TYPE);
-\end{verbatim}
-The second graphs the definite integral \teximath{x\mapsto\int_{x_0}^x
-f(t)\,dt} over~\teximath{[a,b]}. As above, \teximath{x_0}~defaults
-to~0. The third draws rectangles or trapezoids whose area approximates
-the definite integral of~\teximath{f} over~\teximath{[a,b]}. The
-\code{TYPE} may be \code{UPPER}, \code{LOWER}, \code{LEFT},
-\code{RIGHT}, \code{MIDPT}, or~\code{TRAP}.
-
-Tangent lines and envelopes (families of tangent lines) are drawn with
-\findex{tan\_line}
-\findex{envelope}
-\findex{tan\_field}
-\begin{verbatim}
- tan_line(f, t); // f real- or vector-valued
- envelope(f, t_min, t_max, n); // family of tangent lines
- tan_field(f, g, t_min, t_max, n); // field of tangents
-\end{verbatim}
-The sample files \filename{conic.xp}~and \filename{lissajous.xp}
-illustrate these features.
-
-
-\subsubsection*{Systems of Differential Equations}
-
-Let \code{F}~be a \code{P}-valued function of two or three variables.
-\findex{ode\_plot}
-\findex{flow}
-\begin{verbatim}
- ode_plot(F, p_0, t_min, t_max, n);
- flow(F, p_0, t_max, n);
-\end{verbatim}
-The first plots the solution curve of the initial-value problem
-\teximath{\dot{x}=F(x)}, \teximath{x(0)=p_0}, over the specified time
-interval. If \teximath{t_\mathrm{min}} is omitted, its value is~0, so
-the curve starts at~\teximath{p_0}. With manual calculation to rotate
-a planar field a quarter turn, \code{ode\_plot} can be used to draw
-level curves (isobars) of a function of two variables; see the sample
-file \filename{dipole.xp}. The \code{flow} function returns the
-result of starting at~\teximath{p_0} and flowing by~\teximath{F} for
-time~\teximath{t_\mathrm{max}}, using Euler's method with~\teximath{n}
-time steps. This is useful for placing markers or arrowheads precisely
-along a flow line.
-
-A planar or spatial vector field itself may be plotted over a
-domain~\code{R} in three styles:
-\findex{vector\_field}
-\findex{dart\_field}
-\findex{slope\_field}
-\begin{verbatim}
- vector_field(F, R, [scale]); // true length
- dart_field (F, R, [scale]); // const length
- slope_field (F, R, [scale]); // const length
-\end{verbatim}
-The field is sampled at the grid points of the coarse mesh. If the
-domain is 2-dimensional, the plot is a planar slice of the field, even
-if the field depends on three variables. If the domain is
-3-dimensional, the field is drawn in successive slices
-\teximath{x_3=\mathrm{const}}, starting at the height of the first
-corner of~\code{R} and ending at the height of the second corner.
-
-The optional final argument, which defaults to~\teximath{1}, scales the
-arrowheads in a vector field, and scales the (constant) length of
-field elements for slope and dart fields. The sample files
-\filename{layout2.xp}, \filename{lorenz.xp}, \filename{slopefield.xp},
-and \filename{vfield.xp} illustrate usage.
-
-In each field-plotting command, the domain argument may be replaced by
-two points, representing corners of a coordinate rectangle, and two
-integers, the number of grid intervals in the selected coordinate
-directions. Only planar slices of a vector field can be plotted using
-the alternative syntax.
-\index{Plotting|)}
-
-
-\subsection{Non-Euclidean Geometry}
-\label{non-eucl}
-
-\ePiX\ provides limited features for spherical and hyperbolic
-geometry: the ability to draw lines in the half-plane and Poincar\'e
-disk models of the hyperbolic plane, and to draw latitudes,
-longitudes, great circle arcs, spherical triangles, regular polyhedra,
-and parametrized curves on a sphere.
-
-Hyperbolic line segments are specified by their endpoints in the upper
-half space or ball (Poincar\'e) models. In each case there is no
-output if either endpoint lies outside the model.
-\findex{hyperbolic\_line}
-\findex{disk\_line}
-\begin{verbatim}
- hyperbolic_line(p, q);
- disk_line(p, q);
-\end{verbatim}
-For compatibility with 2-dimensional hyperbolic space, the half-space
-model is the set \teximath{\{(x_1,x_2,x_3)\mid x_2>0\}}.
-
-\index{Plotting!spherical|(}
-A \code{frame} determines geographical coordinates on a \code{Sphere}:
-the first element points toward longitude~0 on the equator, the third
-element points to the north pole. A latitude line depends on a
-\code{Sphere}, a \code{frame}, the numerical latitude, and a range of
-longitudes. A longitude line is described similarly.
-\findex{latitude}
-\findex{longitude}
-\findex{back\_latitude}
-\findex{back\_longitude}
-\begin{verbatim}
- latitude(lat, long_min, long_max, Sphere S, frame coords);
- longitude(lngtd, lat_min, lat_max, Sphere S, frame coords);
-\end{verbatim}
-By default, \code{coords} is the standard \code{frame} and \code{S} is
-the unit sphere. These commands draw only the portion of the curve
-that is visible from the current viewpoint. The function
-\code{back\_latitude} draws the invisible portion of a latitude line.
-
-Spherical arcs and triangles are described by their endpoints. Only
-the direction vector from the center of the sphere to an endpoint is
-significant; if a sphere is scaled or moved, the same function call
-will draw the corresponding object on the new sphere.
-
-The following draw the visible (front) portions of great circle arcs:
-\findex{front\_arc}
-\findex{front\_arc2}
-\findex{front\_line}
-\findex{back\_arc}
-\findex{back\_arc2}
-\findex{back\_line}
-\begin{verbatim}
- front_arc(p1, p2, S); // short arc on S from p1 to p2
- front_arc2(p1, p2, S); // arc from p1 to -p1 through p2
- front_line(p1, p2, S); // great circle through p1 and p2
-\end{verbatim}
-Triangles and regular (Platonic) polyhedra are provided. The sample
-file \filename{sample/polyhedra.xp} illustrates usage.
-\findex{front\_triangle}
-\findex{front\_tetra}
-\findex{front\_cube}
-\findex{front\_octa}
-\findex{front\_dodeca}
-\findex{front\_icosa}
-\findex{back\_triangle}
-\findex{back\_tetra}
-\findex{back\_cube}
-\findex{back\_octa}
-\findex{back\_dodeca}
-\findex{back\_icosa}
-\begin{verbatim}
- front_triangle(p1, p2, p3, S); // spherical triangle
- front_tetra(S, coords); // regular tetrahedron
- front_cube(S, coords); // hexahedron
- front_octa(S, coords); // octahedron
- front_dodeca(S, coords); // dodecahedron
- front_icosa(S, coords); // icosahedron
-\end{verbatim}
-Each function has a \code{back} version, which draws the hidden
-portion. The tetrahedron, cube, and octahedron are (up to scale)
-inscribed in the cube of side length~\teximath{2} centered at the origin whose
-sides are parallel to~\code{frame}. The point \teximath{(1,1,1)} is a vertex of
-the tetrahedron.
-
-Up to scale, the icosahedron's vertices lie on the golden rectangle
-with vertices \teximath{(\pm\gamma,0,\pm1)} and its images under cyclic
-permutation of coordinates. The dodecahedron is dual to the
-icosahedron.
-
-\subsubsection*{Spherical Plotting}
-
-Parametrized paths on a \code{Sphere~S} (by default the unit sphere)
-can be specified either by radial projection of a \code{P}-valued
-curve, or by stereographic projection of a plane curve given as a pair
-of \code{double}-valued functions:
-\findex{frontplot\_R}
-\findex{frontplot\_N}
-\findex{frontplot\_S}
-\findex{backplot\_R}
-\findex{backplot\_N}
-\findex{backplot\_S}
-\begin{verbatim}
- frontplot_R(phi, t_min, t_max, n, [S]); // radial
- frontplot_N(f1, f2, t_min, t_max, n, [S]); // from north pole
- frontplot_S(f1, f2, t_min, t_max, n, [S]); // from south pole
-\end{verbatim}
-Attempts to perform radial projection on a path through the origin
-will generate division-by-zero errors. Stereographic projection maps
-the equatorial plane \teximath{\{x_3=0\}} to the unit sphere by
-projection from the corresponding pole: \teximath{N=(0,0,1)},
-\teximath{S=(0,0,-1)}.
-
-Each spherical plot command has a \code{back} version that prints only
-the portion of the path invisible from the current viewpoint.
-Because of the way \ePiX\ layers output, it is generally best to put
-hidden portions of the input before visible portions, with line width
-and/or style that suggests hidden lines.
-
-
-\subsection{Data Plotting}
-\index{Plotting!data|(}
-\index{Data plotting|(}
-
-Files of numerical data can be created, manipulated, analyzed,
-plotted (paths, scatter plots, and histograms), read, and written.
-The format for a data file is one or more floating-point
-numbers per line, with the same number of entries per line. Anything
-that appears on a line after the \LaTeX\ comment character~\code{\%}
-is a comment.
-
-\ePiX\ provides two \code{plot} commands for file data. The first
-facilitates plotting selected columns; the second simplifies plotting
-the first two columns with one or both scales logarithmic. Either form
-can be used to plot selected columns logarithmically.
-
-The general commands read numbers from two or three columns of a
-specified file, pass them as arguments to a \code{P}-valued
-function~\code{F}, and plot the resulting points:
-\findex{plot}
-\begin{verbatim}
- plot("filename", STYLE, [i_1], [i_2], [i_3], [F]);
- plot("filename", STYLE, F, [i_1], [i_2], [i_3]);
-\end{verbatim}
-The first argument is the name of the data file. The \code{STYLE} may
-be \code{PATH}, which joins the points in the order they appear, or
-any of the marker types in Table~\ref{table:marker}. The
-integers~\teximath{i_k} specify columns from which to extract data; these
-default, respectively, to the first column, second column, and null (a
-column of zeroes). If the ``coordinate system''~\code{F} is omitted in
-the first command, it defaults to the Cartesian point constructor. The
-function~\code{F} is mandatory in the second form; useful choices
-include \code{log\_log}, \code{log\_lin}, and~\code{lin\_log}, which
-plot the corresponding coordinate logarithmically.
-
-
-\subsubsection*{Data Files}
-
-For more elaborate analysis, the \code{data\_file} class presents an
-interface to a file as an ordered list of columns. There are two
-general ways to create a \code{data\_file}: read in an external file,
-or generate data (up to three columns) using specified
-\code{double}-valued functions. In the constructors below, each
-function~\code{fi} is a \code{double}-valued function of one variable.
-\findex{data\_file}
-\findex{data\_file.read}
-\begin{verbatim}
- data_file DF("my_data"); // read data from disk file
- data_file DF(f1, t_min, t_max, num_pts); // values of f1
- data_file DF(f1, f2, t_min, t_max, num_pts);
- data_file DF(f1, f2, f3, t_min, t_max, num_pts);
- data_file DF(3); // create empty data_file with 3 columns
- DF.read("file1"); // read a disk file
-\end{verbatim}
-
-Columns of a \code{data\_file} can be transformed by a user-specified
-function, averaged, correlated, extracted (for use by other code),
-scatter plotted, and written to a disk file at specified
-precision. Below, the function~\code{f} is a \code{double}-valued
-function of one variable and~\code{F} is a \code{P}-valued function of
-two or three variables, whose components are written back to the
-selected columns.
-\findex{data\_file.transform}
-\begin{verbatim}
- DF.transform(f, i); // apply f to selected column(s)
- DF.transform(F, i=1, j=2);
- DF.transform(F, i, j, k);
-\end{verbatim}
-Basic statistical operations on columns are provided.
-\findex{data\_file.dot}
-\findex{data\_file.avg}
-\findex{data\_file.var}
-\findex{data\_file.covar}
-\findex{data\_file.regression}
-\begin{verbatim}
- DF.dot(i,j); // dot product of columns i, j
- DF.avg(i); // mean of column i
- DF.var(i); // population variance
- DF.covar(i,j); // covariance
- DF.regression(i,j); // plot regression line
-\end{verbatim}
-A \code{data\_file} is scatter plotted using syntax as described above.
-% The output is cropped automatically to the bounding box.
-\findex{data\_file.plot}
-\begin{verbatim}
- DF.plot(STYLE, [i1], [i2], [i3], [F]);
- DF.plot(STYLE, F, [i1], [i2], [i3]);
-\end{verbatim}
-Histograms and bar charts are described below.
-
-A \code{data\_file} can be written to a disk file as raw data, or in
-specified format. Below, \code{fmt} denotes a \code{string}-valued
-formatting function of two variables and \filename{myfile} is the
-name of the disk file to be written.
-\findex{data\_file.precision}
-\findex{data\_file.write}
-\begin{verbatim}
- DF.precision(4); // set to 4 significant figures
- DF.write("myfile"); // write as tab-separated columns
- DF.write("myfile", fmt, [i1], [i2]); // apply fmt to cols
-\end{verbatim}
-A column can be extracted as a \code{C++}~\code{vector} for use by
-another function.
-\findex{data\_file.column}
-\begin{verbatim}
- DF.column(i); // i-th column
- DF.column(f, i); // i-th column, transformed by f
-\end{verbatim}
-
-
-\subsubsection*{Data Containers}
-
-\ePiX\ provides a \code{data\_mask} class for culling data from a file
-according to the values in a specified column, and a \code{data\_bins}
-class for sorting data by value.
-
-A \code{data\_mask} consists of an interval of numbers and a
-``filter'' function. The (closed, open, or half-open) interval is
-given as a string in standard mathematical notation, or by its
-endpoints (for a closed interval). The filter is a
-\code{double}-valued function of \code{double}, by default the
-identity, \teximath{f(x)=x}.
-\findex{data\_mask}
-\begin{verbatim}
- data_mask dm("[a, b]", [f]);
- data_mask dm(a, b, [f]);
-\end{verbatim}
-A \code{data\_mask} ``passes'' inputs~\teximath{x} if~\teximath{f(x)}
-lies in the interval. The member function \code{reverse()} inverts
-this logical test.
-
-The \code{data\_file} class has \code{prune} functions to cull
-rows for which a specified column's entry satisfies a
-\code{data\_mask}'s criterion.
-\findex{data\_mask.prune}
-\begin{verbatim}
- DF.prune(dm, i); // remove row if i-th column entry fails
- DF.prune(a, b, i); // remove row if i-th column outside [a,b]
-\end{verbatim}
-
-A \code{data\_bins} object models an interval divided at specified
-locations into ``bins'', not necessarily of equal length. Numerical
-data is read in and the number of points in each bin counted. The
-lifetime of a \code{data\_bins} object has two stages. First, ``cuts''
-(endpoints of subintervals) are added. Then, once data is read, the
-cuts are ``locked'' and cannot subsequently be changed.
-\findex{data\_bins}
-\findex{data\_bins.cut}
-\findex{data\_bins.read}
-\begin{verbatim}
- // [xmin, xmax] divided into n equal intervals, 1 by default
- data_bins db(xmin, xmax, [n]);
- db.cut(x); // add a cut at x (if x is in bounds)
- db.read(vector<double>); // read data, lock bins
-\end{verbatim}
-
-\index{Histograms}
-\index{Bar Charts}
-A \code{data\_bins} object can be plotted as a histogram (rectangles'
-\emph{area} is proportional to the bin population), bar chart
-(rectangles' \emph{height} is proportional to the bin population), or
-spline interpolation of a bar chart.
-\findex{data\_bins.histogram}
-\findex{data\_bins.bar\_chart}
-\findex{data\_bins.plot}
-\begin{verbatim}
- db.histogram(c=1); // c = vertical scale factor
- db.bar_chart(c=1);
- db.plot(c=1);
-\end{verbatim}
-By default (\code{c=1}), the height of a bar chart rectangle is the
-fraction of the total population contained in the bin; thus, the
-height is always between 0~and 1. For a histogram, the height of a
-rectangle is the fraction of the population per horizontal unit in the
-bin; thus, the total area over an interval~\teximath{[a,b]} does not
-depend on how~\teximath{[a,b]} has been subdivided. The sample files
-\filename{dataplot.xp}~and \filename{histogram.xp} illustrate use.
-
-Statistical convention dictates cuts be chosen distinctly from data
-values; that is, values should all fall strictly within a bin, not at
-a boundary point. With large, unknown data sets, this convention may
-be difficult to uphold. \ePiX\ attempts to handle anomalous data
-intelligently, by keeping counts of values ``out-of-range'' or
-``on-cut''.
-
-In detail, if \teximath{x<a} or \teximath{x>b} is a data value, it is
-counted as out-of-range and does not contribute to the histogram
-population. If \teximath{x=a} or \teximath{x=b}, the value counts as
-both out-of-range and on-cut but is added to the population of the
-lowest or highest bin, respectively. Any other cut appearing as a data
-input is flagged as on-cut, and increments the population of each
-adjacent bin by one-half. When a histogram or bar chart is written,
-\ePiX\ prints a warning message summarizing the number of anomalous
-data seen.
-
-
-\subsubsection*{Error Bars}
-\index{Error bars}
-
-Simple horizontal and vertical error bars are provided. The final
-(optional) argument is the true height or width (respectively) in pt.
-\findex{h\_error\_bar}
-\findex{v\_error\_bar}
-\begin{verbatim}
- h_error_bar(P location, double error, <mark type>, ht=6);
- v_error_bar(P location, double error, <mark type>, wd=6);
-\end{verbatim}
-
-To create more complex elements, such as asymmetric bars, whisker
-plots, labeled error bars, and the like, write a custom function using
-true-size drawing, see page~\pageref{truesize}. For example, a
-fillable, labeled, asymmetric, vertical rectangular error bar can be
-implemented (entirely in \ePiX) like this:
-\begin{verbatim}
- void error_bar(P loc, double lo, double hi, P offset,
- std::string text, align, double wd=6)
- {
- const double width(pt_to_screen(0.5*wd)); // converts to 3pt
- rect(loc - P(width, lo), loc + P(width, hi));
- line(loc - P(width, 0), loc + P(width, 0));
- label(loc + P(width, 0), offset, text, align);
- }
-\end{verbatim}
-For stylistic uniformity, functions such as this should be put into a
-library and used systematically. Section~\ref{section:extensions}
-outlines the process of writing, compiling, and using a custom
-library.
-\index{Plotting!data|)}
-\index{Data plotting|)}
-
-
-\subsection{Legends}
-\index{Legends}
-
-A \code{legend} systematically labels different parts of a plot by
-associating visual ``keys'' with explanatory text. This tends to be
-most useful for plots containing several distinct but conceptually
-related graphs requiring contrast.
-
-Visually, a \code{legend} is represented as an aligned list of rows,
-each containing a box (the key), a gap (the label skip), and some
-text. These rows are printed in a (usually large) masked label. By
-default, keys are \code{12pt}~squares bordered in black, the label
-skip is~\code{6pt}, the background is white, and the border is plain
-black. These attributes are controlled (simultaneously for all items)
-with member functions. Parameters of type \code{double} represent
-lengths in~\code{pt}.
-\findex{legend}
-\findex{legend.backing}
-\findex{legend.border}
-\findex{legend.item\_border}
-\findex{legend.label\_skip}
-\findex{legend.key\_size}
-\begin{verbatim}
- legend L;
- L.backing(color); // set background
- L.border(color, [double]); // set border color [and width]
- L.border(double); // border width
-
- L.item_border(color, [double]);
- L.item_border(double); // same, for item borders
-
- L.label_skip(double);
- L.key_size(double);
-\end{verbatim}
-
-
-\subsubsection*{Legend Keys}
-
-There are three types of legend key, representing filled regions,
-paths, and markers. Fill and path keys get their visual attributes
-from the current drawing state. A mark key must be told the marker
-type. Each is created by specifying the item text.
-\findex{legend.fill\_item}
-\findex{legend.path\_item}
-\findex{legend.mark\_item}
-\begin{verbatim}
- L.fill_item(text);
- L.path_item(text);
- L.mark_item(<mark type>, text);
-\end{verbatim}
-Keys in the printed legend appear in the same order they are created
-in the input file.
-
-
-\subsubsection*{Creating a Legend}
-
-Normally, a \code{legend} is defined near the start of a file, and an
-item is added at the point in the file where the corresponding object
-or plot is drawn, so that the item receives the correct attributes. A
-\code{legend} is placed into the figure with the \code{draw}
-function. The arguments have the same meaning as for ordinary
-\code{label}s.
-\findex{legend.draw}
-\begin{verbatim}
- L.draw(P location, P offset, align);
-\end{verbatim}
-All three arguments are mandatory. ``Global'' \code{legend} settings
-(border, backing, etc.) may be changed anywhere between the
-\code{legend}'s creation and \code{draw} function. The sample file
-\filename{legend.xp} revisits the example on
-page~\pageref{taylor_poly}, including a trig-labeled axis and a
-legend. The file \filename{shadeplot.xp} contains filled keys, and
-\filename{dataplot.xp} contains a \code{legend} with items of mixed
-type.
-
-
-\section{More About \CXX}
-\index{Cplusplus@\CXX|(emph}
-
-A textbook or similarly detailed reference is essential for serious
-study of~\code{C} or~\CXX. \emph{The \code{C} Programming Language},
-second edition, by Kernighan~and Ritchie~\cite{KnR}, is an excellent,
-manageable resource for the basics of procedural
-programming. \emph{C++ Primer Plus}, by Stephen Prata~\cite{Prata},
-clearly lays out the extensive details of~\CXX. Marshall Cline's
-\emph{\CXX\ FAQ Lite}~\cite{Cline} engagingly discusses common points
-of confusion and furnishes tips on good design and programming.
-
-\CXX\ is a powerful, complex language whose syntax is similar to that
-of~\C, or to the scripting languages of Maple~and Mathematica. An
-\ePiX\ input file is source code for a \CXX~program that writes a
-\LaTeX\ picture as output. \ePiX\ may be viewed as an extension
-to~\CXX; in the same way that \LaTeX\ furnishes a high-level interface
-to~\TeX, \ePiX\ provides a high-level bridge between the computational
-power of~\CXX\ and the \LaTeX\ \code{picture} environment.
-
-\index{Function}
-\index{Conditional statement}
-Like all high-level programming languages, \CXX\ provides variables,
-functions, and control structures. Variables hold pieces of data such
-as numerical values and geometric locations, while functions operate
-on data. A control structure, such as a loop or conditional statement,
-affects the program's course according to the program's current state.
-A source file is composed primarily of ``statements'', which perform
-actions ranging from defining variables and functions to setting
-figure attributes, performing calculations, and writing objects to the
-output file.
-
-\subsection{Names and Types}
-
-\index{Variable!names|(}
-Names of variables and functions may consist (only) of letters,
-digits, and the underscore character. The first character of a name
-must not be a digit, and the language standard reserves names starting
-with underscore for library authors. Names are case-sensitive, but
-it's usually a bad idea to use a single name capitalized and
-uncapitalized in a single file. Numerous capitalization conventions
-are used informally; this document uses uncapitalized words separated
-by underscores for variables and functions, and occasionally uses all
-capitals for constants. As with names of \LaTeX\ macros, primary
-considerations are clarity (of meaning), readability, and consistency.
-\index{Variable!names|)}
-
-\index{Variable!type of}
-Every variable in \CXX\ has a ``type'',
-such as integer (\code{int}), double-precision floating point
-(\code{double}), or Boolean (\code{bool}, true~or false). \ePiX\
-provides additional types, the most common of which is~\code{P}, for
-point. The construct \code{P(x,y,z)} creates~\teximath{(x,y,z)}, while
-\code{P(x,y)} gives~\teximath{(x,y,0)}, which is effectively the
-pair~\teximath{(x,y)}. A variable is defined by giving its type, its
-name, and an initializing expression.
-
-\index{Variable!pointer}
-\index{Pointer}
-In~\code{C} and~\CXX, a \emph{pointer} variable holds the memory
-address of another variable. Pointers are useful for manipulating
-(possibly large) data structures through ``handles'' of fixed small
-size. \CXX\ also provides \emph{references}, which bind an additional
-name to an existing object and allow the object to be manipulated
-through this alias. The statements
-\begin{verbatim}
- double x=1; // ordinary variable definition
- double& rx=x; // bind a reference, signified by &
-\end{verbatim}
-define a variable~\code{x} having the value~1, and bind a reference
-variable~\code{rx} to it. As long as~\code{rx} exists, it refers
-to~\code{x}. If the value of~\code{x} changes, the value of~\code{rx}
-does as well. Conversely, the value of~\code{x} can be altered by
-assigning to~\code{rx}. However,~\code{rx} is the size of a pointer,
-regardless of the size of~\code{x}, so~\code{rx} can be passed
-efficiently in a function call.
-\texicomment
-Some applications are discussed on page~\pageref{references}.
-\texicommentend
-
-
-\subsection{Functions}
-
-\index{Function|(}
-In a programming language, the term ``function'' refers to a block of
-code that is executable by name. A \CXX\ function takes a list of
-``arguments'', and has a ``return value''. This information, together
-with the function's name, must be provided when a function is defined.
-A function may not be defined inside another function. However, a
-function may call other functions (including itself) as part of its
-execution:
-\begin{verbatim}
- int factorial(unsigned int n)
- {
- if (n == 0) return 1;
- else return n*factorial(n-1);
- }
-\end{verbatim}
-
-\index{Function!returning \code{void}}
-The special type~\code{void} represents a ``null type''. A function
-that performs an action but does not return a value has return type
-\code{void}. A function that takes no arguments may be viewed as
-taking a single \code{void} argument.
-
-Every \CXX\ program has a special function~\code{main()}, which is
-called by the operating system when the program is run. The arguments
-of~\code{main()} are command-line arguments, and the return type is an
-integer that signals success or failure. User-specified functions must
-be defined before the call to \code{main()} or in a
-separately-compiled file.
-
-Functions in~\CXX\ may be as simple as an algebraic formula or as
-complex as an arbitrary algorithm. Greatest common divisors, finite
-sums, numerical derivatives and integrals, solutions of differential
-equations, recursively generated fractal curves, and curves of best
-fit are a few applications in \ePiX. Several sample files contain
-user-level algorithms, which do not require knowledge of \ePiX's
-internal data structures. The source file \filename{functions.cc}
-contains simple functions defined by algorithms, and
-\filename{functions.h} illustrates the use of \CXX\ templates. Other
-source files, such as \filename{plots.cc}, may be consulted for
-Simpson's rule, Euler's method, and the like.
-
-
-\subsection{Mathematical Functions}
-
-\index{Function!mathematical|(}
-\CXX~knows several familiar mathematical functions by name:
-\begin{verbatim}
- sqrt exp log log10 ceil floor fabs
-\end{verbatim}
-(\code{fabs} is the absolute value for a floating-point argument.)
-\ePiX\ provides trig and inverse trig functions sensitive to angular
-mode:
-\index{Angular mode}
-\findex{Cos}
-\findex{Sin}
-\findex{Tan}
-\findex{Sec}
-\findex{Csc}
-\findex{Cot}
-\findex{Acos}
-\findex{Asin}
-\findex{Atan}
-\begin{verbatim}
- Cos Sin Tan
- Sec Csc Cot
- Acos Asin Atan
-\end{verbatim}
-The inverse functions are principle branches.
-
-The function \code{pow(x,y)} returns~\teximath{x^y} when
-\teximath{x>0}, and \code{atan2(y,x)} (N.B. argument order) returns
-\teximath{\mathrm{Arg}(x+iy)\in(-\pi,\pi]}, the principle branch of
-arg. \CXX~knows many constants to 20~decimal places, such as
-\code{M\_PI}, \code{M\_PI\_2}, and \code{M\_E} for~\teximath{\pi},
-\teximath{\pi/2}, and~\teximath{e} respectively. \ePiX\ defines a few
-additional functions:
-\findex{sgn}
-\findex{zero}
-\findex{sinx}
-\findex{cb}
-\begin{verbatim}
- sgn zero sinx cb
-\end{verbatim}
-\texicomment
-\begin{center}
- \input{sgn.eepic}\qquad
- \input{sinx.eepic}\qquad
- \input{cb.eepic}
-\end{center}
-\medskip
-\texicommentend
-\code{sgn} is the signum function; \code{zero} is the constant
-function; \code{sinx} is the function \teximath{x\mapsto \sin(x)/x}
-with the discontinuity removed; \code{cb} (for ``Charlie Brown'') is
-the period-2 extension of the absolute value function
-on~\teximath{[-1,1]}.
-
-The GNU \CXX\ library defines other functions, including inverse
-hyperbolic functions (\code{acosh}, etc.), \code{log}~and \code{exp}
-with base~2, 10, or arbitrary~\teximath{b} (\code{log2}, etc.), the
-error and gamma functions (\code{erf}~and \code{tgamma} [sic],
-respectively), and Bessel functions of first and second kind:
-\code{j0}, \code{j1}, \code{y0}, etc. Use, e.g., \code{jn(5,~)} to get
-higher indices. The GNU \C~library reference manual~\cite{GNUC}
-describes these and other functions in detail.
-
-Functions may be used in subsequent definitions, and functions of two
-(or more) variables are defined in direct analogy to functions of one
-variable:
-\begin{verbatim}
-double f(double t) { return t*t*log(t*t); } // t^2 \ln(t^2)
-double g(double s, double t) { return exp(2*s)*Sin(t); }
-\end{verbatim}
-\index{Function!mathematical|)}
-
-
-\subsection{Basics of Classes}
-
-\index{Classes|(}
-Unlike~\code{C}, \CXX\ supports ``object-oriented programming''. In a
-nutshell, a \emph{class} is an abstraction in computer code of some
-concept, such as a point, a sphere, a mapping that can be plotted, or
-a camera. Classes allow a programmer to separate an object's
-\emph{interface} (the set of meaningful operations) from its
-\emph{implementation} (the data structures and algorithms that realize
-the interface).
-
-\index{Function!class member}
-A class implementation consists of \emph{members} (named data
-elements) and \emph{member functions} (functions that belong to the
-class and have free access to members). \CXX\ classes enforce access
-permissions on their members, protecting data from being manipulated
-except as promised by the interface.
-
-An ideal interface looks like a black box: It hides the implementation
-completely. In order to cooperate, two classes need only know each
-other's interfaces. This separation of form and function modularizes a
-program, and facilitates debugging, code reuse, and overall
-maintainability, particularly in large programs.
-
-In simple programming, classes may be treated like built-in types.
-Each class object has its own member functions, whose call syntax
-differs from standard function calls:
-\begin{verbatim}
- Circle C1(P(1,0), 1.5); // circle of given center and radius
- C1.draw(); // member function Circle::draw();
-\end{verbatim}
-Naturally, this call draws the circle~\code{C1}. Generally, a member
-function call consists of a class object's name, a period, and the
-name of the member function. Arguments, if any, go in the parentheses
-after the member function name, just as in a regular function call.
-
-A few short paragraphs cannot do more than scratch the surface of
-classes and object-oriented programming. For more details, please
-consult a book, such as Prata~\cite{Prata} or Stroustrup~\cite{S}, or
-Cline's on-line FAQ~\cite{Cline}.
-\index{Classes|)}
-
-
-\subsection{References and Function Arguments}
-
-\index{Function!call syntax}
-\index{Variable!reference}
-\label{references}
-\code{C}~and \CXX\ are ``call by value'' languages. Variables are not
-passed to a function; instead a copy of the value is made, and the
-function operates only on the copy. Though this feature causes
-occasional inconvenience, it prevents an object from being altered
-unexpectedly by a function call in a different part of the program.
-Calling by value helps localize the logic of a program, and
-circumvents easy-to-write but extremely hard-to-find bugs.
-
-In \CXX, a function may accept reference arguments. Passing an object
-by reference grants the calling function access to the object itself,
-not to a copy. There are two common applications: The object is a
-large data structure for which copying is ``expensive'', or the
-function \emph{needs} to modify its arguments (e.g., a function
-\code{swap(x,y)} that exchanges the values of \code{x}~and
-\code{y}).
-
-For the first situation, \CXX\ provides the \code{const} keyword,
-which ensures the function does not modify its arguments, but accepts
-a reference merely for efficiency. Any attempt to modify a
-\code{const} argument will be caught by the compiler. Most \ePiX\
-commands accept \code{const} reference arguments.
-
-The ability to pass function arguments by reference is sometimes
-touted as a feature in \CXX\ texts. However, the technique circumvents
-the data encapsulation of calling by value, and should be avoided
-unless absolutely necessary. If a function merely ``updates'' the
-value of a variable, probably the variable should be of class type,
-and the update should be performed by a member function.
-
-A function declaration must indicate that its arguments are
-references. The declarations below have the indicated idiomatic
-meanings.
-\begin{verbatim}
- class matrix;
- double det(matrix); // call by value, perhaps inefficient
- matrix& transpose(matrix&); // probably changes its argument
- double trace(const matrix&); // does not change its argument
-\end{verbatim}
-Unlike pointer arguments, reference arguments impose no syntactic
-burden on the user. If~\code{A} is a~\code{matrix}, then
-\code{transpose(A);} and \code{trace(A);} will compile. You need not
-declare explicit reference variables and pass those to the function.
-
-
-\subsection{Overloading}
-
-\index{Function!overloaded}
-\CXX\ provides ``overloading'': Multiple functions can be given the
-same name, so long as the number and/or type of their arguments
-differ. (It is \emph{not} enough for the return types alone to differ.
-The compiler must be able to select a function from its calling
-syntax.) To the user, the appearance is that a single function
-intelligently handles multiple argument lists. Naturally, overloaded
-names should refer to functions that are conceptually related.
-\index{Function|)}
-
-
-\subsection{Scope}
-
-\index{Variable!local}
-A \CXX\ statement ends with a semicolon. A collection of statements
-enclosed by curly braces is a ``code block'', and may be viewed as a
-single logical statement. Curly braces determine a ``scope'', inside
-which variable names may be re-used without ambiguity. Function
-bodies are code blocks, as are the alternatives associated to control
-statements. A variable defined between curly braces is said to be
-\emph{local} to the scope in which it is defined; its value cannot
-be used out of scope. Variables should be declared in the smallest
-scope possible.
-
-The compiler is not picky about spaces, tabs, and newlines, so an
-input file should be formatted to make local scopes visually
-apparent. \code{emacs} automatically indents code to reflect scope,
-though the default behavior does not please all users. As with
-variable naming, clarity and consistency are paramount.
-
-
-\subsection{Headers and Pre-Processing}
-
-A \CXX\ source file is compiled in multiple stages that occur
-transparently to the user. The first step, pre-processing, involves
-simple text replacement for file inclusion, macro expansion and
-conditional compilation. Next, the source is compiled and assembled:
-Human-readable language instructions are parsed, then represented in
-assembly language. Finally, the object files are linked: Function
-calls are resolved to hard-coded file offsets, possibly involving
-external library files, and the program instructions are packaged into
-an executable binary that the operating system can run.
-
-Pre-processing is used much less in~\CXX\ than in~\code{C}; the
-language itself supports safer and more featureful alternatives to
-macros, such as \code{const} variables and inline functions. File
-inclusion and conditional compilation are the chief uses of the
-pre-processor. Lines of the form
-\begin{verbatim}
- #include <iostream>
- #include "epix.h"
-\end{verbatim}
-cause the contents of a \emph{header file} to be read into the source
-file. A header file contains variable and function
-\emph{declarations}, statements that specify types and names but do
-not define actual data. Declarations tell the compiler just enough
-to resolve expressions and function calls without knowing specific
-values or function definitions.
-
-\index{Input file!conditional compilation}
-Conditional compilation is similar to conditional \LaTeX\ code. For
-example, a file might produce either color or monochrome output as
-follows:
-\begin{verbatim}
-#ifdef COLOR
- ... // code for generating color figure
-#endif /* COLOR */
-#ifndef COLOR
- ... // monochrome code
-#endif /* undef COLOR */
-\end{verbatim}
-The ``compiler symbol'' \code{COLOR} is an ordinary \CXX\ name. To
-control compilation, either put a \code{\#define COLOR} line in the
-file, or (better) supply the flag on the command line: \\
-\verb+ epix -DCOLOR <file.xp>+ \\
-Every \code{\#ifdef} must have a matching \code{\#endif}. Commenting
-the \code{\#endif} is a good habit; in a realistic file, the start and
-end of a conditional block may be separated by more than one screen.
-
-
-\subsection{Comparison with \LaTeX\ Syntax}
-
-As a programming language, \CXX\ provides certain features common to
-all languages (such as \LaTeX, MetaPost, Perl, Lisp\ldots) and adheres
-to rules of grammar. Salient differences between \LaTeX\ and \CXX\
-include:
-
-\begin{enumerate}
-\item Every \CXX\ statement and function call must end with a
- semicolon. An omitted semicolon may result in a cryptic error
- message from the compiler. Pre-processor directives, which start
- with a~\code{\#}, do not end with a semicolon.
-
-\item Backslash is an escape character in \CXX:
- \index{Labels}
-\begin{verbatim}
- // Put label $y=\sin x$ at (2,1)
- // Note single ^ backslash in output
- label(P(2,1), P(0,0), "$y=\\sin x$");
- // Double backslash ^^ in source
-\end{verbatim}
-
-\item Variable and function names may contain letters (including
- underscore) and digits \emph{only}, are case sensitive, and must
- begin with a letter.
-
-\item Variables in \CXX\ must have a declared \emph{type}, such as
- \code{int} (integer) or \code{double} (double-precision floating
- point). If a variable has global scope and its value does not
- change, the definition should probably come in the preamble or at
- the beginning of \code{main}. Local variables should be defined in
- the smallest possible scope. Unlike~\C, \CXX\ allows variables to be
- defined where they first appear.
-
-\item \CXX~requires explicit use of~\code{*} to denote multiplication;
- juxtaposition is not enough. \CXX~does not support the use of
- \verb+^+ for exponentiation, e.g., \verb+t^2+ is invalid. Instead,
- use \code{t*t}~or \code{pow(t,2)}.
-
-\item \CXX\ has single- and multi-line comments. Everything between a
- double slash and the next newline is ignored, while the strings
- \verb+/*+~and \verb+*/+ delimit multi-line comments. A single-line
- comment may appear within a multi-line comment, but the compiler
- does not nest multi-line comments.
- \index{Input file!comment in}
-
-\end{enumerate}
-
-Between them, \C~and \CXX~have about 100~reserved keywords which
-cannot be used as function or variable names.
-\index{Cplusplus@\CXX|)}
-
-
-\section{Attribute Quick Reference}
-\label{section:quickref}
-
-In the body of an input file, the ``drawing state'' determines the
-figure's appearance. Attributes are declarations, set by commands that
-accept arguments of the stated type.
-
-A \code{len} argument is a double-quoted string containing a number
-and a two-letter \LaTeX\ length unit, such as \code{"1.5pt"} or
-\code{"6cm"}. A \code{color} argument is a named primary
-(\code{Red()}, \code{Cyan()}, \code{White()}, etc.), a \code{Color}
-specified by densities (\code{RGB(...)}, \code{CMYK(...)}, etc.), or a
-\code{Color} object. Using \code{Neutral()} as a \code{Color} argument
-generally turns off the corresponding attribute.
-
-\begin{itemize}
-
-\item Angular mode: \code{radians()}, \code{degrees()}, or
- \code{revolutions()}.
-
- The angular mode affects all trigonometric operations, including
- camera rotations, the drawing of arcs and ellipses, polar plotting,
- label angle, and the trig functions themselves. Angle-sensitive trig
- functions are capitalized, e.g., \code{Cos}, \code{Tan}.
-
-\item Fill style: \code{fill(color)}, \code{fill(bool)},
- \code{nofill()}.
-
-\item Path style:
-
- \begin{itemize}
-
- \item Width: \code{plain()}, \code{bold()}, \code{bbold()},
- \code{pen(len)}.
-
- \item Line style: \code{line\_style(string)}. The argument is a
- WYSIWYG sequence of dashes, spaces, and periods.
- \code{dash\_size(double)} and \code{dot\_sep(double)} set the
- (approximate) length in~\code{pt} of the pattern. The commands
- \code{solid()}, \code{dashed()}, \code{dotted()} define
- ``standard'' defaults for brevity.
-
- \item Path color:
- Paths can be drawn using \emph{two} pens, one atop the other. When
- the ``base'' pen is white (or the background color) and wider than
- the ``line'' pen, a path masks parts of the figure it crosses. A
- 3-D effect may be obtained by making the base pen a darker shade
- than the ``line'' pen.
-
- \code{pen(color,[len])}, \code{base(color,[len])}
-
- Standard widths: \code{plain(color)}, \code{bold(color)},
- \code{bbold(color)}
-
- \end{itemize}
-
-\item Text attributes:
-
- \begin{itemize}
-
- \item Color: \code{label\_color(color)}
-
- \item Mask: \code{label\_mask(color)}, \code{label\_pad(len)}
-
- \item Border: \code{label\_border(color, [len])},
- \code{label\_border(len)}. The command \code{no\_label\_border()}
- turns off label borders.
-
- \item Font size: \code{font\_size(LaTeX size)}, no argument means
- \code{normalsize}.
-
- \item Font face: \code{font\_face(LaTeX font)}, two-letter font
- selection string, default is \code{rm}.
-
- \item Rotation: \code{label\_angle(double)}
-
- \end{itemize}
-
-\end{itemize}
-
-Do not confuse \code{Color} constructors with the similarly-named
-(deprecated) lowercase attribute-setting commands, \code{rgb(r,g,b)},
-\code{cmyk(c,m,y,k)}, \code{red(d)}, etc. These commands affect text,
-paths, and filled regions. For example, the single command
-\code{red()} has the same effect as the three commands
-\code{pen(Red())}, \code{fill(Red())}, and \code{label\_color(Red())}.
-
-
-\texinfochapter{4}{Advanced Topics}
-\label{chapter:adv}
-
-This chapter covers \emph{ad hoc} tricks and open-ended techniques
-that require relatively more programming sophistication. You will
-almost surely need an external \CXX\ reference if you do not speak the
-language.
-
-
-\section{Hidden Object Removal}
-\label{section:hidden}
-
-\index{Hidden object removal|(}
-\ePiX\ writes the output file in the same order that objects appear in
-the input. The order is significant because PostScript builds a figure
-in layers: Objects are drawn over objects that come earlier in the
-file. Shaded polygons can be used to obtain surprisingly effective
-hidden object removal in surface meshes. This section describes the
-data structures defined in the source files \code{surface.*}.
-
-\index{Camera}
-The basic idea is to create a shaded polygon class that knows its
-approximate distance to the camera. For computational simplicity, a
-mesh ``facet'' is treated as a quadrilateral, located at the
-arithmetic mean of its vertices. A facet's boundary is created from a
-map and a domain by tracing a fine mesh rectangle counterclockwise.
-
-To draw a parametrized surface, facets are stored in a \CXX\ vector,
-sorted in decreasing order of distance to the camera, and printed to
-the output file. If filling is active, the gray density of a facet
-depends on the cosine of the angle between the normal vector and the
-vector from the camera to the element.
-
-This simple algorithm works surprisingly well when mesh elements
-intersect at most along complete edges. To incorporate line-like
-elements (e.g., coordinate axes, wire-mesh plots) with shaded
-surfaces, the best technique is often to order high-level scene
-elements manually, breaking up shaded surfaces (for example, with
-domain resizing or clipping) as necessary. The sample file
-\filename{saddle.xp} illustrates possible techniques.
-
-Shaded surfaces can be decorated with a bit of hackery. For example,
-the \code{facet::draw} function in \filename{facet.cc} can be
-modified easily to draw line elements, tangents, or normal vectors
-along with the facet itself. The sample file
-\filename{decorate.xp} contains a couple of ideas. (The
-decorations are activated by compiler flags; please consult the file
-itself for information on compiling.)
-\index{Hidden object removal|)}
-
-
-\section{Extensions}
-\label{section:extensions}
-
-Thanks to a suggestion of Andrew Sterian, \ePiX\ is extensible. User
-extensions span a spectrum, from header files that require only basic
-knowledge of~\CXX\ to separately compiled libraries that add
-substantial new features. The structure of the source code is
-outlined in Section~\ref{section:programmers}.
-
-
-\subsection{Header Files}
-
-A \CXX~header file conventionally has suffix~\filename{.h}, as in
-\filename{myheader.h}. To use this custom header, put a line
-\code{\#include "myheader.h"} in your source file.
-
-User definitions can be easily and robustly implemented with ``inline
-functions''. Inline functions are superficially similar to macros, but
-are far more safe and featureful (since they are handled by the
-compiler rather than by the pre-processor). Examples are
-\begin{verbatim}
- inline void Bold() { pen(1.6); }
- inline void purple() { rgb(0.5, 0, 0.7); }
- inline void draw_square(double s) { rect(P(-s,-s),P(s,s)); }
- inline double cube(double x) { return pow(x,3); // x^3 }
-\end{verbatim}
-The keyword \code{void} signifies a function that does not return a
-value, or (when used as an implicit parameter) a function that does
-not accept arguments. Inline function definitions are syntactically
-identical to ordinary function definitions, but \emph{must} occur in a
-header file or in the source file where they are used. The examples
-above might be used in an input file as follows:
-\begin{verbatim}
- Bold();
- draw_square(cube(1.25));
-\end{verbatim}
-
-
-\subsection{Compiling}
-
-The next few sections outline the creation of a ``static library'' on
-GNU/Linux, and explain how to incorporate custom features at runtime.
-The extensively-commented sample files \filename{std\_F.cc}~and
-\filename{std\_F.h} illustrate the techniques described below, and may
-be used for guidance and experimentation.
-
-A small library is usually written as a \emph{header} file, which
-contains class and function declarations (also called ``prototypes''),
-and a \emph{source} file, which contains the actual
-code. Conventionally (under *nix), these files have extension
-\filename{.h}~and \filename{.cc} respectively. Header and source files
-may ``include'' other header files, to incorporate additional
-functionality.
-\begin{verbatim}
-/* my_code.h */
-#ifndef MY_CODE
-#define MY_CODE
-#include <cmath> // standard library math header
-#include "epix.h" // ePiX header
-using ePiX::P;
-
-namespace Mine { // to avoid name conflicts
- // functions for special relativity
- double lorentz_norm(const P&);
- bool spacelike(const P&);
-} // end of namespace
-#endif /* MY_CODE */
-\end{verbatim}
-This file exhibits two ``safety features''. The three \code{MY\_CODE}
-lines prevent the file from being included multiple times. In a file
-of this size, inclusion protection is overkill, but as your code base
-grows and the number of header files increases, this protection is
-essential. Second, the header introduces a ``Mine'' namespace. Inside
-this namespace, two functions are declared as prototypes, giving the
-function's return type, name, and argument type(s). A header file
-should be commented fairly liberally, so that a year or two from now
-you'll be able to decipher the file's contents. For a longer file,
-version and contact information, an overall comment describing the
-file's features, and license information are appropriate.
-
-Next, the corresponding source file; definitions are also placed into
-the namespace, and must match their prototypes from the header file
-exactly.
-\begin{verbatim}
-/* my_code.cc */
-#include "my_code.h"
-using namespace ePiX;
-
-namespace Mine {
- double lorentz_norm(const P& arg)
- {
- double x(arg.x1()), y(arg.x2()), z(arg.x3()); // extract coords
- return (y-x)*(y+x) + z*z; // -x^2 + y^2 + z^2
- }
- bool spacelike(const P& arg)
- {
- return (lorentz_norm(arg) > 0); // true if inequality is
- }
-} // end of namespace
-\end{verbatim}
-Copies of these files are included with the source code so you can
-experiment with them. Next, the source file must be ``compiled'',
-``archived'', and ``indexed''. In the commands below, the percent sign
-is the prompt.
-\begin{verbatim}
-% g++ -c my_code.cc
-% ar -ru libcustom.a my_code.o
-% ranlib libcustom.a
-\end{verbatim}
-Please see your system documentation for details on command options
-and what each step does. For linking (below), the name of the library
-file must begin ``lib'' and have the extension~\filename{.a}. Once these
-steps are successfully completed, put the library \filename{libcustom.a}
-and header file \filename{my\_code.h} in your project directory. You're
-ready to use the code in an \ePiX\ figure.
-
-
-\subsection{Runtime Linking}
-
-The script~\epix\ allows input files to be linked with external
-libraries at run time, when the input file is compiled into a
-temporary executable.
-
-\epix\ recognizes command line options and passes them verbatim to the
-compiler. The most commonly used options are those of the form
-\begin{verbatim}
- -I<include> -L<libdir> -l<lib>
-\end{verbatim}
-For example, to link \filename{figure.xp} against
-\filename{mylibs/libcustom.a}, run the command
-\begin{verbatim}
- epix -Lmylibs -lcustom figure
-\end{verbatim}
-The options \code{-I. -L.} tell the compiler to look in the current
-directory for header and library files. Compiler options may appear
-in any order, but must come before the name of the input file(s).
-
-Compiler options may be placed in the configuration file
-\filename{\$HOME/.epixrc}, with syntax as above. A line in the config
-file that contains a pound sign~(\code{\#}) is a comment, no matter
-where in the line the~\code{\#} appears. If any non-comment line
-fails to start with a dash, the rest of the file is silently
-discarded. Command-line options are read before the config file.
-
-
-\subsection{Using Multiple Versions}
-
-The script \filename{epix}~links by default against the \code{C}~math
-library \code{libm.a}~and the \ePiX\ library \code{libepix.a}. The
-command option \code{--no-defaults} clears the header and include
-paths and removes \code{libepix.a} from the link list. The script may
-therefore be used with multiple versions of \ePiX, a potentially
-useful feature if you regularly need to compile old source files, or
-simply prefer the syntax of an older version.
-
-To install and use (say) Version~1.0.0, build the package according to
-its \filename{INSTALL} instructions, but \emph{do not use the makefile
- to install}. Instead, manually install the header and library only,
-using their version number:
-\begin{verbatim}
-# install -m 644 epix.h /usr/local/include/epix-1.0.h
-# install -m 644 libepix.a /usr/local/lib/libepix-1.0.a
-\end{verbatim}
-A non-system directory may be used instead of \filename{/usr/local}.
-To use the old version, a source file must \code{include} the
-appropriate header file (which is identified by its version number).
-To compile, issue a command such as
-\begin{verbatim}
-epix --no-defaults -I/usr/local -L/usr/local -lepix-1.0 file.xp
-\end{verbatim}
-
-
-\section{Programmer's Guide}
-\label{section:programmers}
-
-This section briefly surveys \ePiX's implementation, and is intended
-for (potential) programmers. The source code is divided into modules
-with small, well-defined responsibilities, but the user interface is
-mostly compatible with the syntax of Version~1.0. These constraints
-demanded a degree of implementation hiding. For example, the
-user-visible classes defined in \filename{Color.h}, \filename{path.h},
-and~\filename{screen.h} contain only a pointer to the implementation
-class, and style data is hidden behind global commands.
-
-Functionally, the code consists of the user interface; implementation
-class\-es comprising drawing attributes, spatial objects, screens and
-representations of their elements, and output; and miscellaneous
-utility functions. The headers in each group, and their contents, are
-described in Section~\ref{section:interface}.
-
-The user interface headers are assembled into a single file,
-\filename{epix.h}, and installed in \filename{/usr/local/include} by
-default. In normal use, the shell scripts read only the user interface
-header. The individual headers, including the components of
-\filename{epix.h}, are installed in
-\filename{/usr/local/include/epix}. These are provided for authors of
-external libraries, who may need access to implementation details.
-
-
-\subsection{External Packages}
-
-\ePiX\ harnesses the computational power of~\CXX\ to the typographical
-capabilities of \LaTeX. Consequently, \ePiX\ should be viewed in part
-as a framework for expressing numerical data visually.
-
-In the course of your work, you may develop specialized code filling a
-gap in \ePiX's functionality. If your code seems likely to be of
-interest to other users, please consider bundling it as an external
-package and notifying the \ePiX\ community so your work can be linked
-from the project pages and distributed to interested users.
-
-There are no formal requirements for external packages, but in the
-interest of uniformity contributed code should follow the GNU Coding
-Standards~\cite{GNUCoding}. At a minimum, an external package should
-build with the standard \code{./configure; make; make install}
-commands, and the \code{configure} script should accept an option
-\code{--with-epix} for the user to specify a non-default \ePiX\
-install directory.
-
-If an external package builds a static library, it should provide a
-single header containing all the package's entry points, and enclose
-its interface in a namespace. Entry points should not collide with
-\ePiX\ functions. Naming the package ``\filename{epix-<...>}'' is a
-good idea, but not essential. For example, a package providing textual
-nodes and diagram layout might be named \filename{epix-nodes}. Input
-files would use the package with the lines
-\begin{verbatim}
- #include "epix-nodes.h"
- using namespace ePiX-nodes;
-\end{verbatim}
-and be compiled with
-\begin{verbatim}
- epix -lepix-nodes <file>
-\end{verbatim}
-
-The user and internal interfaces of \ePiX-1.2 are not likely to
-change. Still, it's prudent to rely only on the user interface in
-contributed code whenever possible. Doing so also simplifies your work
-as an author; your library can simply \code{include} the user header
-file, and deal only with high-level objects and drawing attributes.
-
-
-\subsection{User Interface}
-\label{section:interface}
-
-These files (in order) comprise the global header \filename{epix.h}.
-
-\Header{enums.h} Marker, alignment, Riemann integral, and vector field
-types.
-
-\Header{length.h} Physical lengths, conceptually a number and
-two-letter \LaTeX\ length unit.
-
-\Header{interval.h} Closed, open, and half-open interval ranges for
-data culling.
-
-\Header{triples.h} The \code{P} class.
-
-\Header{functions.h} Angle-sensitive trig functions, miscellaneous
-utility functions, the \code{Deriv}~and \code{Integral} classes.
-
-\Header{pairs.h} Screen locations and displacements, with complex
-arithmetic operations.
-
-\Header{Color.h} The Color class interface, named
-primaries and constructors.
-
-\Header{state.h} Angle mode; clipping and cropping; label styles;
-filling; arrow head style; dot and tick sizes, dash length; line
-style; line and base pen attributes; color-setting commands.
-
-\Header{frame.h} Orthonormal bases.
-
-\Header{domain.h} Coordinate boxes for function plotting.
-
-\Header{camera.h} The camera.
-
-\Header{screen.h} The screen class.
-
-\Header{picture.h} Dimension-setting, offset, layout, decoration,
-verbatim text, and output format commands.
-
-\Header{markers.h} Point markers, axis labels, and coordinate axes.
-
-\Header{axis.h} Coordinate axes and labels in various styles.
-
-\Header{legend.h} Plot legends.
-
-\Header{path.h} The path class.
-
-\Header{curves.h} Polygons, arrows, ellipses, arcs, splines,
-coordinate grids, and recursive fractal curves.
-
-\Header{circle.h} The \code{Circle} shape object class.
-
-\Header{plane.h} The \code{Plane} shape object class.
-
-\Header{segment.h} The \code{Segment} shape object class.
-
-\Header{sphere.h} The \code{Sphere} shape object class.
-
-\Header{intersections.h} Shape object intersection operators.
-
-\Header{plots.h} Plotting commands.
-
-\Header{surface.h} Shaded surface plots.
-
-\Header{data\_mask.h} Helper class for data pruning.
-
-\Header{data\_file.h} Class for storing and representing data.
-
-\Header{data\_bins.h} Class for sorting and counting data.
-
-\Header{geometry.h} Latitudes and longitudes; spherical plotting,
-arcs, polygons, and polyhedra; hyperbolic arcs.
-
-
-\subsection{Implementation Classes}
-
-\Header{Color\_Base.h} The Color implementation interface.
-
-\Header{Color\_CMY.h} The CMY color model.
-
-\Header{Color\_CMYK.h} The CMYK color model.
-
-\Header{Color\_Gray.h} The Gray color model.
-
-\Header{Color\_Neutral.h} Each color class has a ``Neutral'' member
-that converts colors to that model by filtering. This file defines the
-unique ``model-less'' Neutral color for which filtering performs no
-action.
-
-\Header{Color\_RGB.h} The RGB color model.
-
-\Header{Color\_Sep.h} Classes for CMYK separation.
-
-\Header{active\_screen.h} Simple manipulator for the active screen.
-
-\Header{picture\_data.h} Picture implementation: two \code{screen}s
-(representing the \code{canvas}~and the output page), true dimensions
-and offsets, pointer to output format, list of colors, and lists of
-verbatim text to write before and after printing the \code{picture}
-environment in the output file. For simplicity, the \code{screen}s and
-dimensions are public; encapsulation from the user results from
-``hiding'' this header.
-
-
-\subsubsection*{Style Attributes}
-
-Declaration-style attributes are maintained with functions returning
-static references: \code{the\_angle\_style()},
-\code{the\_arrowhead\_style()}, \code{the\_label\_style()},
-\code{the\_mark\_size()}, \code{the\_paint\_style()}, and
-\code{the\_path\_style()}. Each function is declared in the
-analogously-named header.
-
-\Header{angle\_units.h} Angular modes: \code{radians},
-\code{revolutions}, and \code{degrees}.
-
-\Header{arrow\_style.h} Arrow head style data: width, ratio, and
-inset.
-
-\Header{label\_style.h} Text object style: Label and mask colors,
-padding, border color and width, alignment, font size, font face, and
-angle.
-
-\Header{marker\_style.h} Dot and tick sizes.
-
-\Header{paint\_style.h} Line and base pens, fill color.
-
-\Header{path\_style.h} Solid, dashed, dotted lines.
-
-\Header{pen\_data.h} The pen class.
-
-
-\subsubsection*{Objects}
-
-\Header{arrow\_data.h} Arrow representation.
-
-\Header{facet.h} Shaded surface elements.
-
-\Header{label\_data.h} Text (label and marker) objects.
-
-\Header{legend\_item.h} Items for \code{legend}s.
-
-\Header{path\_data.h} Path implementation.
-
-\Header{spline.h} The natural spline class.
-
-\Header{spline\_data.h} Templates for quadratic and cubic splines.
-
-
-\subsubsection*{Screen Representation}
-
-Elements in a \code{screen} are represented polymorphically as
-``\code{tile}s'', of which there are six types: \code{glyph} (textual
-elements), \code{pen\_arrow} (arrows), \code{pen\_fill} (filled
-regions), \code{pen\_line} (path-like elements), \code{verbatim}
-(raw text), and \code{legend\_tile} (legends).
-
-Border and background shape are dictated by the \code{screen\_mask}
-class. The cropping algorithm assumes the contour of a screen mask is
-convex.
-
-\Header{affine.h} Affine maps.
-
-\Header{cropping.h} Screen mask cropping.
-
-\Header{glyph.h} Markers and labels.
-
-\Header{legend\_tile.h} Screen representation of a \code{legend}.
-
-\Header{mask\_diamond.h} Screen diamond mask.
-
-\Header{mask\_ellipse.h} Screen elliptical mask.
-
-\Header{mask\_rectangle.h} Screen rectangular mask.
-
-\Header{pen\_arrow.h} Arrows.
-
-\Header{pen\_fill.h} Filled regions.
-
-\Header{pen\_line.h} Paths.
-
-\Header{screen\_data.h} Screen implementation class.
-
-\Header{screen\_mask.h} Screen mask interface.
-
-\Header{tile.h} Screen element interface.
-
-\Header{verbatim.h} Text in output stream.
-
-
-\subsubsection*{Output}
-
-Output is divided into a couple of high-level operations and several
-``atomic'' low-level operations. To create a new output
-format, one need only implement the \code{format} interface for the
-desired file type. Paths and filled regions may be implemented however
-the output type dictates.
-
-\Header{eepic.h} eepic macros.
-
-\Header{fmt\_template.h} ``skeleton'' header for new output formats.
-
-\Header{format.h} The output interface.
-
-\Header{pst.h} PSTricks macros.
-
-\Header{tikz.h} tikz macros.
-
-
-\subsubsection*{Utilities}
-
-\Header{Color\_Utils.h} Functions for setting color channel densities.
-
-\Header{clipping.h} The clip box.
-
-\Header{constants.h} Global constants: Line widths; dot, tick, and
-dash sizes; arrowhead parameters; miscellaneous numerical constants
-and internal parameters.
-
-\Header{crop\_algorithms.h} Path and loop clipping templates.
-
-\Header{deriv.h} Finite difference template.
-
-\Header{edge\_data.h} Path element representation template.
-
-\Header{errors.h} Warning and error messages.
-
-\Header{frac.h} Rational numbers and operators.
-
-\Header{halfspace.h} Halfspace cutting.
-
-\Header{hatching.h} Filling regions in eepic.
-
-\Header{lens.h} Camera lenses.
-
-\Header{map.h} Wrappers for templated plotting.
-
-\Header{plot\_algorithms.h} Plotting templates.
-
-\Header{screen\_crop.h} Crop paths and loops.
-
-\Header{utils.h} Truncation, date and time, line breaking.
-
-
-\appendix
-\texinfoappendix{A}{Software Freedom}
-\index{Free software|(}
-
-Academics in general, and mathematicians in particular, depend on free
-exchange of information. We prove theorems or establish experimental
-results, write up formal accounts, place preprints on public file
-servers, and submit papers to peer-reviewed journals. If accepted, the
-results---data, techniques, methods of reasoning, citations, and
-conclusions---are published in print and become part of the public
-record, governed by copyright law. Libraries purchase journal
-subscriptions, but researchers and scholars may use ideas from the
-literature merely by giving appropriate citations in their own
-work. ``Theft'' arises from false claims of authorship.
-
-Carried over to software, the academic process would guarantee rights
-similar to those provided by the GNU General Public License (GPL):
-
-\begin{itemize}
-
-\item (GPL~0) To run a program for any purpose.
-
-\item (GPL~1) To study how the program works, and adapt it to your
- needs.
-
-\item (GPL~2) To redistribute copies of the program.
-
-\item (GPL~3) To improve the program, and release improvements to the
- public, so that the whole community benefits.
-
-\end{itemize}
-
-In reality, attitudes toward software differ markedly. Most academics
-work on a proprietary platform, use proprietary software for research
-and teaching, and share information with colleagues and students in
-proprietary, even obfuscated, data formats. Contrary to the academic
-ethic, proprietary software licenses restrict access to information:
-preventing users from learning how a program works internally
-(``reverse engineering''), limiting the number of users who may run a
-piece of software, and forbidding users from running (or sometimes
-even installing) a purchased copy on multiple machines.
-
-Restrictions on use aside, if one cannot examine a program's source
-code, one cannot fully trust the output, any more than one can trust
-(for purposes of scientific publication) results of a commercial
-testing lab.
-
-\texicomment
-\noindent$\phantom{.}$\hfil\vbox{\hrule width 4in}\hfil
-\texicommentend
-
-Consider a hypothetical future world in which scholarly results are
-disseminated like software. Instead of subscriptions, journals
-sell licenses granting readership to a specified number of
-individuals. Photocopying an article for a class or research seminar
-constitutes ``piracy'', though if the institution has purchased a
-sufficiently large site license the teacher or speaker may bring the
-physical volume to class and project the pages onto a screen.
-
-Of course, reading an article is scarcely enlightening. Mathematics
-papers contain only the statements of theorems. Merely opening the
-journal binds the reader to a lengthy legal agreement, stating that
-theorems be used only for specific purposes and threatening serious
-legal consequences for attempting to discover the author's proofs.
-
-The actions of a single student, employee, or faculty member can
-expose an institution to a costly ``journal audit'' from the
-Mathematical Society of America (MSA), with the institution
-responsible for legal costs if the audit reveals license violations
-anywhere in the organization.
-
-Mathematicians who long for the Old Days when papers contained
-proofs and were shared freely are dismissed as idealistic cranks
-or labeled anti-business communists. Common knowledge asserts the
-obvious superiority of proprietary journals, and the necessity of
-licenses for keeping mathematicians gainfully employed.
-
-\texicomment
-\noindent$\phantom{.}$\hfil\vbox{\hrule width 4in}\hfil
-\texicommentend
-
-Back in our world, some vendors have attempted to placate opponents of
-closed source with ``shared source'' licenses, under which one may
-sign a non-disclosure agreement and subsequently examine source
-code. In the future world analogy, a shared source agreement would
-allow journal licensees to sign an NDA, then see the proofs of
-theorems. Readers could thereby correct errors in proofs (benefitting
-the publisher by improving the reliability of the journal), but would
-be legally forbidden from using the ideas elsewhere (denying benefit
-to other mathematicians).
-
-Legally and conceptually codifying software as a commodity ignores a
-fundamental reality: Like an idea or recipe, software can be copied
-without loss of the original. The perception of ``theft'' by copying
-arises from an artificial belief that software has an owner who must
-be monetarily compensated each time a person acquires a copy. The
-nature of software does not enforce the ``sale'' model in the way
-services and physical commodities do. It therefore seems
-philosophically inappropriate to treat software as a commodity, and
-perilous to conform the legal system to the enforcement of such a
-model.
-
-At its best, software enhances our productivity and
-creativity. Sharing software, like sharing ideas, benefits a larger
-number of people without detriment to existing users. I hope this
-modest program is, in conjunction with the much larger efforts of
-others (especially Donald Knuth, Richard Stallman, and the many people
-who have contributed to the authorship of \LaTeX\ and its packages),
-useful to you in your mathematical work.
-
-Please visit the Free Software Foundation, at
-\URL{www.fsf.org}, to learn more about free software and how
-you can contribute to its development and adoption.
-\index{Free software|)}
-
-\texinfoappendix{B}{Acknowledgments}
-
-\ePiX\ is built on the work of many people (unfortunately, most of
-whom I am unaware). The following people have contributed, sometimes
-unknowingly but always generously:
-
-\paragraph{Infrastructure} Donald Knuth, Conrad Kwok, Leslie Lamport,
-Tim Morgan, Piet van~Oostrum, Sunil Podar, Richard Stallman, Till
-Tantau, Herbert Voss, Timothy van~Zandt
-
-\paragraph{Enhancements} Jay Belanger, Robin Blume-Kohout, Julian
-Gilbey, Marcus Hanwell, Yvon Henel, Svend Daug{\aa}rd Pedersen, Andrew
-Sterian
-
-\paragraph{Porting and packaging} Julian Gilbey (Debian); Tsuguru Kato
-(FreeBSD); Markus Dittrich, Danny van Dyk, Christian Faulhammer,
-Olivier Fisette, Chris Gianelloni, Michael Hanselmann, Marcus Hanwell,
-David Holm, Peter Johanson, Patrick Kursawe, Tobias Scherbaum, Markus
-Ullmann (Gentoo); Guido Gonzato (RPM); Rene Rebe (T2)
-
-\paragraph{Debugging, advice, and other assistance} Jay Belanger,
-Felipe Paulo Guazzi Bergo, Karl Berry, Robin Blume-Kohout, Patrick
-Cousot, Stephen Gibson, Julian Gilbey, Dov Grobgeld, Bob Grover, Jim
-Hefferon, Jacques L'helgoual, Yvon Henel, Hartmut Henkel, Herng-Jeng
-Jou, Walter Kehowski, Kevin McCormick, Ross Moore, Thorsten Riess,
-Alan Sill, Neel Smith, Michael Somos, Andrew Sterian, Ryszard Tanas,
-Kai Trukenmueller, Torbjorn Vik, Wenguang Wang, Gabe Weaver, Mariusz
-Wodzicki
-
-\texicomment
-\begin{thebibliography}{9}
-%
-\bibitem{Cline} Marshall Cline, \emph{\CXX\ FAQ Lite}, \\
- \URL{http://www.parashift.com/c++-faq-lite/}
-%
-\bibitem{xcolor} Uwe Kern, \emph{Extending \LaTeX's color facilities:
- the \code{xcolor} package}, white paper, Jan.~21, 2007
-%
-\bibitem{KnR} Brian Kernighan and Dennis Ritchie, \emph{The \code{C}
- Programming Language}, Second Ed., Prentice-Hall Software Series,
- 1988
-%
-\bibitem{GNUC} Sandra Loosemore, Richard M. Stallman, et.\ al.,
- \emph{The GNU \code{C}~Library Reference Manual}, GNU Press,
- 2004
-%
-\bibitem{Prata} Stephen Prata, \emph{\CXX\ Primer Plus}, Sams, 2002
-%
-\bibitem{R} Keith Reckdahl, \emph{Using Imported Graphics in
- \LaTeX2e}, Version~2.0, white paper, Dec.~15, 1997
-%
-\bibitem{GNUCoding} Richard M. Stallman, et.\ al., \emph{The GNU
- Coding Standards}, \\
- \URL{http://www.gnu.org/prep/standards/}
-%
-\bibitem{S} Bjarne Stroustrup, \emph{The \CXX\ Programming Language},
- Special Ed., Addison-Wesley, 1997
-%
-\bibitem{Z} Timothy van~Zandt, \emph{PSTricks: PostScript Macros for
- Generic \TeX}, Version~0.93a, white paper, Mar.~12, 1993
-%
-\end{thebibliography}
-
-\clearpage
-
-\printindex
-
-\end{document}
-
-\texicommentend
diff --git a/graphics/epix/doc/marker.eepic b/graphics/epix/doc/marker.eepic
deleted file mode 100644
index 5ee5923a3b..0000000000
--- a/graphics/epix/doc/marker.eepic
+++ /dev/null
@@ -1,39 +0,0 @@
-%% Generated from marker.xp on Tue Jan 4 15:32:18 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [0,5] x [0,1]
-%% Actual size: 3.75in x 1in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{0.25in}
-\begin{picture}(15,4)(-0,-0)
-%% ---
-\put(0.664176,3.77861){{\tt{CIRC}}}
-\whiten\put(0,4){\makebox(0,0)[c]{{\circle{0.166044}}}}
-\put(4.41418,3.77861){{\tt{SPOT}}}
-\put(3.75,4){\makebox(0,0)[c]{{\circle*{0.249066}}}}
-\put(8.16418,3.77861){{\tt{RING}}}
-\put(7.5,4){\makebox(0,0)[c]{{\circle{0.249066}}}}
-\put(11.9142,3.77861){{\tt{DOT}}}
-\put(11.25,4){\makebox(0,0)[c]{{\circle*{0.166044}}}}
-\put(15.6642,3.77861){{\tt{DDOT}}}
-\put(15,4){\makebox(0,0)[c]{{\circle*{0.110696}}}}
-\put(0.664176,1.77861){{\tt{PLUS}}}
-\put(0,2){\makebox(0,0)[c]{+}}
-\put(4.41418,1.77861){{\tt{OPLUS}}}
-\put(3.75,2){\makebox(0,0)[c]{$\oplus$}}
-\put(8.16418,1.77861){{\tt{TIMES}}}
-\put(7.5,2){\makebox(0,0)[c]{$\times$}}
-\put(11.9142,1.77861){{\tt{OTIMES}}}
-\put(11.25,2){\makebox(0,0)[c]{$\otimes$}}
-\put(0.664176,-0.221392){{\tt{DIAMOND}}}
-\put(0,0){\makebox(0,0)[c]{$\diamond$}}
-\put(4.41418,-0.221392){{\tt{UP}}}
-\put(3.75,0){\makebox(0,0)[c]{$\bigtriangleup$}}
-\put(8.16418,-0.221392){{\tt{DOWN}}}
-\put(7.5,0){\makebox(0,0)[c]{$\bigtriangledown$}}
-\put(11.9142,-0.221392){{\tt{BOX}}}
-\put(11.25,0){\makebox(0,0)[c]{\rule{3pt}{3pt}}}
-\put(15.6642,-0.221392){{\tt{BBOX}}}
-\put(15,0){\makebox(0,0)[c]{\rule{2pt}{2pt}}}
-\end{picture}
diff --git a/graphics/epix/doc/marker.xp b/graphics/epix/doc/marker.xp
deleted file mode 100644
index f1569c1476..0000000000
--- a/graphics/epix/doc/marker.xp
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*-ePiX-*- */
-/* marker.c -- types of marker */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- unitlength("0.25in");
- picture(P(15,4));
- bounding_box(P(0,0), P(5,1));
- // offset(P(-1,0));
-
- begin();
-
- double x1 = x_min;
- double x2 = x_min + x_size/4;
- double x3 = x_min + 2*x_size/4;
- double x4 = x_min + 3*x_size/4;
- double x5 = x_max;
-
- double y1 = y_min;
- double y2 = y_min + y_size/2;
- double y3 = y_max;
-
- label(P(x1,y3), P(12,-4), "{\\tt{CIRC}}");
- circ(P(x1,y3));
-
- label(P(x2,y3), P(12,-4), "{\\tt{SPOT}}");
- spot(P(x2,y3));
-
- label(P(x3,y3), P(12,-4), "{\\tt{RING}}");
- ring(P(x3,y3));
-
- label(P(x4,y3), P(12,-4), "{\\tt{DOT}}");
- dot(P(x4,y3));
-
- label(P(x5,y3), P(12,-4), "{\\tt{DDOT}}");
- ddot(P(x5,y3));
-
- label(P(x1,y2), P(12,-4), "{\\tt{PLUS}}");
- marker(P(x1,y2), PLUS);
-
- label(P(x2,y2), P(12,-4), "{\\tt{OPLUS}}");
- marker(P(x2,y2), OPLUS);
-
- label(P(x3,y2), P(12,-4), "{\\tt{TIMES}}");
- marker(P(x3,y2), TIMES);
-
- label(P(x4,y2), P(12,-4), "{\\tt{OTIMES}}");
- marker(P(x4,y2), OTIMES);
-
- label(P(x1,y1), P(12,-4), "{\\tt{DIAMOND}}");
- marker(P(x1,y1), DIAMOND);
-
- label(P(x2,y1), P(12,-4), "{\\tt{UP}}");
- marker(P(x2,y1),UP);
-
- label(P(x3,y1), P(12,-4), "{\\tt{DOWN}}");
- marker(P(x3,y1), DOWN);
-
- label(P(x4,y1), P(12,-4), "{\\tt{BOX}}");
- marker(P(x4,y1), BOX);
-
- label(P(x5,y1), P(12,-4), "{\\tt{BBOX}}");
- marker(P(x5,y1), BBOX);
-
- end();
-}
diff --git a/graphics/epix/doc/my_code.cc b/graphics/epix/doc/my_code.cc
deleted file mode 100644
index b7365fa63c..0000000000
--- a/graphics/epix/doc/my_code.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-/* my_code.cc */
-#include "my_code.h"
-using namespace ePiX;
-
-namespace Mine {
- double lorentz_norm(P arg)
- {
- double x=arg.x1(), y=arg.x2(), z=arg.x3(); // extract coords
- return -x*x + y*y + z*z;
- }
- bool spacelike(P arg)
- {
- return (lorentz_norm(arg) > 0);
- }
-} // end of namespace
diff --git a/graphics/epix/doc/my_code.h b/graphics/epix/doc/my_code.h
deleted file mode 100644
index 229e80dbf4..0000000000
--- a/graphics/epix/doc/my_code.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* my_code.h */
-#include <cmath> // standard library math header
-#include "epix.h" // ePiX header
-using ePiX::P;
-
-namespace Mine { // to avoid name conflicts
- // functions for special relativity
- double lorentz_norm(P);
- bool spacelike(P);
-} // end of namespace
diff --git a/graphics/epix/doc/objects.eepic b/graphics/epix/doc/objects.eepic
deleted file mode 100644
index 9b17600895..0000000000
--- a/graphics/epix/doc/objects.eepic
+++ /dev/null
@@ -1,412 +0,0 @@
-%% Generated from objects.xp on Thu Jun 28 14:55:45 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [0,5] x [0,2]
-%% Actual size: 3.75 x 1.5in
-%% Figure offset: left by 0in, down by 0in
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\xdefinecolor{rgb_e5e5e5}{rgb}{0.898039,0.898039,0.898039}
-\xdefinecolor{rgb_ffffff}{rgb}{1,1,1}
-\setlength{\unitlength}{1in}
-\begin{picture}(3.75,1.5)(-0,-0)
-\path(0.675,0.75)(2.325,0.75)(1.5,1.125)(0.675,0.75)
-%%
-\path(3.1875,1.125)(3.18724,1.13481)(3.18647,1.1446)
- (3.18519,1.15433)(3.1834,1.16398)(3.18111,1.17353)(3.17832,1.18294)
- (3.17505,1.19219)(3.17129,1.20126)(3.16706,1.21012)
- (3.16238,1.21875)(3.15725,1.22712)(3.15169,1.23521)(3.14571,1.243)
- (3.13934,1.25046)(3.13258,1.25758)(3.12546,1.26434)(3.118,1.27071)
- (3.11021,1.27669)(3.10212,1.28225)(3.09375,1.28738)
- (3.08512,1.29206)(3.07626,1.29629)(3.06719,1.30005)
- (3.05794,1.30332)(3.04853,1.30611)(3.03898,1.3084)(3.02933,1.31019)
- (3.0196,1.31147)(3.00981,1.31224)(3,1.3125)(2.99019,1.31224)
- (2.9804,1.31147)(2.97067,1.31019)(2.96102,1.3084)(2.95147,1.30611)
- (2.94206,1.30332)(2.93281,1.30005)(2.92374,1.29629)
- (2.91488,1.29206)(2.90625,1.28738)(2.89788,1.28225)
- (2.88979,1.27669)(2.882,1.27071)(2.87454,1.26434)(2.86742,1.25758)
- (2.86066,1.25046)(2.85429,1.243)(2.84831,1.23521)(2.84275,1.22712)
- (2.83762,1.21875)(2.83294,1.21012)(2.82871,1.20126)
- (2.82495,1.19219)(2.82168,1.18294)(2.81889,1.17353)(2.8166,1.16398)
- (2.81481,1.15433)(2.81353,1.1446)(2.81276,1.13481)(2.8125,1.125)
- (2.81276,1.11519)(2.81353,1.1054)(2.81481,1.09567)(2.8166,1.08602)
- (2.81889,1.07647)(2.82168,1.06706)(2.82495,1.05781)
- (2.82871,1.04874)(2.83294,1.03988)(2.83762,1.03125)
- (2.84275,1.02288)(2.84831,1.01479)(2.85429,1.007)(2.86066,0.999538)
- (2.86742,0.992417)(2.87454,0.98566)(2.882,0.979285)
- (2.88979,0.973309)(2.89788,0.967749)(2.90625,0.96262)
- (2.91488,0.957936)(2.92374,0.95371)(2.93281,0.949954)
- (2.94206,0.946677)(2.95147,0.943889)(2.96102,0.941597)
- (2.97067,0.939808)(2.9804,0.938527)(2.99019,0.937757)(3,0.9375)
- (3.00981,0.937757)(3.0196,0.938527)(3.02933,0.939808)
- (3.03898,0.941597)(3.04853,0.943889)(3.05794,0.946677)
- (3.06719,0.949954)(3.07626,0.95371)(3.08512,0.957936)
- (3.09375,0.96262)(3.10212,0.967749)(3.11021,0.973309)
- (3.118,0.979285)(3.12546,0.98566)(3.13258,0.992417)
- (3.13934,0.999538)(3.14571,1.007)(3.15169,1.01479)(3.15725,1.02288)
- (3.16238,1.03125)(3.16706,1.03988)(3.17129,1.04874)
- (3.17505,1.05781)(3.17832,1.06706)(3.18111,1.07647)(3.1834,1.08602)
- (3.18519,1.09567)(3.18647,1.1054)(3.18724,1.11519)(3.1875,1.125)
-%%
-\path(0.75,0)(2.25,0)(2.25,0.75)(0.75,0.75)(0.75,0)
-%%
-\color{rgb_e5e5e5}%
-\path(2.025,0.00550459)(1.725,0.00550459)
-\path(2.025,0.0110092)(1.725,0.0110092)
-\path(2.025,0.0165138)(1.725,0.0165138)
-\path(2.025,0.0220183)(1.725,0.0220183)
-\path(2.025,0.0275229)(1.725,0.0275229)
-\path(2.025,0.0330275)(1.725,0.0330275)
-\path(2.025,0.0385321)(1.725,0.0385321)
-\path(2.025,0.0440367)(1.725,0.0440367)
-\path(2.025,0.0495413)(1.725,0.0495413)
-\path(2.025,0.0550459)(1.725,0.0550459)
-\path(2.025,0.0605505)(1.725,0.0605505)
-\path(2.025,0.066055)(1.725,0.066055)
-\path(2.025,0.0715596)(1.725,0.0715596)
-\path(2.025,0.0770642)(1.725,0.0770642)
-\path(2.025,0.0825688)(1.725,0.0825688)
-\path(2.025,0.0880734)(1.725,0.0880734)
-\path(2.025,0.093578)(1.725,0.093578)
-\path(2.025,0.0990826)(1.725,0.0990826)
-\path(2.025,0.104587)(1.725,0.104587)
-\path(2.025,0.110092)(1.725,0.110092)
-\path(2.025,0.115596)(1.725,0.115596)
-\path(2.025,0.121101)(1.725,0.121101)
-\path(2.025,0.126606)(1.725,0.126606)
-\path(2.025,0.13211)(1.725,0.13211)
-\path(2.025,0.137615)(1.725,0.137615)
-\path(2.025,0.143119)(1.725,0.143119)
-\path(2.025,0.148624)(1.725,0.148624)
-\path(2.025,0.154128)(1.725,0.154128)
-\path(2.025,0.159633)(1.725,0.159633)
-\path(2.025,0.165138)(1.725,0.165138)
-\path(2.025,0.170642)(1.725,0.170642)
-\path(2.025,0.176147)(1.725,0.176147)
-\path(2.025,0.181651)(1.725,0.181651)
-\path(2.025,0.187156)(1.725,0.187156)
-\path(2.025,0.192661)(1.725,0.192661)
-\path(2.025,0.198165)(1.725,0.198165)
-\path(2.025,0.20367)(1.725,0.20367)
-\path(2.025,0.209174)(1.725,0.209174)
-\path(2.025,0.214679)(1.725,0.214679)
-\path(2.025,0.220183)(1.725,0.220183)
-\path(2.025,0.225688)(1.725,0.225688)
-\path(2.025,0.231193)(1.725,0.231193)
-\path(2.025,0.236697)(1.725,0.236697)
-\path(2.025,0.242202)(1.725,0.242202)
-\path(2.025,0.247706)(1.725,0.247706)
-\path(2.025,0.253211)(1.725,0.253211)
-\path(2.025,0.258716)(1.725,0.258716)
-\path(2.025,0.26422)(1.725,0.26422)
-\path(2.025,0.269725)(1.725,0.269725)
-\path(2.025,0.275229)(1.725,0.275229)
-\path(2.025,0.280734)(1.725,0.280734)
-\path(2.025,0.286239)(1.725,0.286239)
-\path(2.025,0.291743)(1.725,0.291743)
-\path(2.025,0.297248)(1.725,0.297248)
-\path(2.025,0.302752)(1.725,0.302752)
-\path(2.025,0.308257)(1.725,0.308257)
-\path(2.025,0.313761)(1.725,0.313761)
-\path(2.025,0.319266)(1.725,0.319266)
-\path(2.025,0.324771)(1.725,0.324771)
-\path(2.025,0.330275)(1.725,0.330275)
-\path(2.025,0.33578)(1.725,0.33578)
-\path(2.025,0.341284)(1.725,0.341284)
-\path(2.025,0.346789)(1.725,0.346789)
-\path(2.025,0.352294)(1.725,0.352294)
-\path(2.025,0.357798)(1.725,0.357798)
-\path(2.025,0.363303)(1.725,0.363303)
-\path(2.025,0.368807)(1.725,0.368807)
-\path(2.025,0.374312)(1.725,0.374312)
-\path(2.025,0.379817)(1.725,0.379817)
-\path(2.025,0.385321)(1.725,0.385321)
-\path(2.025,0.390826)(1.725,0.390826)
-\path(2.025,0.39633)(1.725,0.39633)
-\path(2.025,0.401835)(1.725,0.401835)
-\path(2.025,0.407339)(1.725,0.407339)
-\path(2.025,0.412844)(1.725,0.412844)
-\path(2.025,0.418349)(1.725,0.418349)
-\path(2.025,0.423853)(1.725,0.423853)
-\path(2.025,0.429358)(1.725,0.429358)
-\path(2.025,0.434862)(1.725,0.434862)
-\path(2.025,0.440367)(1.725,0.440367)
-\path(2.025,0.445872)(1.725,0.445872)
-\path(2.025,0.451376)(1.725,0.451376)
-\path(2.025,0.456881)(1.725,0.456881)
-\path(2.025,0.462385)(1.725,0.462385)
-\path(2.025,0.46789)(1.725,0.46789)
-\path(2.025,0.473394)(1.725,0.473394)
-\path(2.025,0.478899)(1.725,0.478899)
-\path(2.025,0.484404)(1.725,0.484404)
-\path(2.025,0.489908)(1.725,0.489908)
-\path(2.025,0.495413)(1.725,0.495413)
-\path(2.025,0.500917)(1.725,0.500917)
-\path(2.025,0.506422)(1.725,0.506422)
-\path(2.025,0.511927)(1.725,0.511927)
-\path(2.025,0.517431)(1.725,0.517431)
-\path(2.025,0.522936)(1.725,0.522936)
-\path(2.025,0.52844)(1.725,0.52844)
-\path(2.025,0.533945)(1.725,0.533945)
-\path(2.025,0.53945)(1.725,0.53945)
-\path(2.025,0.544954)(1.725,0.544954)
-\path(2.025,0.550459)(1.725,0.550459)
-\path(2.025,0.555963)(1.725,0.555963)
-\path(2.025,0.561468)(1.725,0.561468)
-\path(2.025,0.566972)(1.725,0.566972)
-\path(2.025,0.572477)(1.725,0.572477)
-\path(2.025,0.577982)(1.725,0.577982)
-\path(2.025,0.583486)(1.725,0.583486)
-\path(2.025,0.588991)(1.725,0.588991)
-\path(2.025,0.594495)(1.725,0.594495)
-\path(2.01955,0.6)(2.01955,0)
-\path(2.01409,0.6)(2.01409,0)
-\path(2.00864,0.6)(2.00864,0)
-\path(2.00318,0.6)(2.00318,0)
-\path(1.99773,0.6)(1.99773,0)
-\path(1.99227,0.6)(1.99227,0)
-\path(1.98682,0.6)(1.98682,0)
-\path(1.98136,0.6)(1.98136,0)
-\path(1.97591,0.6)(1.97591,0)
-\path(1.97045,0.6)(1.97045,0)
-\path(1.965,0.6)(1.965,0)
-\path(1.95955,0.6)(1.95955,0)
-\path(1.95409,0.6)(1.95409,0)
-\path(1.94864,0.6)(1.94864,0)
-\path(1.94318,0.6)(1.94318,0)
-\path(1.93773,0.6)(1.93773,0)
-\path(1.93227,0.6)(1.93227,0)
-\path(1.92682,0.6)(1.92682,0)
-\path(1.92136,0.6)(1.92136,0)
-\path(1.91591,0.6)(1.91591,0)
-\path(1.91045,0.6)(1.91045,0)
-\path(1.905,0.6)(1.905,0)
-\path(1.89955,0.6)(1.89955,0)
-\path(1.89409,0.6)(1.89409,0)
-\path(1.88864,0.6)(1.88864,0)
-\path(1.88318,0.6)(1.88318,0)
-\path(1.87773,0.6)(1.87773,0)
-\path(1.87227,0.6)(1.87227,0)
-\path(1.86682,0.6)(1.86682,0)
-\path(1.86136,0.6)(1.86136,0)
-\path(1.85591,0.6)(1.85591,0)
-\path(1.85045,0.6)(1.85045,0)
-\path(1.845,0.6)(1.845,0)
-\path(1.83955,0.6)(1.83955,0)
-\path(1.83409,0.6)(1.83409,0)
-\path(1.82864,0.6)(1.82864,0)
-\path(1.82318,0.6)(1.82318,0)
-\path(1.81773,0.6)(1.81773,0)
-\path(1.81227,0.6)(1.81227,0)
-\path(1.80682,0.6)(1.80682,0)
-\path(1.80136,0.6)(1.80136,0)
-\path(1.79591,0.6)(1.79591,0)
-\path(1.79045,0.6)(1.79045,0)
-\path(1.785,0.6)(1.785,0)
-\path(1.77955,0.6)(1.77955,0)
-\path(1.77409,0.6)(1.77409,0)
-\path(1.76864,0.6)(1.76864,0)
-\path(1.76318,0.6)(1.76318,0)
-\path(1.75773,0.6)(1.75773,0)
-\path(1.75227,0.6)(1.75227,0)
-\path(1.74682,0.6)(1.74682,0)
-\path(1.74136,0.6)(1.74136,0)
-\path(1.73591,0.6)(1.73591,0)
-\path(1.73045,0.6)(1.73045,0)
-\color{rgb_000000}%
-\path(1.725,0)(2.025,0)(2.025,0.6)(1.725,0.6)(1.725,0)
-%%
-\color{rgb_ffffff}%
-\path(1.4941,0.45)(1.5,0.434819)
-\path(1.48819,0.45)(1.5,0.419637)
-\path(1.48229,0.45)(1.5,0.404456)
-\path(1.47639,0.45)(1.5,0.389275)
-\path(1.47049,0.45)(1.5,0.374093)
-\path(1.46458,0.45)(1.5,0.358912)
-\path(1.45868,0.45)(1.5,0.343731)
-\path(1.45278,0.45)(1.5,0.32855)
-\path(1.44688,0.45)(1.5,0.313368)
-\path(1.44097,0.45)(1.5,0.298187)
-\path(1.43507,0.45)(1.5,0.283006)
-\path(1.42917,0.45)(1.5,0.267824)
-\path(1.42327,0.45)(1.5,0.252643)
-\path(1.41736,0.45)(1.5,0.237462)
-\path(1.41146,0.45)(1.5,0.22228)
-\path(1.40556,0.45)(1.5,0.207099)
-\path(1.39966,0.45)(1.5,0.191918)
-\path(1.39375,0.45)(1.5,0.176737)
-\path(1.38785,0.45)(1.5,0.161555)
-\path(1.38195,0.45)(1.49859,0.15)
-\path(1.37605,0.45)(1.49269,0.15)
-\path(1.37014,0.45)(1.48679,0.15)
-\path(1.36424,0.45)(1.48088,0.15)
-\path(1.35834,0.45)(1.47498,0.15)
-\path(1.35244,0.45)(1.46908,0.15)
-\path(1.34653,0.45)(1.46318,0.15)
-\path(1.34063,0.45)(1.45727,0.15)
-\path(1.33473,0.45)(1.45137,0.15)
-\path(1.32883,0.45)(1.44547,0.15)
-\path(1.32292,0.45)(1.43957,0.15)
-\path(1.31702,0.45)(1.43366,0.15)
-\path(1.31112,0.45)(1.42776,0.15)
-\path(1.30522,0.45)(1.42186,0.15)
-\path(1.29931,0.45)(1.41596,0.15)
-\path(1.29341,0.45)(1.41005,0.15)
-\path(1.28751,0.45)(1.40415,0.15)
-\path(1.28161,0.45)(1.39825,0.15)
-\path(1.2757,0.45)(1.39235,0.15)
-\path(1.2698,0.45)(1.38644,0.15)
-\path(1.2639,0.45)(1.38054,0.15)
-\path(1.258,0.45)(1.37464,0.15)
-\path(1.25209,0.45)(1.36874,0.15)
-\path(1.24619,0.45)(1.36283,0.15)
-\path(1.24029,0.45)(1.35693,0.15)
-\path(1.23439,0.45)(1.35103,0.15)
-\path(1.22848,0.45)(1.34513,0.15)
-\path(1.22258,0.45)(1.33922,0.15)
-\path(1.21668,0.45)(1.33332,0.15)
-\path(1.21078,0.45)(1.32742,0.15)
-\path(1.20487,0.45)(1.32152,0.15)
-\path(1.19897,0.45)(1.31561,0.15)
-\path(1.19307,0.45)(1.30971,0.15)
-\path(1.18717,0.45)(1.30381,0.15)
-\path(1.18126,0.45)(1.29791,0.15)
-\path(1.17536,0.45)(1.292,0.15)
-\path(1.16946,0.45)(1.2861,0.15)
-\path(1.16356,0.45)(1.2802,0.15)
-\path(1.15765,0.45)(1.2743,0.15)
-\path(1.15175,0.45)(1.26839,0.15)
-\path(1.14585,0.45)(1.26249,0.15)
-\path(1.13995,0.45)(1.25659,0.15)
-\path(1.13404,0.45)(1.25069,0.15)
-\path(1.12814,0.45)(1.24478,0.15)
-\path(1.12224,0.45)(1.23888,0.15)
-\path(1.11634,0.45)(1.23298,0.15)
-\path(1.11043,0.45)(1.22708,0.15)
-\path(1.10453,0.45)(1.22117,0.15)
-\path(1.09863,0.45)(1.21527,0.15)
-\path(1.09273,0.45)(1.20937,0.15)
-\path(1.08682,0.45)(1.20347,0.15)
-\path(1.08092,0.45)(1.19756,0.15)
-\path(1.07502,0.45)(1.19166,0.15)
-\path(1.06912,0.45)(1.18576,0.15)
-\path(1.06321,0.45)(1.17986,0.15)
-\path(1.05731,0.45)(1.17395,0.15)
-\path(1.05141,0.45)(1.16805,0.15)
-\path(1.05,0.438445)(1.16215,0.15)
-\path(1.05,0.423263)(1.15625,0.15)
-\path(1.05,0.408082)(1.15034,0.15)
-\path(1.05,0.392901)(1.14444,0.15)
-\path(1.05,0.37772)(1.13854,0.15)
-\path(1.05,0.362538)(1.13264,0.15)
-\path(1.05,0.347357)(1.12673,0.15)
-\path(1.05,0.332176)(1.12083,0.15)
-\path(1.05,0.316994)(1.11493,0.15)
-\path(1.05,0.301813)(1.10903,0.15)
-\path(1.05,0.286632)(1.10312,0.15)
-\path(1.05,0.27145)(1.09722,0.15)
-\path(1.05,0.256269)(1.09132,0.15)
-\path(1.05,0.241088)(1.08542,0.15)
-\path(1.05,0.225907)(1.07951,0.15)
-\path(1.05,0.210725)(1.07361,0.15)
-\path(1.05,0.195544)(1.06771,0.15)
-\path(1.05,0.180363)(1.06181,0.15)
-\path(1.05,0.165181)(1.0559,0.15)
-\path(1.05,0.444063)(1.06527,0.45)
-\path(1.05,0.438126)(1.08054,0.45)
-\path(1.05,0.432189)(1.09581,0.45)
-\path(1.05,0.426252)(1.11108,0.45)
-\path(1.05,0.420315)(1.12635,0.45)
-\path(1.05,0.414378)(1.14162,0.45)
-\path(1.05,0.408441)(1.15689,0.45)
-\path(1.05,0.402504)(1.17216,0.45)
-\path(1.05,0.396567)(1.18743,0.45)
-\path(1.05,0.39063)(1.2027,0.45)
-\path(1.05,0.384693)(1.21797,0.45)
-\path(1.05,0.378756)(1.23324,0.45)
-\path(1.05,0.372819)(1.24851,0.45)
-\path(1.05,0.366882)(1.26378,0.45)
-\path(1.05,0.360945)(1.27905,0.45)
-\path(1.05,0.355008)(1.29432,0.45)
-\path(1.05,0.349071)(1.30959,0.45)
-\path(1.05,0.343134)(1.32486,0.45)
-\path(1.05,0.337197)(1.34013,0.45)
-\path(1.05,0.33126)(1.3554,0.45)
-\path(1.05,0.325323)(1.37067,0.45)
-\path(1.05,0.319386)(1.38594,0.45)
-\path(1.05,0.313449)(1.40121,0.45)
-\path(1.05,0.307512)(1.41648,0.45)
-\path(1.05,0.301575)(1.43175,0.45)
-\path(1.05,0.295638)(1.44702,0.45)
-\path(1.05,0.289701)(1.46229,0.45)
-\path(1.05,0.283764)(1.47756,0.45)
-\path(1.05,0.277827)(1.49283,0.45)
-\path(1.05,0.27189)(1.5,0.44685)
-\path(1.05,0.265953)(1.5,0.440913)
-\path(1.05,0.260016)(1.5,0.434976)
-\path(1.05,0.254079)(1.5,0.429039)
-\path(1.05,0.248142)(1.5,0.423102)
-\path(1.05,0.242205)(1.5,0.417165)
-\path(1.05,0.236268)(1.5,0.411228)
-\path(1.05,0.230331)(1.5,0.405291)
-\path(1.05,0.224394)(1.5,0.399354)
-\path(1.05,0.218457)(1.5,0.393417)
-\path(1.05,0.21252)(1.5,0.38748)
-\path(1.05,0.206583)(1.5,0.381543)
-\path(1.05,0.200646)(1.5,0.375606)
-\path(1.05,0.194709)(1.5,0.369669)
-\path(1.05,0.188772)(1.5,0.363732)
-\path(1.05,0.182835)(1.5,0.357795)
-\path(1.05,0.176898)(1.5,0.351858)
-\path(1.05,0.170961)(1.5,0.345921)
-\path(1.05,0.165024)(1.5,0.339984)
-\path(1.05,0.159087)(1.5,0.334047)
-\path(1.05,0.15315)(1.5,0.32811)
-\path(1.05717,0.15)(1.5,0.322173)
-\path(1.07244,0.15)(1.5,0.316236)
-\path(1.08771,0.15)(1.5,0.310299)
-\path(1.10298,0.15)(1.5,0.304362)
-\path(1.11825,0.15)(1.5,0.298425)
-\path(1.13352,0.15)(1.5,0.292488)
-\path(1.14879,0.15)(1.5,0.286551)
-\path(1.16406,0.15)(1.5,0.280614)
-\path(1.17933,0.15)(1.5,0.274677)
-\path(1.1946,0.15)(1.5,0.26874)
-\path(1.20987,0.15)(1.5,0.262803)
-\path(1.22514,0.15)(1.5,0.256866)
-\path(1.24041,0.15)(1.5,0.250929)
-\path(1.25568,0.15)(1.5,0.244992)
-\path(1.27095,0.15)(1.5,0.239055)
-\path(1.28622,0.15)(1.5,0.233118)
-\path(1.30149,0.15)(1.5,0.227181)
-\path(1.31676,0.15)(1.5,0.221244)
-\path(1.33203,0.15)(1.5,0.215307)
-\path(1.3473,0.15)(1.5,0.20937)
-\path(1.36257,0.15)(1.5,0.203433)
-\path(1.37784,0.15)(1.5,0.197496)
-\path(1.39311,0.15)(1.5,0.191559)
-\path(1.40838,0.15)(1.5,0.185622)
-\path(1.42365,0.15)(1.5,0.179685)
-\path(1.43892,0.15)(1.5,0.173748)
-\path(1.45419,0.15)(1.5,0.167811)
-\path(1.46946,0.15)(1.5,0.161874)
-\path(1.48473,0.15)(1.5,0.155937)
-\color{rgb_000000}%
-\path(1.05,0.15)(1.5,0.15)(1.5,0.45)(1.05,0.45)(1.05,0.15)
-%%
-\allinethickness{0.8pt}%
-\path(1.05,0.15)(1.05,0.45)
-%%
-\path(1.275,0.15)(1.275,0.45)
-%%
-\path(1.5,0.15)(1.5,0.45)
-%%
-\path(1.05,0.15)(1.5,0.15)
-%%
-\path(1.05,0.3)(1.5,0.3)
-%%
-\path(1.05,0.45)(1.5,0.45)
-%%
-\path(0,0)(3.75,0)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/objects.xp b/graphics/epix/doc/objects.xp
deleted file mode 100644
index d0828f0b94..0000000000
--- a/graphics/epix/doc/objects.xp
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- picture(P(0,0), P(5,2), "3.75 x 1.5in");
-
- begin();
-
- // roof
- triangle(P(0.9, 1), P(3.1, 1), P(2, 1.5)); // vertices
-
- // sun
- circle(P(4,1.5), 0.25); // center and radius
-
- // house
- rect(P(1,0), P(3,1)); // opposite corners
- // grid(P(1,0), P(3,1), 1, 10); // corners, numbers of subdivisions
-
- // door
- fill(Black(0.1));
- rect(P(2.3,0), P(2.7,0.8)); // corners
-
- fill(White());
- // window
- rect(P(1.4,0.2), P(2, 0.6));
- bold();
- grid(P(1.4,0.2), P(2, 0.6), 2, 2);
-
- line(P(xmin(),0), P(xmax(),0));
- end();
-}
diff --git a/graphics/epix/doc/pathstyle.eepic b/graphics/epix/doc/pathstyle.eepic
deleted file mode 100644
index 531523bf45..0000000000
--- a/graphics/epix/doc/pathstyle.eepic
+++ /dev/null
@@ -1,225 +0,0 @@
-%% Generated from pathstyle.xp on Tue Jul 17 15:01:22 EDT 2007 by
-%% ePiX-1.1.8
-%%
-%% Cartesian bounding box: [0,4] x [0,4]
-%% Actual size: 4 x 1in
-%% Figure offset: left by 0in, down by 0in
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\setlength{\unitlength}{1in}
-\begin{picture}(4,1)(-0,-0)
-\path(0,1)(0.0394737,1)
-\path(0.118421,1)(0.157895,1)
-\path(0.157895,1)(0.197368,1)
-\path(0.276316,1)(0.315789,1)
-\path(0.315789,1)(0.355263,1)
-\path(0.434211,1)(0.473684,1)
-\path(0.473684,1)(0.513158,1)
-\path(0.592105,1)(0.631579,1)
-\path(0.631579,1)(0.671053,1)
-\path(0.75,1)(0.789474,1)
-\path(0.789474,1)(0.828947,1)
-\path(0.907895,1)(0.947368,1)
-\path(0.947368,1)(0.986842,1)
-\path(1.06579,1)(1.10526,1)
-\path(1.10526,1)(1.14474,1)
-\path(1.22368,1)(1.26316,1)
-\path(1.26316,1)(1.30263,1)
-\path(1.38158,1)(1.42105,1)
-\path(1.42105,1)(1.46053,1)
-\path(1.53947,1)(1.57895,1)
-\path(1.57895,1)(1.61842,1)
-\path(1.69737,1)(1.73684,1)
-\path(1.73684,1)(1.77632,1)
-\path(1.85526,1)(1.89474,1)
-\path(1.89474,1)(1.93421,1)
-\path(2.01316,1)(2.05263,1)
-\path(2.05263,1)(2.09211,1)
-\path(2.17105,1)(2.21053,1)
-\path(2.21053,1)(2.25,1)
-\path(2.32895,1)(2.36842,1)
-\path(2.36842,1)(2.40789,1)
-\path(2.48684,1)(2.52632,1)
-\path(2.52632,1)(2.56579,1)
-\path(2.64474,1)(2.68421,1)
-\path(2.68421,1)(2.72368,1)
-\path(2.80263,1)(2.84211,1)
-\path(2.84211,1)(2.88158,1)
-\path(2.96053,1)(3,1)
-\put(3.05535,1){\makebox(0,0)[l]{\code{line\_style("-\ \ -")}}}
-\path(0,0.75)(0.0263158,0.75)
-\path(0.131579,0.75)(0.157895,0.75)
-\path(0.157895,0.75)(0.184211,0.75)
-\path(0.289474,0.75)(0.315789,0.75)
-\path(0.315789,0.75)(0.342105,0.75)
-\path(0.447368,0.75)(0.473684,0.75)
-\path(0.473684,0.75)(0.5,0.75)
-\path(0.605263,0.75)(0.631579,0.75)
-\path(0.631579,0.75)(0.657895,0.75)
-\path(0.763158,0.75)(0.789474,0.75)
-\path(0.789474,0.75)(0.815789,0.75)
-\path(0.921053,0.75)(0.947368,0.75)
-\path(0.947368,0.75)(0.973684,0.75)
-\path(1.07895,0.75)(1.10526,0.75)
-\path(1.10526,0.75)(1.13158,0.75)
-\path(1.23684,0.75)(1.26316,0.75)
-\path(1.26316,0.75)(1.28947,0.75)
-\path(1.39474,0.75)(1.42105,0.75)
-\path(1.42105,0.75)(1.44737,0.75)
-\path(1.55263,0.75)(1.57895,0.75)
-\path(1.57895,0.75)(1.60526,0.75)
-\path(1.71053,0.75)(1.73684,0.75)
-\path(1.73684,0.75)(1.76316,0.75)
-\path(1.86842,0.75)(1.89474,0.75)
-\path(1.89474,0.75)(1.92105,0.75)
-\path(2.02632,0.75)(2.05263,0.75)
-\path(2.05263,0.75)(2.07895,0.75)
-\path(2.18421,0.75)(2.21053,0.75)
-\path(2.21053,0.75)(2.23684,0.75)
-\path(2.34211,0.75)(2.36842,0.75)
-\path(2.36842,0.75)(2.39474,0.75)
-\path(2.5,0.75)(2.52632,0.75)
-\path(2.52632,0.75)(2.55263,0.75)
-\path(2.65789,0.75)(2.68421,0.75)
-\path(2.68421,0.75)(2.71053,0.75)
-\path(2.81579,0.75)(2.84211,0.75)
-\path(2.84211,0.75)(2.86842,0.75)
-\path(2.97368,0.75)(3,0.75)
-\put(3.05535,0.75){\makebox(0,0)[l]{\code{line\_style("-\ \ \ \ -")}}}
-\put(0.0789474,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(0.236842,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(0.394737,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(0.552632,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(0.710526,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(0.868421,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.02632,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.18421,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.34211,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.5,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.65789,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.81579,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(1.97368,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(2.13158,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(2.28947,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(2.44737,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(2.60526,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(2.76316,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(2.92105,0.5){\makebox(0,0){\circle{0.0055348}}}
-\put(3.05535,0.5){\makebox(0,0)[l]{\code{line\_style(" .\ ")}}}
-\path(0,0.25)(0.0315789,0.25)
-\put(0.0789474,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(0.126316,0.25)(0.157895,0.25)
-\path(0.157895,0.25)(0.189474,0.25)
-\put(0.236842,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(0.284211,0.25)(0.315789,0.25)
-\path(0.315789,0.25)(0.347368,0.25)
-\put(0.394737,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(0.442105,0.25)(0.473684,0.25)
-\path(0.473684,0.25)(0.505263,0.25)
-\put(0.552632,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(0.6,0.25)(0.631579,0.25)
-\path(0.631579,0.25)(0.663158,0.25)
-\put(0.710526,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(0.757895,0.25)(0.789474,0.25)
-\path(0.789474,0.25)(0.821053,0.25)
-\put(0.868421,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(0.915789,0.25)(0.947368,0.25)
-\path(0.947368,0.25)(0.978947,0.25)
-\put(1.02632,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(1.07368,0.25)(1.10526,0.25)
-\path(1.10526,0.25)(1.13684,0.25)
-\put(1.18421,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(1.23158,0.25)(1.26316,0.25)
-\path(1.26316,0.25)(1.29474,0.25)
-\put(1.34211,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(1.38947,0.25)(1.42105,0.25)
-\path(1.42105,0.25)(1.45263,0.25)
-\put(1.5,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(1.54737,0.25)(1.57895,0.25)
-\path(1.57895,0.25)(1.61053,0.25)
-\put(1.65789,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(1.70526,0.25)(1.73684,0.25)
-\path(1.73684,0.25)(1.76842,0.25)
-\put(1.81579,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(1.86316,0.25)(1.89474,0.25)
-\path(1.89474,0.25)(1.92632,0.25)
-\put(1.97368,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.02105,0.25)(2.05263,0.25)
-\path(2.05263,0.25)(2.08421,0.25)
-\put(2.13158,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.17895,0.25)(2.21053,0.25)
-\path(2.21053,0.25)(2.24211,0.25)
-\put(2.28947,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.33684,0.25)(2.36842,0.25)
-\path(2.36842,0.25)(2.4,0.25)
-\put(2.44737,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.49474,0.25)(2.52632,0.25)
-\path(2.52632,0.25)(2.55789,0.25)
-\put(2.60526,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.65263,0.25)(2.68421,0.25)
-\path(2.68421,0.25)(2.71579,0.25)
-\put(2.76316,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.81053,0.25)(2.84211,0.25)
-\path(2.84211,0.25)(2.87368,0.25)
-\put(2.92105,0.25){\makebox(0,0){\circle{0.0055348}}}
-\path(2.96842,0.25)(3,0.25)
-\put(3.05535,0.25){\makebox(0,0)[l]{\code{line\_style("-\ .\ -")}}}
-\put(0.0157895,0){\makebox(0,0){\circle{0.0055348}}}
-\path(0.0631579,0)(0.0947368,0)
-\put(0.142105,0){\makebox(0,0){\circle{0.0055348}}}
-\put(0.173684,0){\makebox(0,0){\circle{0.0055348}}}
-\path(0.221053,0)(0.252632,0)
-\put(0.3,0){\makebox(0,0){\circle{0.0055348}}}
-\put(0.331579,0){\makebox(0,0){\circle{0.0055348}}}
-\path(0.378947,0)(0.410526,0)
-\put(0.457895,0){\makebox(0,0){\circle{0.0055348}}}
-\put(0.489474,0){\makebox(0,0){\circle{0.0055348}}}
-\path(0.536842,0)(0.568421,0)
-\put(0.615789,0){\makebox(0,0){\circle{0.0055348}}}
-\put(0.647368,0){\makebox(0,0){\circle{0.0055348}}}
-\path(0.694737,0)(0.726316,0)
-\put(0.773684,0){\makebox(0,0){\circle{0.0055348}}}
-\put(0.805263,0){\makebox(0,0){\circle{0.0055348}}}
-\path(0.852632,0)(0.884211,0)
-\put(0.931579,0){\makebox(0,0){\circle{0.0055348}}}
-\put(0.963158,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.01053,0)(1.04211,0)
-\put(1.08947,0){\makebox(0,0){\circle{0.0055348}}}
-\put(1.12105,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.16842,0)(1.2,0)
-\put(1.24737,0){\makebox(0,0){\circle{0.0055348}}}
-\put(1.27895,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.32632,0)(1.35789,0)
-\put(1.40526,0){\makebox(0,0){\circle{0.0055348}}}
-\put(1.43684,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.48421,0)(1.51579,0)
-\put(1.56316,0){\makebox(0,0){\circle{0.0055348}}}
-\put(1.59474,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.64211,0)(1.67368,0)
-\put(1.72105,0){\makebox(0,0){\circle{0.0055348}}}
-\put(1.75263,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.8,0)(1.83158,0)
-\put(1.87895,0){\makebox(0,0){\circle{0.0055348}}}
-\put(1.91053,0){\makebox(0,0){\circle{0.0055348}}}
-\path(1.95789,0)(1.98947,0)
-\put(2.03684,0){\makebox(0,0){\circle{0.0055348}}}
-\put(2.06842,0){\makebox(0,0){\circle{0.0055348}}}
-\path(2.11579,0)(2.14737,0)
-\put(2.19474,0){\makebox(0,0){\circle{0.0055348}}}
-\put(2.22632,0){\makebox(0,0){\circle{0.0055348}}}
-\path(2.27368,0)(2.30526,0)
-\put(2.35263,0){\makebox(0,0){\circle{0.0055348}}}
-\put(2.38421,0){\makebox(0,0){\circle{0.0055348}}}
-\path(2.43158,0)(2.46316,0)
-\put(2.51053,0){\makebox(0,0){\circle{0.0055348}}}
-\put(2.54211,0){\makebox(0,0){\circle{0.0055348}}}
-\path(2.58947,0)(2.62105,0)
-\put(2.66842,0){\makebox(0,0){\circle{0.0055348}}}
-\put(2.7,0){\makebox(0,0){\circle{0.0055348}}}
-\path(2.74737,0)(2.77895,0)
-\put(2.82632,0){\makebox(0,0){\circle{0.0055348}}}
-\put(2.85789,0){\makebox(0,0){\circle{0.0055348}}}
-\path(2.90526,0)(2.93684,0)
-\put(2.98421,0){\makebox(0,0){\circle{0.0055348}}}
-\put(3.05535,0){\makebox(0,0)[l]{\code{line\_style(".\ - .")}}}
-\end{picture}
diff --git a/graphics/epix/doc/pathstyle.xp b/graphics/epix/doc/pathstyle.xp
deleted file mode 100644
index 47fe65e5e1..0000000000
--- a/graphics/epix/doc/pathstyle.xp
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-void dash_sample(double ht, std::string pattern)
-{
- line_style(pattern);
- line(P(0,ht), P(3,ht));
- label(P(3, ht), P(4,0), "\\code{line\\_style(\""+pattern+"\")}", r);
-}
-
-int main() {
- picture(P(0,0), P(4,4), "4x1in");
-
- begin();
-
- dash_sample(4, "-\\ \\ -");
- dash_sample(3, "-\\ \\ \\ \\ -");
- dash_sample(2, " .\\ ");
- dash_sample(1, "-\\ .\\ -");
- dash_sample(0, ".\\ - .");
-
- end();
-}
diff --git a/graphics/epix/doc/plot_a.eepic b/graphics/epix/doc/plot_a.eepic
deleted file mode 100644
index bf0e6e787a..0000000000
--- a/graphics/epix/doc/plot_a.eepic
+++ /dev/null
@@ -1,95 +0,0 @@
-%% Generated from plot_a.xp on Tue Jul 3 00:20:34 EDT 2007 by
-%% ePiX-1.0.25
-%%
-%% Cartesian bounding box: [-1,1] x [-1,1]
-%% Actual size: 1.5in x 1.5in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(1.5,1.5)(-0,-0)
-%% ---
-\path(0.75,0.75)(0.709403,0.666178)(0.666551,0.577699)(0.62125,0.484165)
- (0.573284,0.385128)(0.522412,0.280089)(0.46836,0.168485)
-\path(0.75,0.75)(0.749023,0.665974)(0.74798,0.585752)(0.746855,0.509046)
- (0.745629,0.435587)(0.744277,0.365124)(0.742767,0.297412)
-\path(0.75,0.75)(0.788831,0.67297)(0.830368,0.605884)(0.875481,0.548895)
- (0.925286,0.502471)(0.981254,0.467495)(1.04539,0.445422)
-\path(0.75,0.75)(0.824541,0.685618)(0.903621,0.632501)(0.988754,0.590989)
- (1.08184,0.561798)(1.18533,0.546138)(1.30251,0.545884)
-\path(0.75,0.75)(0.852385,0.702504)(0.959101,0.662234)(1.07131,0.62933)
- (1.19037,0.604066)(1.31791,0.586882)(1.45594,0.578419)
-\path(0.75,0.75)(0.869635,0.722554)(0.991406,0.694618)(1.11537,0.666178)
- (1.24159,0.637221)(1.37013,0.607733)(1.50104,0.577699)
-\path(0.75,0.75)(0.874862,0.74491)(0.998815,0.731016)(1.12092,0.708519)
- (1.24029,0.677746)(1.35609,0.639142)(1.46759,0.593248)
-\path(0.75,0.75)(0.867939,0.768582)(0.982511,0.77261)(1.09249,0.76265)
- (1.19682,0.739556)(1.29466,0.704421)(1.38541,0.658506)
-\path(0.75,0.75)(0.849863,0.792084)(0.945428,0.818543)(1.03584,0.830052)
- (1.12046,0.827563)(1.1988,0.812243)(1.27061,0.785404)
-\path(0.75,0.75)(0.822527,0.813279)(0.891435,0.864939)(0.956495,0.905455)
- (1.01755,0.935412)(1.07452,0.955475)(1.12739,0.966366)
-\path(0.75,0.75)(0.788515,0.829523)(0.825104,0.905071)(0.859908,0.976933)
- (0.893055,1.04537)(0.924661,1.11063)(0.954829,1.17292)
-\path(0.75,0.75)(0.750924,0.838139)(0.751807,0.93073)(0.752656,1.02814)
- (0.753481,1.13079)(0.754288,1.23912)(0.755083,1.35363)
-\path(0.75,0.75)(0.713174,0.837085)(0.677771,0.934566)(0.643292,1.043)
- (0.609295,1.16316)(0.575368,1.29605)(0.541119,1.44293)
-\path(0.75,0.75)(0.678756,0.825621)(0.609753,0.912727)(0.542063,1.01182)
- (0.47484,1.12367)(0.40728,1.24929)(0.33859,1.39004)
-\path(0.75,0.75)(0.650938,0.804706)(0.554306,0.866713)(0.459296,0.936218)
- (0.365158,1.01352)(0.27118,1.09902)(0.176669,1.19323)
-\path(0.75,0.75)(0.632446,0.776969)(0.516918,0.803473)(0.403366,0.829523)
- (0.291738,0.855133)(0.181986,0.880311)(0.0740632,0.905071)
-\path(0.75,0.75)(0.625191,0.746217)(0.501394,0.73363)(0.379543,0.712441)
- (0.260522,0.68298)(0.145146,0.645689)(0.0341447,0.601107)
-\path(0.75,0.75)(0.630074,0.71664)(0.509637,0.668642)(0.390202,0.606516)
- (0.273258,0.531127)(0.160206,0.443655)(0.0523099,0.345536)
-\path(0.75,0.75)(0.646869,0.69196)(0.541651,0.618018)(0.435639,0.528643)
- (0.330189,0.424716)(0.22666,0.307508)(0.126363,0.178624)
-\path(0.75,0.75)(0.674167,0.674761)(0.59542,0.587383)(0.514234,0.48787)
- (0.431158,0.376427)(0.346809,0.253475)(0.261856,0.119648)
-\path(0.75,0.75)(0.709403,0.666178)(0.666551,0.577699)(0.62125,0.484165)
- (0.573284,0.385128)(0.522412,0.280089)(0.46836,0.168485)
-\path(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)
-\path(0.709403,0.666178)(0.749023,0.665974)(0.788831,0.67297)
- (0.824541,0.685618)(0.852385,0.702504)(0.869635,0.722554)
- (0.874862,0.74491)(0.867939,0.768582)(0.849863,0.792084)
- (0.822527,0.813279)(0.788515,0.829523)(0.750924,0.838139)
- (0.713174,0.837085)(0.678756,0.825621)(0.650938,0.804706)
- (0.632446,0.776969)(0.625191,0.746217)(0.630074,0.71664)
- (0.646869,0.69196)(0.674167,0.674761)(0.709403,0.666178)
-\path(0.666551,0.577699)(0.74798,0.585752)(0.830368,0.605884)
- (0.903621,0.632501)(0.959101,0.662234)(0.991406,0.694618)
- (0.998815,0.731016)(0.982511,0.77261)(0.945428,0.818543)
- (0.891435,0.864939)(0.825104,0.905071)(0.751807,0.93073)
- (0.677771,0.934566)(0.609753,0.912727)(0.554306,0.866713)
- (0.516918,0.803473)(0.501394,0.73363)(0.509637,0.668642)
- (0.541651,0.618018)(0.59542,0.587383)(0.666551,0.577699)
-\path(0.62125,0.484165)(0.746855,0.509046)(0.875481,0.548895)
- (0.988754,0.590989)(1.07131,0.62933)(1.11537,0.666178)(1.12092,0.708519)
- (1.09249,0.76265)(1.03584,0.830052)(0.956495,0.905455)(0.859908,0.976933)
- (0.752656,1.02814)(0.643292,1.043)(0.542063,1.01182)(0.459296,0.936218)
- (0.403366,0.829523)(0.379543,0.712441)(0.390202,0.606516)
- (0.435639,0.528643)(0.514234,0.48787)(0.62125,0.484165)
-\path(0.573284,0.385128)(0.745629,0.435587)(0.925286,0.502471)
- (1.08184,0.561798)(1.19037,0.604066)(1.24159,0.637221)(1.24029,0.677746)
- (1.19682,0.739556)(1.12046,0.827563)(1.01755,0.935412)(0.893055,1.04537)
- (0.753481,1.13079)(0.609295,1.16316)(0.47484,1.12367)(0.365158,1.01352)
- (0.291738,0.855133)(0.260522,0.68298)(0.273258,0.531127)
- (0.330189,0.424716)(0.431158,0.376427)(0.573284,0.385128)
-\path(0.522412,0.280089)(0.744277,0.365124)(0.981254,0.467495)
- (1.18533,0.546138)(1.31791,0.586882)(1.37013,0.607733)(1.35609,0.639142)
- (1.29466,0.704421)(1.1988,0.812243)(1.07452,0.955475)(0.924661,1.11063)
- (0.754288,1.23912)(0.575368,1.29605)(0.40728,1.24929)(0.27118,1.09902)
- (0.181986,0.880311)(0.145146,0.645689)(0.160206,0.443655)
- (0.22666,0.307508)(0.346809,0.253475)(0.522412,0.280089)
-\path(0.46836,0.168485)(0.742767,0.297412)(1.04539,0.445422)
- (1.30251,0.545884)(1.45594,0.578419)(1.50104,0.577699)(1.46759,0.593248)
- (1.38541,0.658506)(1.27061,0.785404)(1.12739,0.966366)(0.954829,1.17292)
- (0.755083,1.35363)(0.541119,1.44293)(0.33859,1.39004)(0.176669,1.19323)
- (0.0740632,0.905071)(0.0341447,0.601107)(0.0523099,0.345536)
- (0.126363,0.178624)(0.261856,0.119648)(0.46836,0.168485)
-\end{picture}
diff --git a/graphics/epix/doc/plot_a.xp b/graphics/epix/doc/plot_a.xp
deleted file mode 100644
index 4304d501d3..0000000000
--- a/graphics/epix/doc/plot_a.xp
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-P f(double u, double v)
-{
- double x=u*Cos(v), y=u*Sin(v);
- // return P(x, y, 0.25*x*(x*x-3*y*y));
- return P(x, y, x*y);
-}
-
-domain R(P(0,0), P(1,1), mesh(6, 20), mesh(6, 20));
-
-int main()
-{
- bounding_box(P(-1,-1),P(1,1));
- unitlength("1in");
- picture(1.5,1.5);
-
- begin();
- revolutions();
-
- camera.at(P(3, 1, 3));
-
- plot(f, R);
-
- end();
-}
diff --git a/graphics/epix/doc/plot_b.eepic b/graphics/epix/doc/plot_b.eepic
deleted file mode 100644
index cf847bd346..0000000000
--- a/graphics/epix/doc/plot_b.eepic
+++ /dev/null
@@ -1,225 +0,0 @@
-%% Generated from plot_b.xp on Tue Jul 3 00:20:46 EDT 2007 by
-%% ePiX-1.0.25
-%%
-%% Cartesian bounding box: [-1,1] x [-1,1]
-%% Actual size: 1.5in x 1.5in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(1.5,1.5)(-0,-0)
-%% ---
-\path(0.75,0.75)(0.729972,0.708648)(0.709403,0.666178)(0.688271,0.622545)
- (0.666551,0.577699)(0.64422,0.531591)(0.62125,0.484165)
- (0.597615,0.435364)(0.573284,0.385128)(0.548228,0.333393)
- (0.522412,0.280089)(0.495802,0.225146)(0.46836,0.168485)
-\path(0.75,0.75)(0.749519,0.707493)(0.749023,0.665974)(0.74851,0.625406)
- (0.74798,0.585752)(0.747429,0.546976)(0.746855,0.509046)
- (0.746256,0.471927)(0.745629,0.435587)(0.744971,0.399997)
- (0.744277,0.365124)(0.743544,0.330939)(0.742767,0.297412)
-\path(0.75,0.75)(0.769125,0.71024)(0.788831,0.67297)(0.809212,0.638181)
- (0.830368,0.605884)(0.852415,0.576107)(0.875481,0.548895)
- (0.899715,0.524319)(0.925286,0.502471)(0.952389,0.483477)
- (0.981254,0.467495)(1.01215,0.454726)(1.04539,0.445422)
-\path(0.75,0.75)(0.786786,0.716409)(0.824541,0.685618)(0.863426,0.657638)
- (0.903621,0.632501)(0.945323,0.610259)(0.988754,0.590989)
- (1.03416,0.574791)(1.08184,0.561798)(1.1321,0.552178)(1.18533,0.546138)
- (1.24196,0.543935)(1.30251,0.545884)
-\path(0.75,0.75)(0.800717,0.725352)(0.852385,0.702504)(0.905133,0.68146)
- (0.959101,0.662234)(1.01444,0.644848)(1.07131,0.62933)(1.12989,0.615719)
- (1.19037,0.604066)(1.25297,0.594429)(1.31791,0.586882)(1.38547,0.581511)
- (1.45594,0.578419)
-\path(0.75,0.75)(0.809554,0.736337)(0.869635,0.722554)(0.93025,0.708648)
- (0.991406,0.694618)(1.05311,0.680462)(1.11537,0.666178)(1.1782,0.651765)
- (1.24159,0.637221)(1.30556,0.622545)(1.37013,0.607733)(1.43528,0.592786)
- (1.50104,0.577699)
-\path(0.75,0.75)(0.812485,0.748563)(0.874862,0.74491)(0.937011,0.739054)
- (0.998815,0.731016)(1.06016,0.720825)(1.12092,0.708519)(1.181,0.694142)
- (1.24029,0.677746)(1.29868,0.659392)(1.35609,0.639142)(1.41242,0.617069)
- (1.46759,0.593248)
-\path(0.75,0.75)(0.809307,0.761132)(0.867939,0.768582)(0.925727,0.772387)
- (0.982511,0.77261)(1.03814,0.769331)(1.09249,0.76265)(1.14541,0.752681)
- (1.19682,0.739556)(1.24659,0.723418)(1.29466,0.704421)(1.34095,0.682727)
- (1.38541,0.658506)
-\path(0.75,0.75)(0.800408,0.773024)(0.849863,0.792084)(0.89824,0.807232)
- (0.945428,0.818543)(0.991325,0.826113)(1.03584,0.830052)
- (1.07891,0.830488)(1.12046,0.827563)(1.16044,0.821428)(1.1988,0.812243)
- (1.23553,0.800178)(1.27061,0.785404)
-\path(0.75,0.75)(0.786698,0.783117)(0.822527,0.813279)(0.857449,0.840534)
- (0.891435,0.864939)(0.924458,0.886556)(0.956495,0.905455)
- (0.987531,0.921714)(1.01755,0.935412)(1.04655,0.946636)(1.07452,0.955475)
- (1.10147,0.962021)(1.12739,0.966366)
-\path(0.75,0.75)(0.769508,0.790278)(0.788515,0.829523)(0.807041,0.867775)
- (0.825104,0.905071)(0.842721,0.941445)(0.859908,0.976933)
- (0.876682,1.01156)(0.893055,1.04537)(0.909044,1.07838)(0.924661,1.11063)
- (0.939918,1.14213)(0.954829,1.17292)
-\path(0.75,0.75)(0.750468,0.793535)(0.750924,0.838139)(0.75137,0.883856)
- (0.751807,0.93073)(0.752235,0.978809)(0.752656,1.02814)(0.753071,1.07878)
- (0.753481,1.13079)(0.753886,1.18421)(0.754288,1.23912)(0.754687,1.29556)
- (0.755083,1.35363)
-\path(0.75,0.75)(0.731375,0.79227)(0.713174,0.837085)(0.695327,0.884497)
- (0.677771,0.934566)(0.660445,0.98737)(0.643292,1.043)(0.62626,1.10155)
- (0.609295,1.16316)(0.592347,1.22794)(0.575368,1.29605)(0.558309,1.36765)
- (0.541119,1.44293)
-\path(0.75,0.75)(0.714035,0.786396)(0.678756,0.825621)(0.644034,0.867713)
- (0.609753,0.912727)(0.575798,0.960735)(0.542063,1.01182)
- (0.508444,1.06609)(0.47484,1.12367)(0.441152,1.18468)(0.40728,1.24929)
- (0.373126,1.31768)(0.33859,1.39004)
-\path(0.75,0.75)(0.700112,0.776448)(0.650938,0.804706)(0.60237,0.834787)
- (0.554306,0.866713)(0.506646,0.900512)(0.459296,0.936218)
- (0.412163,0.973871)(0.365158,1.01352)(0.318192,1.05521)(0.27118,1.09902)
- (0.224034,1.145)(0.176669,1.19323)
-\path(0.75,0.75)(0.690966,0.763543)(0.632446,0.776969)(0.574432,0.790278)
- (0.516918,0.803473)(0.459898,0.816554)(0.403366,0.829523)
- (0.347314,0.842382)(0.291738,0.855133)(0.23663,0.867775)
- (0.181986,0.880311)(0.127799,0.892743)(0.0740632,0.905071)
-\path(0.75,0.75)(0.687529,0.749216)(0.625191,0.746217)(0.563106,0.741014)
- (0.501394,0.73363)(0.440168,0.724093)(0.379543,0.712441)
- (0.319626,0.69872)(0.260522,0.68298)(0.202331,0.665282)
- (0.145146,0.645689)(0.089057,0.624272)(0.0341447,0.601107)
-\path(0.75,0.75)(0.690195,0.735167)(0.630074,0.71664)(0.569825,0.694447)
- (0.509637,0.668642)(0.4497,0.639299)(0.390202,0.606516)
- (0.331328,0.570413)(0.273258,0.531127)(0.216163,0.488817)
- (0.160206,0.443655)(0.105542,0.395829)(0.0523099,0.345536)
-\path(0.75,0.75)(0.698772,0.72298)(0.646869,0.69196)(0.594442,0.656957)
- (0.541651,0.618018)(0.488661,0.575214)(0.435639,0.528643)
- (0.382758,0.478428)(0.330189,0.424716)(0.2781,0.367679)(0.22666,0.307508)
- (0.176029,0.244413)(0.126363,0.178624)
-\path(0.75,0.75)(0.712474,0.713891)(0.674167,0.674761)(0.63513,0.632594)
- (0.59542,0.587383)(0.555099,0.539136)(0.514234,0.48787)
- (0.472895,0.433619)(0.431158,0.376427)(0.389102,0.316355)
- (0.346809,0.253475)(0.304364,0.187873)(0.261856,0.119648)
-\path(0.75,0.75)(0.729972,0.708648)(0.709403,0.666178)(0.688271,0.622545)
- (0.666551,0.577699)(0.64422,0.531591)(0.62125,0.484165)
- (0.597615,0.435364)(0.573284,0.385128)(0.548228,0.333393)
- (0.522412,0.280089)(0.495802,0.225146)(0.46836,0.168485)
-\path(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)(0.75,0.75)
- (0.75,0.75)
-\path(0.75,0.75)
-\path(0.709403,0.666178)(0.722321,0.665223)(0.73558,0.665171)
- (0.749023,0.665974)(0.762487,0.667581)(0.77581,0.669932)
- (0.788831,0.67297)(0.801393,0.676634)(0.813343,0.680868)
- (0.824541,0.685618)(0.834856,0.690836)(0.844172,0.696477)
- (0.852385,0.702504)(0.859411,0.708879)(0.865178,0.715573)
- (0.869635,0.722554)(0.872745,0.729792)(0.874488,0.737256)
- (0.874862,0.74491)(0.873876,0.752715)(0.871555,0.760624)
- (0.867939,0.768582)(0.863075,0.776527)(0.857026,0.784387)
- (0.849863,0.792084)(0.841664,0.799529)(0.83252,0.806627)
- (0.822527,0.813279)(0.811787,0.819381)(0.800411,0.82483)
- (0.788515,0.829523)(0.776218,0.833364)(0.763645,0.836262)
- (0.750924,0.838139)(0.738185,0.838931)(0.725558,0.83859)
- (0.713174,0.837085)(0.701162,0.83441)(0.689648,0.830577)
- (0.678756,0.825621)(0.668601,0.819601)(0.659294,0.812596)
- (0.650938,0.804706)(0.643624,0.796048)(0.637436,0.786754)
- (0.632446,0.776969)(0.628712,0.766846)(0.626283,0.756542)
- (0.625191,0.746217)(0.625457,0.736026)(0.627088,0.72612)
- (0.630074,0.71664)(0.634394,0.707713)(0.64001,0.699454)(0.646869,0.69196)
- (0.654905,0.685309)(0.664036,0.679562)(0.674167,0.674761)
- (0.685188,0.670929)(0.696978,0.668072)(0.709403,0.666178)
-\path(0.709403,0.666178)
-\path(0.666551,0.577699)(0.692974,0.578664)(0.720234,0.581422)
- (0.74798,0.585752)(0.775839,0.591423)(0.80343,0.598206)
- (0.830368,0.605884)(0.856279,0.614263)(0.880806,0.623178)
- (0.903621,0.632501)(0.924433,0.642145)(0.942994,0.65206)
- (0.959101,0.662234)(0.972601,0.672687)(0.98339,0.683461)
- (0.991406,0.694618)(0.996632,0.706222)(0.999085,0.718337)
- (0.998815,0.731016)(0.995896,0.74429)(0.990424,0.758164)
- (0.982511,0.77261)(0.972282,0.787565)(0.959873,0.802924)
- (0.945428,0.818543)(0.929098,0.834239)(0.911044,0.849789)
- (0.891435,0.864939)(0.870449,0.879406)(0.848272,0.892888)
- (0.825104,0.905071)(0.801155,0.915638)(0.776645,0.924286)
- (0.751807,0.93073)(0.726882,0.934719)(0.702119,0.936048)
- (0.677771,0.934566)(0.654093,0.930185)(0.631338,0.922887)
- (0.609753,0.912727)(0.589573,0.899834)(0.571022,0.884408)
- (0.554306,0.866713)(0.539611,0.847073)(0.527101,0.825857)
- (0.516918,0.803473)(0.509181,0.780348)(0.503983,0.756921)
- (0.501394,0.73363)(0.501461,0.710895)(0.504209,0.689112)
- (0.509637,0.668642)(0.517723,0.649801)(0.528419,0.632855)
- (0.541651,0.618018)(0.557321,0.605441)(0.575297,0.595218)
- (0.59542,0.587383)(0.617495,0.581912)(0.641293,0.578726)
- (0.666551,0.577699)
-\path(0.666551,0.577699)
-\path(0.62125,0.484165)(0.661714,0.489898)(0.703779,0.498369)
- (0.746855,0.509046)(0.790294,0.521379)(0.833406,0.534828)
- (0.875481,0.548895)(0.915825,0.563151)(0.953779,0.577259)
- (0.988754,0.590989)(1.02025,0.604228)(1.04786,0.616974)(1.07131,0.62933)
- (1.09041,0.641478)(1.10509,0.653667)(1.11537,0.666178)(1.12133,0.679307)
- (1.12312,0.693337)(1.12092,0.708519)(1.11493,0.725052)(1.10538,0.743075)
- (1.09249,0.76265)(1.07646,0.783756)(1.05751,0.806289)(1.03584,0.830052)
- (1.01166,0.854761)(0.985141,0.880045)(0.956495,0.905455)
- (0.925925,0.930468)(0.893649,0.954502)(0.859908,0.976933)
- (0.824965,0.997111)(0.789108,1.01439)(0.752656,1.02814)(0.715955,1.0378)
- (0.679371,1.04288)(0.643292,1.043)(0.608116,1.0379)(0.574243,1.02749)
- (0.542063,1.01182)(0.511952,0.991116)(0.484258,0.965743)
- (0.459296,0.936218)(0.437343,0.903175)(0.418635,0.867345)
- (0.403366,0.829523)(0.391688,0.790542)(0.383719,0.751241)
- (0.379543,0.712441)(0.379214,0.674923)(0.382764,0.639401)
- (0.390202,0.606516)(0.401519,0.576814)(0.416683,0.550743)
- (0.435639,0.528643)(0.458304,0.510741)(0.484558,0.497152)
- (0.514234,0.48787)(0.547111,0.48278)(0.582903,0.481654)(0.62125,0.484165)
-\path(0.62125,0.484165)
-\path(0.573284,0.385128)(0.628255,0.398429)(0.685992,0.415579)
- (0.745629,0.435587)(0.806153,0.457413)(0.866435,0.480025)
- (0.925286,0.502471)(0.981521,0.523945)(1.03403,0.543843)
- (1.08184,0.561798)(1.12417,0.577699)(1.16045,0.591675)(1.19037,0.604066)
- (1.21379,0.615372)(1.23079,0.626204)(1.24159,0.637221)(1.24651,0.649085)
- (1.24594,0.662413)(1.24029,0.677746)(1.22996,0.695523)(1.21536,0.716063)
- (1.19682,0.739556)(1.17465,0.766054)(1.14912,0.795468)(1.12046,0.827563)
- (1.08886,0.861958)(1.0545,0.89813)(1.01755,0.935412)(0.978193,0.973008)
- (0.936617,1.01)(0.893055,1.04537)(0.847784,1.07804)(0.80113,1.10688)
- (0.753481,1.13079)(0.705284,1.14872)(0.65704,1.15976)(0.609295,1.16316)
- (0.562623,1.15839)(0.517613,1.14522)(0.47484,1.12367)(0.434852,1.09408)
- (0.398146,1.05707)(0.365158,1.01352)(0.336248,0.964504)
- (0.311704,0.911264)(0.291738,0.855133)(0.276497,0.797481)
- (0.266074,0.739664)(0.260522,0.68298)(0.259863,0.628631)
- (0.264107,0.577699)(0.273258,0.531127)(0.287318,0.489709)
- (0.306294,0.454081)(0.330189,0.424716)(0.358995,0.401924)
- (0.392679,0.38584)(0.431158,0.376427)(0.474277,0.373467)
- (0.521781,0.37656)(0.573284,0.385128)
-\path(0.573284,0.385128)
-\path(0.522412,0.280089)(0.592255,0.303678)(0.666599,0.332557)
- (0.744277,0.365124)(0.823805,0.399632)(0.903434,0.434308)
- (0.981254,0.467495)(1.05533,0.497794)(1.12387,0.524191)(1.18533,0.546138)
- (1.23857,0.563575)(1.28285,0.576899)(1.31791,0.586882)(1.34384,0.594557)
- (1.36104,0.601102)(1.37013,0.607733)(1.37182,0.615613)(1.3669,0.625786)
- (1.35609,0.639142)(1.34008,0.656388)(1.31944,0.67804)(1.29466,0.704421)
- (1.26612,0.735658)(1.2341,0.771686)(1.1988,0.812243)(1.16038,0.856871)
- (1.11892,0.904905)(1.07452,0.955475)(1.02726,1.0075)(0.977251,1.05971)
- (0.924661,1.11063)(0.86973,1.15865)(0.812793,1.20206)(0.754288,1.23912)
- (0.694765,1.26811)(0.634877,1.28752)(0.575368,1.29605)(0.517045,1.29277)
- (0.460742,1.27718)(0.40728,1.24929)(0.35743,1.20959)(0.311875,1.15903)
- (0.27118,1.09902)(0.235783,1.03125)(0.205991,0.95767)(0.181986,0.880311)
- (0.163849,0.801232)(0.151584,0.722411)(0.145146,0.645689)
- (0.144472,0.572724)(0.149503,0.504968)(0.160206,0.443655)
- (0.17659,0.389804)(0.198709,0.344221)(0.22666,0.307508)
- (0.260573,0.280059)(0.300586,0.26206)(0.346809,0.253475)
- (0.39928,0.254024)(0.457909,0.263169)(0.522412,0.280089)
-\path(0.522412,0.280089)
-\path(0.46836,0.168485)(0.553304,0.204953)(0.645257,0.248719)
- (0.742767,0.297412)(0.843765,0.348317)(0.945636,0.398569)
- (1.04539,0.445422)(1.13995,0.486548)(1.22644,0.5203)(1.30251,0.545884)
- (1.36653,0.563399)(1.41769,0.573743)(1.45594,0.578419)(1.48186,0.579303)
- (1.49647,0.578408)(1.50104,0.577699)(1.49691,0.578964)(1.48538,0.583732)
- (1.46759,0.593248)(1.44451,0.60847)(1.41692,0.63008)(1.38541,0.658506)
- (1.35037,0.693935)(1.31206,0.736325)(1.27061,0.785404)(1.22604,0.840659)
- (1.17832,0.901326)(1.12739,0.966366)(1.07317,1.03445)(1.01563,1.10395)
- (0.954829,1.17292)(0.890909,1.23916)(0.824171,1.30025)(0.755083,1.35363)
- (0.684297,1.39674)(0.612645,1.42719)(0.541119,1.44293)(0.470828,1.44243)
- (0.402935,1.42483)(0.33859,1.39004)(0.278856,1.33875)(0.224644,1.27245)
- (0.176669,1.19323)(0.135426,1.10367)(0.101196,1.00663)
- (0.0740632,0.905071)(0.053964,0.801877)(0.0407306,0.699748)
- (0.0341447,0.601107)(0.0339864,0.508057)(0.0400764,0.422378)
- (0.0523099,0.345536)(0.0706802,0.278715)(0.0952918,0.222844)
- (0.126363,0.178624)(0.164213,0.146543)(0.209236,0.126873)
- (0.261856,0.119648)(0.322456,0.124628)(0.391288,0.141232)
- (0.46836,0.168485)
-\path(0.46836,0.168485)
-\end{picture}
diff --git a/graphics/epix/doc/plot_b.xp b/graphics/epix/doc/plot_b.xp
deleted file mode 100644
index f7560071e9..0000000000
--- a/graphics/epix/doc/plot_b.xp
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-P f(double u, double v)
-{
- double x=u*Cos(v), y=u*Sin(v);
- // return P(x, y, 0.25*x*(x*x-3*y*y));
- return P(x, y, x*y);
-}
-
-domain R(P(0,0), P(1,1), mesh(6, 20), mesh(12,60));
-
-int main()
-{
- bounding_box(P(-1,-1),P(1,1));
- unitlength("1in");
- picture(1.5,1.5);
-
- begin();
- revolutions();
-
- camera.at(P(3, 1, 3));
-
- plot(f, R);
-
- end();
-}
diff --git a/graphics/epix/doc/plotting.eepic b/graphics/epix/doc/plotting.eepic
deleted file mode 100644
index ca0911610b..0000000000
--- a/graphics/epix/doc/plotting.eepic
+++ /dev/null
@@ -1,82 +0,0 @@
-%% Generated from plotting.xp on Thu Jun 28 15:36:18 EDT 2007 by
-%% ePiX-1.1.6
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 5 x 1in
-%% Figure offset: left by 0in, down by 0in
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}
-\xdefinecolor{rgb_ff0000}{rgb}{1,0,0}
-\setlength{\unitlength}{1in}
-\begin{picture}(5,1)(-0,-0)
-\path(0,0.5)(5,0.5)
-%%
-\put(0,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(0.3125,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(0.625,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(0.9375,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(1.25,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(1.5625,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(1.875,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(2.1875,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(2.5,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(2.8125,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(3.125,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(3.4375,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(3.75,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(4.0625,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(4.375,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(4.6875,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\put(5,0.5){\makebox(0,0){$\rule{0.5pt}{4pt}$}}
-\path(2.5,0)(2.5,1)
-%%
-\put(2.5,0){\makebox(0,0){$\rule{4pt}{0.5pt}$}}
-\put(2.5,0.25){\makebox(0,0){$\rule{4pt}{0.5pt}$}}
-\put(2.5,0.5){\makebox(0,0){$\rule{4pt}{0.5pt}$}}
-\put(2.5,0.75){\makebox(0,0){$\rule{4pt}{0.5pt}$}}
-\put(2.5,1){\makebox(0,0){$\rule{4pt}{0.5pt}$}}
-\put(0,0.444652){\makebox(0,0)[t]{$-2$}}
-\put(1.25,0.444652){\makebox(0,0)[t]{$-1$}}
-\put(2.5,0.444652){\makebox(0,0)[t]{$\phantom{-}0$}}
-\put(3.75,0.444652){\makebox(0,0)[t]{$\phantom{-}1$}}
-\put(5,0.444652){\makebox(0,0)[t]{$\phantom{-}2$}}
-\color{rgb_ff0000}%
-\path(0,0.5)(0.0416667,0.527125)
- (0.0833333,0.559633)(0.125,0.601537)(0.166667,0.654364)
- (0.208333,0.716506)(0.25,0.783173)(0.291667,0.846957)
- (0.333333,0.898935)(0.375,0.930119)(0.416667,0.933013)
- (0.458333,0.902995)(0.5,0.839302)(0.541667,0.745419)
- (0.583333,0.628809)(0.625,0.5)(0.666667,0.371191)
- (0.708333,0.254581)(0.75,0.160698)(0.791667,0.0970055)
- (0.833333,0.0669873)(0.875,0.0698806)(0.916667,0.101065)
- (0.958333,0.153043)(1,0.216827)(1.04167,0.283494)(1.08333,0.345636)
- (1.125,0.398463)(1.16667,0.440367)(1.20833,0.472875)(1.25,0.5)
- (1.29167,0.527125)(1.33333,0.559633)(1.375,0.601537)
- (1.41667,0.654364)(1.45833,0.716506)(1.5,0.783173)
- (1.54167,0.846957)(1.58333,0.898935)(1.625,0.930119)
- (1.66667,0.933013)(1.70833,0.902995)(1.75,0.839302)
- (1.79167,0.745419)(1.83333,0.628809)(1.875,0.5)(1.91667,0.371191)
- (1.95833,0.254581)(2,0.160698)(2.04167,0.0970055)
- (2.08333,0.0669873)(2.125,0.0698806)(2.16667,0.101065)
- (2.20833,0.153043)(2.25,0.216827)(2.29167,0.283494)
- (2.33333,0.345636)(2.375,0.398463)(2.41667,0.440367)
- (2.45833,0.472875)(2.5,0.5)(2.54167,0.527125)(2.58333,0.559633)
- (2.625,0.601537)(2.66667,0.654364)(2.70833,0.716506)(2.75,0.783173)
- (2.79167,0.846957)(2.83333,0.898935)(2.875,0.930119)
- (2.91667,0.933013)(2.95833,0.902995)(3,0.839302)(3.04167,0.745419)
- (3.08333,0.628809)(3.125,0.5)(3.16667,0.371191)(3.20833,0.254581)
- (3.25,0.160698)(3.29167,0.0970055)(3.33333,0.0669873)
- (3.375,0.0698806)(3.41667,0.101065)(3.45833,0.153043)(3.5,0.216827)
- (3.54167,0.283494)(3.58333,0.345636)(3.625,0.398463)
- (3.66667,0.440367)(3.70833,0.472875)(3.75,0.5)(3.79167,0.527125)
- (3.83333,0.559633)(3.875,0.601537)(3.91667,0.654364)
- (3.95833,0.716506)(4,0.783173)(4.04167,0.846957)(4.08333,0.898935)
- (4.125,0.930119)(4.16667,0.933013)(4.20833,0.902995)(4.25,0.839302)
- (4.29167,0.745419)(4.33333,0.628809)(4.375,0.5)(4.41667,0.371191)
- (4.45833,0.254581)(4.5,0.160698)(4.54167,0.0970055)
- (4.58333,0.0669873)(4.625,0.0698806)(4.66667,0.101065)
- (4.70833,0.153043)(4.75,0.216827)(4.79167,0.283494)
- (4.83333,0.345636)(4.875,0.398463)(4.91667,0.440367)
- (4.95833,0.472875)(5,0.5)
-%%
-\end{picture}
diff --git a/graphics/epix/doc/plotting.xp b/graphics/epix/doc/plotting.xp
deleted file mode 100644
index ad310f7b02..0000000000
--- a/graphics/epix/doc/plotting.xp
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-double f(double x)
-{
- return 0.75*Sin(x) - 0.25*Sin(2*x);
-}
-
-int main()
-{
- picture(P(-2,-1),P(2,1), "5x1in");
-
- begin();
-
- h_axis(16);
- v_axis(4);
-
- h_axis_labels(4, P(0,-4), b); // shift labels down 4pt, align below
-
- revolutions(); // set angle units
- red();
- plot(f, xmin(), xmax(), 120); // use 120 intervals
-
- end();
-}
diff --git a/graphics/epix/doc/plotting2.eepic b/graphics/epix/doc/plotting2.eepic
deleted file mode 100644
index 5f56a743ec..0000000000
--- a/graphics/epix/doc/plotting2.eepic
+++ /dev/null
@@ -1,1766 +0,0 @@
-%% Generated from plotting2.xp on Tue Sep 25 00:02:47 EDT 2007 by
-%% ePiX-1.2.0
-%%
-%% Cartesian bounding box: [-1,1] x [-1,1]
-%% Actual size: 2 x 1in
-%% Figure offset: left by 0in, down by 0in
-%%
-%% usepackages pstricks
-%%
-\newcmykcolor{cmy_0000ff}{0 0 1 0}%
-\newcmykcolor{cmy_0101ff}{0 0 0.996078 0.00392157}%
-\newcmykcolor{cmy_0202ff}{0 0 0.992157 0.00784314}%
-\newcmykcolor{cmy_0303ff}{0 0 0.988235 0.0117647}%
-\newcmykcolor{cmy_0505ff}{0 0 0.980392 0.0196078}%
-\newcmykcolor{cmy_0606ff}{0 0 0.976471 0.0235294}%
-\newcmykcolor{cmy_0808ff}{0 0 0.968627 0.0313725}%
-\newcmykcolor{cmy_0909ff}{0 0 0.964706 0.0352941}%
-\newcmykcolor{cmy_0a0aff}{0 0 0.960784 0.0392157}%
-\newcmykcolor{cmy_0b0bff}{0 0 0.956863 0.0431373}%
-\newcmykcolor{cmy_0c0cff}{0 0 0.952941 0.0470588}%
-\newcmykcolor{cmy_0d0dff}{0 0 0.94902 0.0509804}%
-\newcmykcolor{cmy_0e0eff}{0 0 0.945098 0.054902}%
-\newcmykcolor{cmy_0f0fff}{0 0 0.941176 0.0588235}%
-\newcmykcolor{cmy_1111ff}{0 0 0.933333 0.0666667}%
-\newcmykcolor{cmy_1313ff}{0 0 0.92549 0.0745098}%
-\newcmykcolor{cmy_1515ff}{0 0 0.917647 0.0823529}%
-\newcmykcolor{cmy_1616ff}{0 0 0.913725 0.0862745}%
-\newcmykcolor{cmy_1818ff}{0 0 0.905882 0.0941176}%
-\newcmykcolor{cmy_1919ff}{0 0 0.901961 0.0980392}%
-\newcmykcolor{cmy_1b1bff}{0 0 0.894118 0.105882}%
-\newcmykcolor{cmy_1c1cff}{0 0 0.890196 0.109804}%
-\newcmykcolor{cmy_2020ff}{0 0 0.87451 0.12549}%
-\newcmykcolor{cmy_2323ff}{0 0 0.862745 0.137255}%
-\newcmykcolor{cmy_2525ff}{0 0 0.854902 0.145098}%
-\newcmykcolor{cmy_2626ff}{0 0 0.85098 0.14902}%
-\newcmykcolor{cmy_2828ff}{0 0 0.843137 0.156863}%
-\newcmykcolor{cmy_2929ff}{0 0 0.839216 0.160784}%
-\newcmykcolor{cmy_2a2aff}{0 0 0.835294 0.164706}%
-\newcmykcolor{cmy_2d2dff}{0 0 0.823529 0.176471}%
-\newcmykcolor{cmy_3030ff}{0 0 0.811765 0.188235}%
-\newcmykcolor{cmy_3131ff}{0 0 0.807843 0.192157}%
-\newcmykcolor{cmy_3232ff}{0 0 0.803922 0.196078}%
-\newcmykcolor{cmy_3434ff}{0 0 0.796078 0.203922}%
-\newcmykcolor{cmy_3535ff}{0 0 0.792157 0.207843}%
-\newcmykcolor{cmy_3636ff}{0 0 0.788235 0.211765}%
-\newcmykcolor{cmy_3737ff}{0 0 0.784314 0.215686}%
-\newcmykcolor{cmy_3838ff}{0 0 0.780392 0.219608}%
-\newcmykcolor{cmy_3939ff}{0 0 0.776471 0.223529}%
-\newcmykcolor{cmy_3a3aff}{0 0 0.772549 0.227451}%
-\newcmykcolor{cmy_3b3bff}{0 0 0.768627 0.231373}%
-\newcmykcolor{cmy_3c3cff}{0 0 0.764706 0.235294}%
-\newcmykcolor{cmy_3d3dff}{0 0 0.760784 0.239216}%
-\newcmykcolor{cmy_3e3eff}{0 0 0.756863 0.243137}%
-\newcmykcolor{cmy_3f3fff}{0 0 0.752941 0.247059}%
-\newcmykcolor{cmy_4141ff}{0 0 0.745098 0.254902}%
-\newcmykcolor{cmy_4343ff}{0 0 0.737255 0.262745}%
-\newcmykcolor{cmy_4545ff}{0 0 0.729412 0.270588}%
-\newcmykcolor{cmy_4848ff}{0 0 0.717647 0.282353}%
-\newcmykcolor{cmy_4949ff}{0 0 0.713725 0.286275}%
-\newcmykcolor{cmy_4a4aff}{0 0 0.709804 0.290196}%
-\newcmykcolor{cmy_4b4bff}{0 0 0.705882 0.294118}%
-\newcmykcolor{cmy_4c4cff}{0 0 0.701961 0.298039}%
-\newcmykcolor{cmy_4d4dff}{0 0 0.698039 0.301961}%
-\newcmykcolor{cmy_4e4eff}{0 0 0.694118 0.305882}%
-\newcmykcolor{cmy_4f4fff}{0 0 0.690196 0.309804}%
-\newcmykcolor{cmy_5050ff}{0 0 0.686275 0.313725}%
-\newcmykcolor{cmy_5151ff}{0 0 0.682353 0.317647}%
-\newcmykcolor{cmy_5252ff}{0 0 0.678431 0.321569}%
-\newcmykcolor{cmy_5353ff}{0 0 0.67451 0.32549}%
-\newcmykcolor{cmy_5454ff}{0 0 0.670588 0.329412}%
-\newcmykcolor{cmy_5555ff}{0 0 0.666667 0.333333}%
-\newcmykcolor{cmy_5656ff}{0 0 0.662745 0.337255}%
-\newcmykcolor{cmy_5757ff}{0 0 0.658824 0.341176}%
-\newcmykcolor{cmy_5858ff}{0 0 0.654902 0.345098}%
-\newcmykcolor{cmy_5959ff}{0 0 0.65098 0.34902}%
-\newcmykcolor{cmy_5a5aff}{0 0 0.647059 0.352941}%
-\newcmykcolor{cmy_5b5bff}{0 0 0.643137 0.356863}%
-\newcmykcolor{cmy_5c5cff}{0 0 0.639216 0.360784}%
-\newcmykcolor{cmy_5d5dff}{0 0 0.635294 0.364706}%
-\newcmykcolor{cmy_5e5eff}{0 0 0.631373 0.368627}%
-\newcmykcolor{cmy_5f5fff}{0 0 0.627451 0.372549}%
-\newcmykcolor{cmy_6060ff}{0 0 0.623529 0.376471}%
-\newcmykcolor{cmy_6161ff}{0 0 0.619608 0.380392}%
-\newcmykcolor{cmy_6262ff}{0 0 0.615686 0.384314}%
-\newcmykcolor{cmy_6363ff}{0 0 0.611765 0.388235}%
-\newcmykcolor{cmy_6464ff}{0 0 0.607843 0.392157}%
-\newcmykcolor{cmy_6565ff}{0 0 0.603922 0.396078}%
-\newcmykcolor{cmy_6666ff}{0 0 0.6 0.4}%
-\newcmykcolor{cmy_6767ff}{0 0 0.596078 0.403922}%
-\newcmykcolor{cmy_6868ff}{0 0 0.592157 0.407843}%
-\newcmykcolor{cmy_6969ff}{0 0 0.588235 0.411765}%
-\newcmykcolor{cmy_6a6aff}{0 0 0.584314 0.415686}%
-\newcmykcolor{cmy_6b6bff}{0 0 0.580392 0.419608}%
-\newcmykcolor{cmy_6c6cff}{0 0 0.576471 0.423529}%
-\newcmykcolor{cmy_6d6dff}{0 0 0.572549 0.427451}%
-\newcmykcolor{cmy_6e6eff}{0 0 0.568627 0.431373}%
-\newcmykcolor{cmy_6f6fff}{0 0 0.564706 0.435294}%
-\newcmykcolor{cmy_7070ff}{0 0 0.560784 0.439216}%
-\newcmykcolor{cmy_7171ff}{0 0 0.556863 0.443137}%
-\newcmykcolor{cmy_7272ff}{0 0 0.552941 0.447059}%
-\newcmykcolor{cmy_7373ff}{0 0 0.54902 0.45098}%
-\newcmykcolor{cmy_7474ff}{0 0 0.545098 0.454902}%
-\newcmykcolor{cmy_7575ff}{0 0 0.541176 0.458824}%
-\newcmykcolor{cmy_7676ff}{0 0 0.537255 0.462745}%
-\newcmykcolor{cmy_7777ff}{0 0 0.533333 0.466667}%
-\newcmykcolor{cmy_7878ff}{0 0 0.529412 0.470588}%
-\newcmykcolor{cmy_7979ff}{0 0 0.52549 0.47451}%
-\newcmykcolor{cmy_7a7aff}{0 0 0.521569 0.478431}%
-\newcmykcolor{cmy_7b7bff}{0 0 0.517647 0.482353}%
-\newcmykcolor{cmy_7c7cff}{0 0 0.513725 0.486275}%
-\newcmykcolor{cmy_7d7dff}{0 0 0.509804 0.490196}%
-\newcmykcolor{cmy_7e7eff}{0 0 0.505882 0.494118}%
-\newcmykcolor{cmy_7f7fff}{0 0 0.501961 0.498039}%
-\newrgbcolor{rgb_000000}{0 0 0}%
-\newrgbcolor{rgb_19197f}{0.0980392 0.0980392 0.498039}%
-\newrgbcolor{rgb_191980}{0.0980392 0.0980392 0.501961}%
-\newrgbcolor{rgb_191981}{0.0980392 0.0980392 0.505882}%
-\newrgbcolor{rgb_1a1a82}{0.101961 0.101961 0.509804}%
-\newrgbcolor{rgb_1a1a83}{0.101961 0.101961 0.513725}%
-\newrgbcolor{rgb_1a1a84}{0.101961 0.101961 0.517647}%
-\newrgbcolor{rgb_1a1a85}{0.101961 0.101961 0.521569}%
-\newrgbcolor{rgb_1a1a86}{0.101961 0.101961 0.52549}%
-\newrgbcolor{rgb_1b1b87}{0.105882 0.105882 0.529412}%
-\newrgbcolor{rgb_1b1b88}{0.105882 0.105882 0.533333}%
-\newrgbcolor{rgb_1b1b89}{0.105882 0.105882 0.537255}%
-\newrgbcolor{rgb_1b1b8a}{0.105882 0.105882 0.541176}%
-\newrgbcolor{rgb_1b1b8b}{0.105882 0.105882 0.545098}%
-\newrgbcolor{rgb_1c1c8c}{0.109804 0.109804 0.54902}%
-\newrgbcolor{rgb_1c1c8d}{0.109804 0.109804 0.552941}%
-\newrgbcolor{rgb_1c1c8e}{0.109804 0.109804 0.556863}%
-\newrgbcolor{rgb_1c1c8f}{0.109804 0.109804 0.560784}%
-\newrgbcolor{rgb_1c1c90}{0.109804 0.109804 0.564706}%
-\newrgbcolor{rgb_1d1d91}{0.113725 0.113725 0.568627}%
-\newrgbcolor{rgb_1d1d92}{0.113725 0.113725 0.572549}%
-\newrgbcolor{rgb_1d1d93}{0.113725 0.113725 0.576471}%
-\newrgbcolor{rgb_1d1d94}{0.113725 0.113725 0.580392}%
-\newrgbcolor{rgb_1d1d95}{0.113725 0.113725 0.584314}%
-\newrgbcolor{rgb_1e1e96}{0.117647 0.117647 0.588235}%
-\newrgbcolor{rgb_1e1e97}{0.117647 0.117647 0.592157}%
-\newrgbcolor{rgb_1e1e98}{0.117647 0.117647 0.596078}%
-\newrgbcolor{rgb_1e1e99}{0.117647 0.117647 0.6}%
-\newrgbcolor{rgb_1e1e9a}{0.117647 0.117647 0.603922}%
-\newrgbcolor{rgb_1f1f9b}{0.121569 0.121569 0.607843}%
-\newrgbcolor{rgb_1f1f9c}{0.121569 0.121569 0.611765}%
-\newrgbcolor{rgb_1f1f9d}{0.121569 0.121569 0.615686}%
-\newrgbcolor{rgb_1f1f9e}{0.121569 0.121569 0.619608}%
-\newrgbcolor{rgb_1f1f9f}{0.121569 0.121569 0.623529}%
-\newrgbcolor{rgb_2020a0}{0.12549 0.12549 0.627451}%
-\newrgbcolor{rgb_2020a1}{0.12549 0.12549 0.631373}%
-\newrgbcolor{rgb_2020a2}{0.12549 0.12549 0.635294}%
-\newrgbcolor{rgb_2020a3}{0.12549 0.12549 0.639216}%
-\newrgbcolor{rgb_2020a4}{0.12549 0.12549 0.643137}%
-\newrgbcolor{rgb_2121a5}{0.129412 0.129412 0.647059}%
-\newrgbcolor{rgb_2121a6}{0.129412 0.129412 0.65098}%
-\newrgbcolor{rgb_2121a7}{0.129412 0.129412 0.654902}%
-\newrgbcolor{rgb_2121a8}{0.129412 0.129412 0.658824}%
-\newrgbcolor{rgb_2121a9}{0.129412 0.129412 0.662745}%
-\newrgbcolor{rgb_2222aa}{0.133333 0.133333 0.666667}%
-\newrgbcolor{rgb_2222ab}{0.133333 0.133333 0.670588}%
-\newrgbcolor{rgb_2222ac}{0.133333 0.133333 0.67451}%
-\newrgbcolor{rgb_2222ad}{0.133333 0.133333 0.678431}%
-\newrgbcolor{rgb_2222ae}{0.133333 0.133333 0.682353}%
-\newrgbcolor{rgb_2323af}{0.137255 0.137255 0.686275}%
-\newrgbcolor{rgb_2323b0}{0.137255 0.137255 0.690196}%
-\newrgbcolor{rgb_2323b1}{0.137255 0.137255 0.694118}%
-\newrgbcolor{rgb_2323b2}{0.137255 0.137255 0.698039}%
-\newrgbcolor{rgb_2323b3}{0.137255 0.137255 0.701961}%
-\newrgbcolor{rgb_2424b4}{0.141176 0.141176 0.705882}%
-\newrgbcolor{rgb_2424b5}{0.141176 0.141176 0.709804}%
-\newrgbcolor{rgb_2424b6}{0.141176 0.141176 0.713725}%
-\newrgbcolor{rgb_2525b9}{0.145098 0.145098 0.72549}%
-\newrgbcolor{rgb_2525bb}{0.145098 0.145098 0.733333}%
-\newrgbcolor{rgb_2525bd}{0.145098 0.145098 0.741176}%
-\newrgbcolor{rgb_2626bf}{0.14902 0.14902 0.74902}%
-\newrgbcolor{rgb_2626c0}{0.14902 0.14902 0.752941}%
-\newrgbcolor{rgb_2626c1}{0.14902 0.14902 0.756863}%
-\newrgbcolor{rgb_2626c2}{0.14902 0.14902 0.760784}%
-\newrgbcolor{rgb_2727c3}{0.152941 0.152941 0.764706}%
-\newrgbcolor{rgb_2727c4}{0.152941 0.152941 0.768627}%
-\newrgbcolor{rgb_2727c5}{0.152941 0.152941 0.772549}%
-\newrgbcolor{rgb_2727c6}{0.152941 0.152941 0.776471}%
-\newrgbcolor{rgb_2727c7}{0.152941 0.152941 0.780392}%
-\newrgbcolor{rgb_2828c8}{0.156863 0.156863 0.784314}%
-\newrgbcolor{rgb_2828c9}{0.156863 0.156863 0.788235}%
-\newrgbcolor{rgb_2828ca}{0.156863 0.156863 0.792157}%
-\newrgbcolor{rgb_2828cc}{0.156863 0.156863 0.8}%
-\newrgbcolor{rgb_2929cd}{0.160784 0.160784 0.803922}%
-\newrgbcolor{rgb_2929ce}{0.160784 0.160784 0.807843}%
-\newrgbcolor{rgb_2929d1}{0.160784 0.160784 0.819608}%
-\newrgbcolor{rgb_2a2ad4}{0.164706 0.164706 0.831373}%
-\newrgbcolor{rgb_2a2ad5}{0.164706 0.164706 0.835294}%
-\newrgbcolor{rgb_2a2ad6}{0.164706 0.164706 0.839216}%
-\newrgbcolor{rgb_2b2bd8}{0.168627 0.168627 0.847059}%
-\newrgbcolor{rgb_2b2bd9}{0.168627 0.168627 0.85098}%
-\newrgbcolor{rgb_2b2bdb}{0.168627 0.168627 0.858824}%
-\newrgbcolor{rgb_2c2cde}{0.172549 0.172549 0.870588}%
-\newrgbcolor{rgb_2d2de2}{0.176471 0.176471 0.886275}%
-\newrgbcolor{rgb_2d2de3}{0.176471 0.176471 0.890196}%
-\newrgbcolor{rgb_2d2de5}{0.176471 0.176471 0.898039}%
-\newrgbcolor{rgb_2e2ee6}{0.180392 0.180392 0.901961}%
-\newrgbcolor{rgb_2e2ee8}{0.180392 0.180392 0.909804}%
-\newrgbcolor{rgb_2e2ee9}{0.180392 0.180392 0.913725}%
-\newrgbcolor{rgb_2f2feb}{0.184314 0.184314 0.921569}%
-\newrgbcolor{rgb_2f2fed}{0.184314 0.184314 0.929412}%
-\newrgbcolor{rgb_2f2fef}{0.184314 0.184314 0.937255}%
-\newrgbcolor{rgb_3030f0}{0.188235 0.188235 0.941176}%
-\newrgbcolor{rgb_3030f1}{0.188235 0.188235 0.945098}%
-\newrgbcolor{rgb_3030f2}{0.188235 0.188235 0.94902}%
-\newrgbcolor{rgb_3030f3}{0.188235 0.188235 0.952941}%
-\newrgbcolor{rgb_3030f4}{0.188235 0.188235 0.956863}%
-\newrgbcolor{rgb_3131f5}{0.192157 0.192157 0.960784}%
-\newrgbcolor{rgb_3131f6}{0.192157 0.192157 0.964706}%
-\newrgbcolor{rgb_3131f8}{0.192157 0.192157 0.972549}%
-\newrgbcolor{rgb_3131f9}{0.192157 0.192157 0.976471}%
-\newrgbcolor{rgb_3232fb}{0.196078 0.196078 0.984314}%
-\newrgbcolor{rgb_3232fc}{0.196078 0.196078 0.988235}%
-\newrgbcolor{rgb_3232fd}{0.196078 0.196078 0.992157}%
-\newrgbcolor{rgb_3232fe}{0.196078 0.196078 0.996078}%
-\psset{unit=1in,linewidth=0.4pt}%
-\begin{pspicture}(2,1)(0,0)%
-\psline(1,0.5)(0.460099,0.0671161)
-\psset{fillcolor=rgb_000000}%
-\pspolygon[fillstyle=solid](0.513324,0.109791)(0.500341,0.125984)
- (0.460099,0.0671161)(0.526308,0.093598)(0.513324,0.109791)
-\psline(1,0.5)(2.30211,0.383998)
-\pspolygon[fillstyle=solid](2.19255,0.39376)(2.1907,0.373086)
- (2.30211,0.383998)(2.19439,0.414433)(2.19255,0.39376)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1.21563,0.452275)(1.23301,0.375451)
- (1.17732,0.388446)(1.12142,0.416397)(1.11204,0.483169)
- (1.164,0.462409)(1.21563,0.452275)
-\psset{fillcolor=cmy_5858ff}%
-\psset{linecolor=rgb_2121a6}%
-\pspolygon[fillstyle=solid](1.31978,0.464555)(1.34701,0.395075)
- (1.28931,0.377672)(1.23301,0.375451)(1.21563,0.452275)
- (1.26742,0.453019)(1.31978,0.464555)
-\psset{fillcolor=cmy_6969ff}%
-\psset{linecolor=rgb_1d1d95}%
-\pspolygon[fillstyle=solid](1.11204,0.483169)(1.12142,0.416397)
- (1.0645,0.458716)(1.0058,0.514406)(1.0053,0.553791)
- (1.05928,0.513957)(1.11204,0.483169)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1.42762,0.517893)(1.46924,0.473639)
- (1.40679,0.427311)(1.34701,0.395075)(1.31978,0.464555)
- (1.3731,0.486452)(1.42762,0.517893)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](1.0053,0.553791)(1.0058,0.514406)
- (0.944617,0.581935)(0.880444,0.659087)(0.892338,0.65446)
- (0.949725,0.601259)(1.0053,0.553791)
-\psset{fillcolor=cmy_6565ff}%
-\psset{linecolor=rgb_1e1e99}%
-\pspolygon[fillstyle=solid](1.19425,0.509734)(1.21563,0.452275)
- (1.164,0.462409)(1.11204,0.483169)(1.10071,0.531856)
- (1.14768,0.517332)(1.19425,0.509734)
-\psset{fillcolor=cmy_6161ff}%
-\psset{linecolor=rgb_1f1f9d}%
-\pspolygon[fillstyle=solid](1.28699,0.515829)(1.31978,0.464555)
- (1.26742,0.453019)(1.21563,0.452275)(1.19425,0.509734)
- (1.24062,0.509263)(1.28699,0.515829)
-\psset{fillcolor=cmy_6f6fff}%
-\psset{linecolor=rgb_1c1c8f}%
-\pspolygon[fillstyle=solid](1.10071,0.531856)(1.11204,0.483169)
- (1.05928,0.513957)(1.0053,0.553791)(1.00473,0.579391)
- (1.05312,0.552809)(1.10071,0.531856)
-\psset{fillcolor=cmy_6666ff}%
-\psset{linecolor=rgb_1e1e98}%
-\pspolygon[fillstyle=solid](1.38015,0.548201)(1.42762,0.517893)
- (1.3731,0.486452)(1.31978,0.464555)(1.28699,0.515829)
- (1.33349,0.529041)(1.38015,0.548201)
-\psset{fillcolor=cmy_6c6cff}%
-\psset{linecolor=rgb_1d1d92}%
-\pspolygon[fillstyle=solid](1.54036,0.603855)(1.60334,0.602838)
- (1.53472,0.5328)(1.46924,0.473639)(1.42762,0.517893)
- (1.48342,0.557617)(1.54036,0.603855)
-\psset{fillcolor=cmy_7979ff}%
-\psset{linecolor=rgb_1a1a85}%
-\pspolygon[fillstyle=solid](1.00473,0.579391)(1.0053,0.553791)
- (0.949725,0.601259)(0.892338,0.65446)(0.905094,0.644715)
- (0.955399,0.610498)(1.00473,0.579391)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](0.892338,0.65446)(0.880444,0.659087)
- (0.812994,0.742797)(0.742326,0.82905)(0.772133,0.767878)
- (0.833083,0.710977)(0.892338,0.65446)
-\psset{fillcolor=cmy_7070ff}%
-\psset{linecolor=rgb_1c1c8e}%
-\pspolygon[fillstyle=solid](1.1691,0.547312)(1.19425,0.509734)
- (1.14768,0.517332)(1.10071,0.531856)(1.08754,0.562251)
- (1.12854,0.552782)(1.1691,0.547312)
-\psset{fillcolor=cmy_7777ff}%
-\psset{linecolor=rgb_1b1b87}%
-\pspolygon[fillstyle=solid](1.08754,0.562251)(1.10071,0.531856)
- (1.05312,0.552809)(1.00473,0.579391)(1.00408,0.591586)
- (1.04606,0.57537)(1.08754,0.562251)
-\psset{fillcolor=cmy_6d6dff}%
-\psset{linecolor=rgb_1d1d91}%
-\pspolygon[fillstyle=solid](1.24902,0.548712)(1.28699,0.515829)
- (1.24062,0.509263)(1.19425,0.509734)(1.1691,0.547312)
- (1.20925,0.545979)(1.24902,0.548712)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](0.905094,0.644715)(0.892338,0.65446)
- (0.833083,0.710977)(0.772133,0.767878)(0.801956,0.715411)
- (0.853879,0.680337)(0.905094,0.644715)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](1.47358,0.599945)(1.54036,0.603855)
- (1.48342,0.557617)(1.42762,0.517893)(1.38015,0.548201)
- (1.42692,0.572286)(1.47358,0.599945)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](1.00408,0.591586)(1.00473,0.579391)
- (0.955399,0.610498)(0.905094,0.644715)(0.918709,0.630156)
- (0.961612,0.610155)(1.00408,0.591586)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](1.32731,0.565028)(1.38015,0.548201)
- (1.33349,0.529041)(1.28699,0.515829)(1.24902,0.548712)
- (1.2884,0.555226)(1.32731,0.565028)
-\psset{fillcolor=cmy_7878ff}%
-\psset{linecolor=rgb_1a1a86}%
-\pspolygon[fillstyle=solid](0.772133,0.767878)(0.742326,0.82905)
- (0.668933,0.912872)(0.593817,0.988506)(0.647182,0.869075)
- (0.709925,0.821791)(0.772133,0.767878)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.918709,0.630156)(0.905094,0.644715)
- (0.853879,0.680337)(0.801956,0.715411)(0.832163,0.670073)
- (0.875495,0.650521)(0.918709,0.630156)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](1.14055,0.565734)(1.1691,0.547312)
- (1.12854,0.552782)(1.08754,0.562251)(1.07271,0.575185)
- (1.10684,0.569509)(1.14055,0.565734)
-\psset{fillcolor=cmy_7979ff}%
-\psset{linecolor=rgb_1a1a85}%
-\pspolygon[fillstyle=solid](1.65578,0.705915)(1.74819,0.763081)
- (1.67477,0.680906)(1.60334,0.602838)(1.54036,0.603855)
- (1.59806,0.654266)(1.65578,0.705915)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](1.07271,0.575185)(1.08754,0.562251)
- (1.04606,0.57537)(1.00408,0.591586)(1.00338,0.591308)
- (1.0382,0.582558)(1.07271,0.575185)
-\psset{fillcolor=cmy_7575ff}%
-\psset{linecolor=rgb_1b1b89}%
-\pspolygon[fillstyle=solid](0.801956,0.715411)(0.772133,0.767878)
- (0.709925,0.821791)(0.647182,0.869075)(0.697531,0.775355)
- (0.749674,0.74781)(0.801956,0.715411)
-\psset{fillcolor=cmy_7a7aff}%
-\psset{linecolor=rgb_1a1a84}%
-\pspolygon[fillstyle=solid](1.2064,0.564093)(1.24902,0.548712)
- (1.20925,0.545979)(1.1691,0.547312)(1.14055,0.565734)
- (1.17375,0.563943)(1.2064,0.564093)
-\psset{fillcolor=cmy_7878ff}%
-\psset{linecolor=rgb_1a1a86}%
-\pspolygon[fillstyle=solid](1.40315,0.59151)(1.47358,0.599945)
- (1.42692,0.572286)(1.38015,0.548201)(1.32731,0.565028)
- (1.36563,0.577419)(1.40315,0.59151)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.00338,0.591308)(1.00408,0.591586)
- (0.961612,0.610155)(0.918709,0.630156)(0.933183,0.611153)
- (0.968339,0.601011)(1.00338,0.591308)
-\psset{fillcolor=cmy_6c6cff}%
-\psset{linecolor=rgb_1d1d92}%
-\pspolygon[fillstyle=solid](0.189032,0.289372)(0.105002,0.195832)
- (0.106173,0.133184)(0.107102,0.0871823)(0.187635,0.204779)
- (0.187646,0.241139)(0.189032,0.289372)
-\psset{fillcolor=cmy_7c7cff}%
-\psset{linecolor=rgb_1a1a82}%
-\pspolygon[fillstyle=solid](1.26963,0.569425)(1.32731,0.565028)
- (1.2884,0.555226)(1.24902,0.548712)(1.2064,0.564093)
- (1.23839,0.566016)(1.26963,0.569425)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](0.832163,0.670073)(0.801956,0.715411)
- (0.749674,0.74781)(0.697531,0.775355)(0.746272,0.701846)
- (0.788976,0.687585)(0.832163,0.670073)
-\psset{fillcolor=cmy_7c7cff}%
-\psset{linecolor=rgb_1a1a82}%
-\pspolygon[fillstyle=solid](1.56495,0.658972)(1.65578,0.705915)
- (1.59806,0.654266)(1.54036,0.603855)(1.47358,0.599945)
- (1.51977,0.629498)(1.56495,0.658972)
-\psset{fillcolor=cmy_4949ff}%
-\psset{linecolor=rgb_2424b5}%
-\pspolygon[fillstyle=solid](0.19769,0.416171)(0.10474,0.365653)
- (0.104222,0.273918)(0.105002,0.195832)(0.189032,0.289372)
- (0.192187,0.348273)(0.19769,0.416171)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](0.933183,0.611153)(0.918709,0.630156)
- (0.875495,0.650521)(0.832163,0.670073)(0.863092,0.630402)
- (0.898045,0.621157)(0.933183,0.611153)
-\psset{fillcolor=cmy_5656ff}%
-\psset{linecolor=rgb_2121a8}%
-\pspolygon[fillstyle=solid](0.647182,0.869075)(0.593817,0.988506)
- (0.518501,1.04983)(0.444947,1.09101)(0.524261,0.929508)
- (0.584894,0.90608)(0.647182,0.869075)
-\psset{fillcolor=cmy_5353ff}%
-\psset{linecolor=rgb_2222ab}%
-\pspolygon[fillstyle=solid](0.697531,0.775355)(0.647182,0.869075)
- (0.584894,0.90608)(0.524261,0.929508)(0.596275,0.807827)
- (0.646156,0.795963)(0.697531,0.775355)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.187635,0.204779)(0.107102,0.0871823)
- (0.107428,0.0586308)(0.107074,0.0480454)(0.191172,0.170524)
- (0.188802,0.181093)(0.187635,0.204779)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](1.32922,0.579024)(1.40315,0.59151)
- (1.36563,0.577419)(1.32731,0.565028)(1.26963,0.569425)
- (1.29996,0.573925)(1.32922,0.579024)
-\psset{fillcolor=cmy_6c6cff}%
-\psset{linecolor=rgb_1d1d92}%
-\pspolygon[fillstyle=solid](0.863092,0.630402)(0.832163,0.670073)
- (0.788976,0.687585)(0.746272,0.701846)(0.794552,0.644134)
- (0.828519,0.638261)(0.863092,0.630402)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.109,0.566914)(1.14055,0.565734)
- (1.10684,0.569509)(1.07271,0.575185)(1.05638,0.57247)
- (1.08289,0.569392)(1.109,0.566914)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](1.05638,0.57247)(1.07271,0.575185)
- (1.0382,0.582558)(1.00338,0.591308)(1.00261,0.579992)
- (1.02959,0.576053)(1.05638,0.57247)
-\pspolygon[fillstyle=solid](1.47456,0.620443)(1.56495,0.658972)
- (1.51977,0.629498)(1.47358,0.599945)(1.40315,0.59151)
- (1.43958,0.606246)(1.47456,0.620443)
-\psset{fillcolor=cmy_5050ff}%
-\psset{linecolor=rgb_2222ae}%
-\pspolygon[fillstyle=solid](0.746272,0.701846)(0.697531,0.775355)
- (0.646156,0.795963)(0.596275,0.807827)(0.663929,0.71633)
- (0.704444,0.711739)(0.746272,0.701846)
-\psset{fillcolor=cmy_2323ff}%
-\psset{linecolor=rgb_2b2bdb}%
-\pspolygon[fillstyle=solid](0.218731,0.569601)(0.114562,0.578881)
- (0.107723,0.468479)(0.10474,0.365653)(0.19769,0.416171)
- (0.206264,0.490868)(0.218731,0.569601)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](1.00261,0.579992)(1.00338,0.591308)
- (0.968339,0.601011)(0.933183,0.611153)(0.948523,0.588133)
- (0.975553,0.584095)(1.00261,0.579992)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.1597,0.563866)(1.2064,0.564093)
- (1.17375,0.563943)(1.14055,0.565734)(1.109,0.566914)
- (1.13464,0.565078)(1.1597,0.563866)
-\psset{fillcolor=cmy_7474ff}%
-\psset{linecolor=rgb_1b1b8a}%
-\pspolygon[fillstyle=solid](0.948523,0.588133)(0.933183,0.611153)
- (0.898045,0.621157)(0.863092,0.630402)(0.895059,0.594987)
- (0.921647,0.591852)(0.948523,0.588133)
-\psset{fillcolor=cmy_2828ff}%
-\psset{linecolor=rgb_2a2ad6}%
-\pspolygon[fillstyle=solid](0.524261,0.929508)(0.444947,1.09101)
- (0.375363,1.10732)(0.311925,1.09597)(0.413159,0.926478)
- (0.466591,0.936797)(0.524261,0.929508)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.20765,0.562964)(1.26963,0.569425)
- (1.23839,0.566016)(1.2064,0.564093)(1.1597,0.563866)
- (1.18407,0.563204)(1.20765,0.562964)
-\psset{fillcolor=cmy_4f4fff}%
-\psset{linecolor=rgb_2323af}%
-\pspolygon[fillstyle=solid](0.794552,0.644134)(0.746272,0.701846)
- (0.704444,0.711739)(0.663929,0.71633)(0.729448,0.647866)
- (0.761441,0.647482)(0.794552,0.644134)
-\psset{fillcolor=cmy_2828ff}%
-\psset{linecolor=rgb_2a2ad6}%
-\pspolygon[fillstyle=solid](0.596275,0.807827)(0.524261,0.929508)
- (0.466591,0.936797)(0.413159,0.926478)(0.504048,0.800507)
- (0.548656,0.809592)(0.596275,0.807827)
-\psset{fillcolor=cmy_2929ff}%
-\psset{linecolor=rgb_2a2ad5}%
-\pspolygon[fillstyle=solid](0.663929,0.71633)(0.596275,0.807827)
- (0.548656,0.809592)(0.504048,0.800507)(0.58863,0.707203)
- (0.625178,0.714938)(0.663929,0.71633)
-\psset{fillcolor=cmy_3f3fff}%
-\psset{linecolor=rgb_2626bf}%
-\pspolygon[fillstyle=solid](0.298804,0.454436)(0.19769,0.416171)
- (0.192187,0.348273)(0.189032,0.289372)(0.285765,0.364096)
- (0.29087,0.406486)(0.298804,0.454436)
-\psset{fillcolor=cmy_6666ff}%
-\psset{linecolor=rgb_1e1e98}%
-\pspolygon[fillstyle=solid](0.895059,0.594987)(0.863092,0.630402)
- (0.828519,0.638261)(0.794552,0.644134)(0.84333,0.598464)
- (0.868903,0.597273)(0.895059,0.594987)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.38364,0.588709)(1.47456,0.620443)
- (1.43958,0.606246)(1.40315,0.59151)(1.32922,0.579024)
- (1.35719,0.584157)(1.38364,0.588709)
-\psset{fillcolor=cmy_6464ff}%
-\psset{linecolor=rgb_1e1e9a}%
-\pspolygon[fillstyle=solid](0.285765,0.364096)(0.189032,0.289372)
- (0.187646,0.241139)(0.187635,0.204779)(0.282956,0.300896)
- (0.283191,0.328573)(0.285765,0.364096)
-\psset{fillcolor=cmy_0909ff}%
-\psset{linecolor=rgb_3131f5}%
-\pspolygon[fillstyle=solid](0.258703,0.72553)(0.145957,0.803098)
- (0.126792,0.692284)(0.114562,0.578881)(0.218731,0.569601)
- (0.235947,0.649066)(0.258703,0.72553)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](1.2519,0.563022)(1.32922,0.579024)
- (1.29996,0.573925)(1.26963,0.569425)(1.20765,0.562964)
- (1.2303,0.562975)(1.2519,0.563022)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.76674,0.798575)(1.89443,0.91833)
- (1.82212,0.844276)(1.74819,0.763081)(1.65578,0.705915)
- (1.71247,0.755316)(1.76674,0.798575)
-\psset{fillcolor=cmy_1b1bff}%
-\psset{linecolor=rgb_2d2de3}%
-\pspolygon[fillstyle=solid](0.324666,0.560164)(0.218731,0.569601)
- (0.206264,0.490868)(0.19769,0.416171)(0.298804,0.454436)
- (0.309934,0.506308)(0.324666,0.560164)
-\psset{fillcolor=cmy_2d2dff}%
-\psset{linecolor=rgb_2929d1}%
-\pspolygon[fillstyle=solid](0.729448,0.647866)(0.663929,0.71633)
- (0.625178,0.714938)(0.58863,0.707203)(0.669881,0.638666)
- (0.698841,0.644979)(0.729448,0.647866)
-\psset{fillcolor=cmy_0909ff}%
-\psset{linecolor=rgb_3131f5}%
-\pspolygon[fillstyle=solid](0.413159,0.926478)(0.311925,1.09597)
- (0.256452,1.05661)(0.210141,0.991471)(0.323082,0.85378)
- (0.36506,0.8984)(0.413159,0.926478)
-\psset{fillcolor=cmy_0a0aff}%
-\psset{linecolor=rgb_3030f4}%
-\pspolygon[fillstyle=solid](0.504048,0.800507)(0.413159,0.926478)
- (0.36506,0.8984)(0.323082,0.85378)(0.426348,0.750295)
- (0.463108,0.78052)(0.504048,0.800507)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.6493,0.708781)(1.76674,0.798575)
- (1.71247,0.755316)(1.65578,0.705915)(1.56495,0.658972)
- (1.60841,0.686169)(1.6493,0.708781)
-\psset{fillcolor=cmy_5050ff}%
-\psset{linecolor=rgb_2222ae}%
-\pspolygon[fillstyle=solid](0.84333,0.598464)(0.794552,0.644134)
- (0.761441,0.647482)(0.729448,0.647866)(0.794573,0.596748)
- (0.818499,0.598346)(0.84333,0.598464)
-\psset{fillcolor=cmy_0d0dff}%
-\psset{linecolor=rgb_3030f1}%
-\pspolygon[fillstyle=solid](0.58863,0.707203)(0.504048,0.800507)
- (0.463108,0.78052)(0.426348,0.750295)(0.523665,0.673044)
- (0.554683,0.693119)(0.58863,0.707203)
-\psset{fillcolor=cmy_0606ff}%
-\psset{linecolor=rgb_3131f8}%
-\pspolygon[fillstyle=solid](0.366464,0.664928)(0.258703,0.72553)
- (0.235947,0.649066)(0.218731,0.569601)(0.324666,0.560164)
- (0.343397,0.613816)(0.366464,0.664928)
-\psset{fillcolor=cmy_0000ff}%
-\psset{linecolor=rgb_3232fe}%
-\pspolygon[fillstyle=solid](0.323082,0.85378)(0.210141,0.991471)
- (0.173421,0.904998)(0.145957,0.803098)(0.258703,0.72553)
- (0.287629,0.795046)(0.323082,0.85378)
-\psset{fillcolor=cmy_7474ff}%
-\psset{linecolor=rgb_1b1b8a}%
-\pspolygon[fillstyle=solid](1.03875,0.556754)(1.05638,0.57247)
- (1.02959,0.576053)(1.00261,0.579992)(1.00179,0.559495)
- (1.02033,0.558175)(1.03875,0.556754)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](1.07488,0.553783)(1.109,0.566914)
- (1.08289,0.569392)(1.05638,0.57247)(1.03875,0.556754)
- (1.05696,0.555279)(1.07488,0.553783)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](1.00179,0.559495)(1.00261,0.579992)
- (0.975553,0.584095)(0.948523,0.588133)(0.964748,0.561577)
- (0.983236,0.560652)(1.00179,0.559495)
-\psset{fillcolor=cmy_0000ff}%
-\psset{linecolor=rgb_3232fe}%
-\pspolygon[fillstyle=solid](0.426348,0.750295)(0.323082,0.85378)
- (0.287629,0.795046)(0.258703,0.72553)(0.366464,0.664928)
- (0.394092,0.711151)(0.426348,0.750295)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](1.53831,0.642183)(1.6493,0.708781)
- (1.60841,0.686169)(1.56495,0.658972)(1.47456,0.620443)
- (1.50763,0.632843)(1.53831,0.642183)
-\psset{fillcolor=cmy_7777ff}%
-\psset{linecolor=rgb_1b1b87}%
-\pspolygon[fillstyle=solid](1.10948,0.550772)(1.1597,0.563866)
- (1.13464,0.565078)(1.109,0.566914)(1.07488,0.553783)
- (1.09241,0.552281)(1.10948,0.550772)
-\psset{fillcolor=cmy_6a6aff}%
-\psset{linecolor=rgb_1d1d94}%
-\pspolygon[fillstyle=solid](0.964748,0.561577)(0.948523,0.588133)
- (0.921647,0.591852)(0.895059,0.594987)(0.92836,0.562423)
- (0.946423,0.562194)(0.964748,0.561577)
-\psset{fillcolor=cmy_1515ff}%
-\psset{linecolor=rgb_2e2ee9}%
-\pspolygon[fillstyle=solid](0.669881,0.638666)(0.58863,0.707203)
- (0.554683,0.693119)(0.523665,0.673044)(0.617846,0.615994)
- (0.642811,0.628942)(0.669881,0.638666)
-\psset{fillcolor=cmy_0101ff}%
-\psset{linecolor=rgb_3232fd}%
-\pspolygon[fillstyle=solid](0.523665,0.673044)(0.426348,0.750295)
- (0.394092,0.711151)(0.366464,0.664928)(0.471308,0.617992)
- (0.495823,0.647676)(0.523665,0.673044)
-\psset{fillcolor=cmy_3838ff}%
-\psset{linecolor=rgb_2727c6}%
-\pspolygon[fillstyle=solid](0.794573,0.596748)(0.729448,0.647866)
- (0.698841,0.644979)(0.669881,0.638666)(0.750078,0.58872)
- (0.771713,0.593556)(0.794573,0.596748)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](1.29137,0.562256)(1.38364,0.588709)
- (1.35719,0.584157)(1.32922,0.579024)(1.2519,0.563022)
- (1.27231,0.562867)(1.29137,0.562256)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.191172,0.170524)(0.107074,0.0480454)
- (0.106268,0.0557124)(0.105573,0.08167)(0.20082,0.188793)
- (0.195007,0.173177)(0.191172,0.170524)
-\psset{fillcolor=cmy_7979ff}%
-\psset{linecolor=rgb_1a1a85}%
-\pspolygon[fillstyle=solid](0.282956,0.300896)(0.187635,0.204779)
- (0.188802,0.181093)(0.191172,0.170524)(0.28937,0.271374)
- (0.284992,0.281718)(0.282956,0.300896)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](1.14185,0.547647)(1.20765,0.562964)
- (1.18407,0.563204)(1.1597,0.563866)(1.10948,0.550772)
- (1.12599,0.549239)(1.14185,0.547647)
-\psset{fillcolor=cmy_0505ff}%
-\psset{linecolor=rgb_3131f9}%
-\pspolygon[fillstyle=solid](0.471308,0.617992)(0.366464,0.664928)
- (0.343397,0.613816)(0.324666,0.560164)(0.432412,0.550565)
- (0.450178,0.585184)(0.471308,0.617992)
-\psset{fillcolor=cmy_6161ff}%
-\psset{linecolor=rgb_1f1f9d}%
-\pspolygon[fillstyle=solid](0.92836,0.562423)(0.895059,0.594987)
- (0.868903,0.597273)(0.84333,0.598464)(0.893412,0.561425)
- (0.910657,0.56219)(0.92836,0.562423)
-\psset{fillcolor=cmy_1616ff}%
-\psset{linecolor=rgb_2e2ee8}%
-\pspolygon[fillstyle=solid](0.432412,0.550565)(0.324666,0.560164)
- (0.309934,0.506308)(0.298804,0.454436)(0.406584,0.481275)
- (0.417922,0.515489)(0.432412,0.550565)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](1.43089,0.593568)(1.53831,0.642183)
- (1.50763,0.632843)(1.47456,0.620443)(1.38364,0.588709)
- (1.40831,0.592049)(1.43089,0.593568)
-\psset{fillcolor=cmy_0909ff}%
-\psset{linecolor=rgb_3131f5}%
-\pspolygon[fillstyle=solid](0.617846,0.615994)(0.523665,0.673044)
- (0.495823,0.647676)(0.471308,0.617992)(0.574906,0.58195)
- (0.595165,0.600168)(0.617846,0.615994)
-\psset{fillcolor=cmy_3636ff}%
-\psset{linecolor=rgb_2828c8}%
-\pspolygon[fillstyle=solid](0.406584,0.481275)(0.298804,0.454436)
- (0.29087,0.406486)(0.285765,0.364096)(0.392802,0.420142)
- (0.398255,0.449137)(0.406584,0.481275)
-\psset{fillcolor=cmy_2626ff}%
-\psset{linecolor=rgb_2b2bd8}%
-\pspolygon[fillstyle=solid](0.750078,0.58872)(0.669881,0.638666)
- (0.642811,0.628942)(0.617846,0.615994)(0.711075,0.574268)
- (0.729819,0.582261)(0.750078,0.58872)
-\psset{fillcolor=cmy_5555ff}%
-\psset{linecolor=rgb_2121a9}%
-\pspolygon[fillstyle=solid](0.893412,0.561425)(0.84333,0.598464)
- (0.818499,0.598346)(0.794573,0.596748)(0.860696,0.558086)
- (0.876726,0.560071)(0.893412,0.561425)
-\psset{fillcolor=cmy_7474ff}%
-\psset{linecolor=rgb_1b1b8a}%
-\pspolygon[fillstyle=solid](1.17127,0.54409)(1.2519,0.563022)
- (1.2303,0.562975)(1.20765,0.562964)(1.14185,0.547647)
- (1.15697,0.54595)(1.17127,0.54409)
-\psset{fillcolor=cmy_0b0bff}%
-\psset{linecolor=rgb_3030f3}%
-\pspolygon[fillstyle=solid](0.574906,0.58195)(0.471308,0.617992)
- (0.450178,0.585184)(0.432412,0.550565)(0.542015,0.540801)
- (0.557169,0.561937)(0.574906,0.58195)
-\psset{fillcolor=cmy_4848ff}%
-\psset{linecolor=rgb_2424b6}%
-\pspolygon[fillstyle=solid](0.860696,0.558086)(0.794573,0.596748)
- (0.771713,0.593556)(0.750078,0.58872)(0.830997,0.552142)
- (0.845422,0.555444)(0.860696,0.558086)
-\psset{fillcolor=cmy_5a5aff}%
-\psset{linecolor=rgb_2020a4}%
-\pspolygon[fillstyle=solid](0.392802,0.420142)(0.285765,0.364096)
- (0.283191,0.328573)(0.282956,0.300896)(0.390156,0.374904)
- (0.390121,0.395173)(0.392802,0.420142)
-\psset{fillcolor=cmy_7575ff}%
-\psset{linecolor=rgb_1b1b89}%
-\pspolygon[fillstyle=solid](1.32484,0.558669)(1.43089,0.593568)
- (1.40831,0.592049)(1.38364,0.588709)(1.29137,0.562256)
- (1.30893,0.560936)(1.32484,0.558669)
-\psset{fillcolor=cmy_1c1cff}%
-\psset{linecolor=rgb_2d2de2}%
-\pspolygon[fillstyle=solid](0.711075,0.574268)(0.617846,0.615994)
- (0.595165,0.600168)(0.574906,0.58195)(0.678618,0.554358)
- (0.693971,0.564896)(0.711075,0.574268)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](1.19703,0.539628)(1.29137,0.562256)
- (1.27231,0.562867)(1.2519,0.563022)(1.17127,0.54409)
- (1.18465,0.542005)(1.19703,0.539628)
-\psset{fillcolor=cmy_1818ff}%
-\psset{linecolor=rgb_2e2ee6}%
-\pspolygon[fillstyle=solid](0.542015,0.540801)(0.432412,0.550565)
- (0.417922,0.515489)(0.406584,0.481275)(0.519554,0.497979)
- (0.529474,0.519246)(0.542015,0.540801)
-\psset{fillcolor=cmy_3d3dff}%
-\psset{linecolor=rgb_2626c1}%
-\pspolygon[fillstyle=solid](0.830997,0.552142)(0.750078,0.58872)
- (0.729819,0.582261)(0.711075,0.574268)(0.805053,0.543639)
- (0.817512,0.548194)(0.830997,0.552142)
-\psset{fillcolor=cmy_6666ff}%
-\psset{linecolor=rgb_1e1e98}%
-\pspolygon[fillstyle=solid](1.01993,0.53134)(1.03875,0.556754)
- (1.02033,0.558175)(1.00179,0.559495)(1.00092,0.532012)
- (1.01046,0.531756)(1.01993,0.53134)
-\psset{fillcolor=cmy_6565ff}%
-\psset{linecolor=rgb_1e1e99}%
-\pspolygon[fillstyle=solid](1.00092,0.532012)(1.00179,0.559495)
- (0.983236,0.560652)(0.964748,0.561577)(0.98189,0.532011)
- (0.991382,0.5321)(1.00092,0.532012)
-\psset{fillcolor=cmy_6868ff}%
-\psset{linecolor=rgb_1e1e96}%
-\pspolygon[fillstyle=solid](1.03849,0.530055)(1.07488,0.553783)
- (1.05696,0.555279)(1.03875,0.556754)(1.01993,0.53134)
- (1.02929,0.53077)(1.03849,0.530055)
-\psset{fillcolor=cmy_1c1cff}%
-\psset{linecolor=rgb_2d2de2}%
-\pspolygon[fillstyle=solid](0.678618,0.554358)(0.574906,0.58195)
- (0.557169,0.561937)(0.542015,0.540801)(0.653524,0.530867)
- (0.66511,0.542917)(0.678618,0.554358)
-\psset{fillcolor=cmy_6262ff}%
-\psset{linecolor=rgb_1f1f9c}%
-\pspolygon[fillstyle=solid](0.98189,0.532011)(0.964748,0.561577)
- (0.946423,0.562194)(0.92836,0.562423)(0.963262,0.531266)
- (0.972499,0.531735)(0.98189,0.532011)
-\psset{fillcolor=cmy_6868ff}%
-\psset{linecolor=rgb_1e1e96}%
-\pspolygon[fillstyle=solid](1.05617,0.528201)(1.10948,0.550772)
- (1.09241,0.552281)(1.07488,0.553783)(1.03849,0.530055)
- (1.04746,0.529197)(1.05617,0.528201)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](0.963262,0.531266)(0.92836,0.562423)
- (0.910657,0.56219)(0.893412,0.561425)(0.945465,0.52972)
- (0.954234,0.530596)(0.963262,0.531266)
-\psset{fillcolor=cmy_3232ff}%
-\psset{linecolor=rgb_2828cc}%
-\pspolygon[fillstyle=solid](0.519554,0.497979)(0.406584,0.481275)
- (0.398255,0.449137)(0.392802,0.420142)(0.507551,0.458909)
- (0.512249,0.477666)(0.519554,0.497979)
-\psset{fillcolor=cmy_7575ff}%
-\psset{linecolor=rgb_1b1b89}%
-\pspolygon[fillstyle=solid](1.59029,0.647141)(1.71949,0.731475)
- (1.68666,0.724552)(1.6493,0.708781)(1.53831,0.642183)
- (1.56604,0.647284)(1.59029,0.647141)
-\psset{fillcolor=cmy_6868ff}%
-\psset{linecolor=rgb_1e1e96}%
-\pspolygon[fillstyle=solid](1.07258,0.525802)(1.14185,0.547647)
- (1.12599,0.549239)(1.10948,0.550772)(1.05617,0.528201)
- (1.06456,0.527069)(1.07258,0.525802)
-\psset{fillcolor=cmy_7070ff}%
-\psset{linecolor=rgb_1c1c8e}%
-\pspolygon[fillstyle=solid](1.46867,0.589042)(1.59029,0.647141)
- (1.56604,0.647284)(1.53831,0.642183)(1.43089,0.593568)
- (1.45111,0.592716)(1.46867,0.589042)
-\psset{fillcolor=cmy_3737ff}%
-\psset{linecolor=rgb_2727c7}%
-\pspolygon[fillstyle=solid](0.805053,0.543639)(0.711075,0.574268)
- (0.693971,0.564896)(0.678618,0.554358)(0.783529,0.532958)
- (0.793701,0.538535)(0.805053,0.543639)
-\psset{fillcolor=cmy_6c6cff}%
-\psset{linecolor=rgb_1d1d92}%
-\pspolygon[fillstyle=solid](1.21844,0.533751)(1.32484,0.558669)
- (1.30893,0.560936)(1.29137,0.562256)(1.19703,0.539628)
- (1.20832,0.536895)(1.21844,0.533751)
-\psset{fillcolor=cmy_5959ff}%
-\psset{linecolor=rgb_2121a5}%
-\pspolygon[fillstyle=solid](0.945465,0.52972)(0.893412,0.561425)
- (0.876726,0.560071)(0.860696,0.558086)(0.928911,0.52734)
- (0.937007,0.528634)(0.945465,0.52972)
-\psset{fillcolor=cmy_7878ff}%
-\psset{linecolor=rgb_1a1a86}%
-\pspolygon[fillstyle=solid](1.71949,0.731475)(1.86122,0.850819)
- (1.81692,0.831665)(1.76674,0.798575)(1.6493,0.708781)
- (1.68666,0.724552)(1.71949,0.731475)
-\psset{fillcolor=cmy_6868ff}%
-\psset{linecolor=rgb_1e1e96}%
-\pspolygon[fillstyle=solid](1.08732,0.52286)(1.17127,0.54409)
- (1.15697,0.54595)(1.14185,0.547647)(1.07258,0.525802)
- (1.08018,0.524399)(1.08732,0.52286)
-\psset{fillcolor=cmy_6a6aff}%
-\psset{linecolor=rgb_1d1d94}%
-\pspolygon[fillstyle=solid](1.35106,0.550511)(1.46867,0.589042)
- (1.45111,0.592716)(1.43089,0.593568)(1.32484,0.558669)
- (1.33893,0.555247)(1.35106,0.550511)
-\psset{fillcolor=cmy_2525ff}%
-\psset{linecolor=rgb_2b2bd9}%
-\pspolygon[fillstyle=solid](0.653524,0.530867)(0.542015,0.540801)
- (0.529474,0.519246)(0.519554,0.497979)(0.636366,0.506205)
- (0.643926,0.518523)(0.653524,0.530867)
-\psset{fillcolor=cmy_5454ff}%
-\psset{linecolor=rgb_2222aa}%
-\pspolygon[fillstyle=solid](0.928911,0.52734)(0.860696,0.558086)
- (0.845422,0.555444)(0.830997,0.552142)(0.913992,0.524138)
- (0.921223,0.525839)(0.928911,0.52734)
-\psset{fillcolor=cmy_7373ff}%
-\psset{linecolor=rgb_1b1b8b}%
-\pspolygon[fillstyle=solid](0.390156,0.374904)(0.282956,0.300896)
- (0.284992,0.281718)(0.28937,0.271374)(0.398466,0.350056)
- (0.392913,0.35979)(0.390156,0.374904)
-\psset{fillcolor=cmy_3636ff}%
-\psset{linecolor=rgb_2828c8}%
-\pspolygon[fillstyle=solid](0.783529,0.532958)(0.678618,0.554358)
- (0.66511,0.542917)(0.653524,0.530867)(0.76699,0.520758)
- (0.774605,0.526998)(0.783529,0.532958)
-\psset{fillcolor=cmy_7979ff}%
-\psset{linecolor=rgb_1a1a85}%
-\pspolygon[fillstyle=solid](1.86122,0.850819)(2.0226,1.01759)
- (1.96232,0.978383)(1.89443,0.91833)(1.76674,0.798575)
- (1.81692,0.831665)(1.86122,0.850819)
-\psset{fillcolor=cmy_6666ff}%
-\psset{linecolor=rgb_1e1e98}%
-\pspolygon[fillstyle=solid](1.10005,0.519369)(1.19703,0.539628)
- (1.18465,0.542005)(1.17127,0.54409)(1.08732,0.52286)
- (1.09396,0.521183)(1.10005,0.519369)
-\psset{fillcolor=cmy_5050ff}%
-\psset{linecolor=rgb_2222ae}%
-\pspolygon[fillstyle=solid](0.913992,0.524138)(0.830997,0.552142)
- (0.817512,0.548194)(0.805053,0.543639)(0.90107,0.520175)
- (0.90726,0.522245)(0.913992,0.524138)
-\psset{fillcolor=cmy_5151ff}%
-\psset{linecolor=rgb_2222ad}%
-\pspolygon[fillstyle=solid](0.507551,0.458909)(0.392802,0.420142)
- (0.390121,0.395173)(0.390156,0.374904)(0.50598,0.427985)
- (0.505457,0.442216)(0.507551,0.458909)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](0.28937,0.271374)(0.191172,0.170524)
- (0.195007,0.173177)(0.20082,0.188793)(0.306183,0.276904)
- (0.296309,0.269877)(0.28937,0.271374)
-\psset{fillcolor=cmy_6363ff}%
-\psset{linecolor=rgb_1f1f9b}%
-\pspolygon[fillstyle=solid](1.23484,0.526055)(1.35106,0.550511)
- (1.33893,0.555247)(1.32484,0.558669)(1.21844,0.533751)
- (1.2273,0.530147)(1.23484,0.526055)
-\psset{fillcolor=cmy_3737ff}%
-\psset{linecolor=rgb_2727c7}%
-\pspolygon[fillstyle=solid](0.636366,0.506205)(0.519554,0.497979)
- (0.512249,0.477666)(0.507551,0.458909)(0.62752,0.482848)
- (0.630886,0.49422)(0.636366,0.506205)
-\psset{fillcolor=cmy_4d4dff}%
-\psset{linecolor=rgb_2323b1}%
-\pspolygon[fillstyle=solid](0.90107,0.520175)(0.805053,0.543639)
- (0.793701,0.538535)(0.783529,0.532958)(0.890469,0.515566)
- (0.895461,0.517942)(0.90107,0.520175)
-\psset{fillcolor=cmy_6363ff}%
-\psset{linecolor=rgb_1f1f9b}%
-\pspolygon[fillstyle=solid](1.11043,0.515333)(1.21844,0.533751)
- (1.20832,0.536895)(1.19703,0.539628)(1.10005,0.519369)
- (1.10555,0.517419)(1.11043,0.515333)
-\psset{fillcolor=cmy_3a3aff}%
-\psset{linecolor=rgb_2727c4}%
-\pspolygon[fillstyle=solid](0.76699,0.520758)(0.653524,0.530867)
- (0.643926,0.518523)(0.636366,0.506205)(0.755889,0.507874)
- (0.760736,0.514347)(0.76699,0.520758)
-\psset{fillcolor=cmy_3c3cff}%
-\psset{linecolor=rgb_2626c2}%
-\pspolygon[fillstyle=solid](1.6438,0.0321256)(1.71591,-0.120081)
- (1.76775,-0.074723)(1.81976,-0.0100767)(1.73326,0.116772)
- (1.68934,0.0674669)(1.6438,0.0321256)
-\psset{fillcolor=cmy_4b4bff}%
-\psset{linecolor=rgb_2323b3}%
-\pspolygon[fillstyle=solid](0.890469,0.515566)(0.783529,0.532958)
- (0.774605,0.526998)(0.76699,0.520758)(0.882464,0.510471)
- (0.886127,0.513068)(0.890469,0.515566)
-\psset{fillcolor=cmy_5858ff}%
-\psset{linecolor=rgb_2121a6}%
-\pspolygon[fillstyle=solid](1.36891,0.536746)(1.49483,0.572133)
- (1.48332,0.582232)(1.46867,0.589042)(1.35106,0.550511)
- (1.36109,0.544356)(1.36891,0.536746)
-\psset{fillcolor=cmy_5f5fff}%
-\psset{linecolor=rgb_1f1f9f}%
-\pspolygon[fillstyle=solid](1.1182,0.510778)(1.23484,0.526055)
- (1.2273,0.530147)(1.21844,0.533751)(1.11043,0.515333)
- (1.11466,0.513118)(1.1182,0.510778)
-\psset{fillcolor=cmy_5b5bff}%
-\psset{linecolor=rgb_2020a3}%
-\pspolygon[fillstyle=solid](1.49483,0.572133)(1.62644,0.6285)
- (1.61057,0.641013)(1.59029,0.647141)(1.46867,0.589042)
- (1.48332,0.582232)(1.49483,0.572133)
-\psset{fillcolor=cmy_5858ff}%
-\psset{linecolor=rgb_2121a6}%
-\pspolygon[fillstyle=solid](1.24569,0.516371)(1.36891,0.536746)
- (1.36109,0.544356)(1.35106,0.550511)(1.23484,0.526055)
- (1.24099,0.52146)(1.24569,0.516371)
-\psset{fillcolor=cmy_5d5dff}%
-\psset{linecolor=rgb_2020a1}%
-\pspolygon[fillstyle=solid](1,0.5)(1.01993,0.53134)
- (1.01046,0.531756)(1.00092,0.532012)(1,0.5)
-\pspolygon[fillstyle=solid](1,0.5)(1.00092,0.532012)
- (0.991382,0.5321)(0.98189,0.532011)(1,0.5)
-\pspolygon[fillstyle=solid](1,0.5)(1.03849,0.530055)
- (1.02929,0.53077)(1.01993,0.53134)(1,0.5)
-\pspolygon[fillstyle=solid](1,0.5)(0.98189,0.532011)
- (0.972499,0.531735)(0.963262,0.531266)(1,0.5)
-\pspolygon[fillstyle=solid](1,0.5)(1.05617,0.528201)
- (1.04746,0.529197)(1.03849,0.530055)(1,0.5)
-\psset{fillcolor=cmy_5c5cff}%
-\psset{linecolor=rgb_2020a2}%
-\pspolygon[fillstyle=solid](1,0.5)(0.963262,0.531266)
- (0.954234,0.530596)(0.945465,0.52972)(1,0.5)
-\psset{fillcolor=cmy_4343ff}%
-\psset{linecolor=rgb_2525bb}%
-\pspolygon[fillstyle=solid](0.755889,0.507874)(0.636366,0.506205)
- (0.630886,0.49422)(0.62752,0.482848)(0.750565,0.495176)
- (0.752488,0.50145)(0.755889,0.507874)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1,0.5)(1.07258,0.525802)
- (1.06456,0.527069)(1.05617,0.528201)(1,0.5)
-\psset{fillcolor=cmy_5c5cff}%
-\psset{linecolor=rgb_2020a2}%
-\pspolygon[fillstyle=solid](1,0.5)(0.945465,0.52972)
- (0.937007,0.528634)(0.928911,0.52734)(1,0.5)
-\psset{fillcolor=cmy_4c4cff}%
-\psset{linecolor=rgb_2323b2}%
-\pspolygon[fillstyle=solid](0.882464,0.510471)(0.76699,0.520758)
- (0.760736,0.514347)(0.755889,0.507874)(0.877275,0.505078)
- (0.879506,0.507799)(0.882464,0.510471)
-\pspolygon[fillstyle=solid](0.62752,0.482848)(0.507551,0.458909)
- (0.505457,0.442216)(0.50598,0.427985)(0.627253,0.462871)
- (0.6263,0.472334)(0.62752,0.482848)
-\psset{fillcolor=cmy_5f5fff}%
-\psset{linecolor=rgb_1f1f9f}%
-\pspolygon[fillstyle=solid](1,0.5)(1.08732,0.52286)
- (1.08018,0.524399)(1.07258,0.525802)(1,0.5)
-\psset{fillcolor=cmy_5a5aff}%
-\psset{linecolor=rgb_2020a4}%
-\pspolygon[fillstyle=solid](1,0.5)(0.928911,0.52734)
- (0.921223,0.525839)(0.913992,0.524138)(1,0.5)
-\pspolygon[fillstyle=solid](1.12312,0.505768)(1.24569,0.516371)
- (1.24099,0.52146)(1.23484,0.526055)(1.1182,0.510778)
- (1.12103,0.508324)(1.12312,0.505768)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1.62644,0.6285)(1.76797,0.713246)
- (1.74686,0.728005)(1.71949,0.731475)(1.59029,0.647141)
- (1.61057,0.641013)(1.62644,0.6285)
-\psset{fillcolor=cmy_6a6aff}%
-\psset{linecolor=rgb_1d1d94}%
-\pspolygon[fillstyle=solid](0.50598,0.427985)(0.390156,0.374904)
- (0.392913,0.35979)(0.398466,0.350056)(0.515019,0.407859)
- (0.509149,0.416487)(0.50598,0.427985)
-\psset{fillcolor=cmy_5959ff}%
-\psset{linecolor=rgb_2121a5}%
-\pspolygon[fillstyle=solid](1,0.5)(0.913992,0.524138)
- (0.90726,0.522245)(0.90107,0.520175)(1,0.5)
-\psset{fillcolor=cmy_5f5fff}%
-\psset{linecolor=rgb_1f1f9f}%
-\pspolygon[fillstyle=solid](1,0.5)(1.10005,0.519369)
- (1.09396,0.521183)(1.08732,0.52286)(1,0.5)
-\psset{fillcolor=cmy_5252ff}%
-\psset{linecolor=rgb_2222ac}%
-\pspolygon[fillstyle=solid](1.54709,0.00607935)(1.61087,-0.15044)
- (1.66387,-0.145468)(1.71591,-0.120081)(1.6438,0.0321256)
- (1.59652,0.0115261)(1.54709,0.00607935)
-\psset{fillcolor=cmy_5757ff}%
-\psset{linecolor=rgb_2121a7}%
-\pspolygon[fillstyle=solid](1,0.5)(0.90107,0.520175)
- (0.895461,0.517942)(0.890469,0.515566)(1,0.5)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1,0.5)(1.11043,0.515333)
- (1.10555,0.517419)(1.10005,0.519369)(1,0.5)
-\psset{fillcolor=cmy_5050ff}%
-\psset{linecolor=rgb_2222ae}%
-\pspolygon[fillstyle=solid](0.877275,0.505078)(0.755889,0.507874)
- (0.752488,0.50145)(0.750565,0.495176)(0.875059,0.499586)
- (0.875788,0.502332)(0.877275,0.505078)
-\psset{fillcolor=cmy_5656ff}%
-\psset{linecolor=rgb_2121a8}%
-\pspolygon[fillstyle=solid](1,0.5)(0.890469,0.515566)
- (0.886127,0.513068)(0.882464,0.510471)(1,0.5)
-\psset{fillcolor=cmy_5d5dff}%
-\psset{linecolor=rgb_2020a1}%
-\pspolygon[fillstyle=solid](1,0.5)(1.1182,0.510778)
- (1.11466,0.513118)(1.11043,0.515333)(1,0.5)
-\psset{fillcolor=cmy_2626ff}%
-\psset{linecolor=rgb_2b2bd8}%
-\pspolygon[fillstyle=solid](1.73326,0.116772)(1.81976,-0.0100767)
- (1.87193,0.0727816)(1.92376,0.172159)(1.81542,0.25192)
- (1.77544,0.178833)(1.73326,0.116772)
-\psset{fillcolor=cmy_4b4bff}%
-\psset{linecolor=rgb_2323b3}%
-\pspolygon[fillstyle=solid](1.25055,0.504845)(1.37753,0.517385)
- (1.37441,0.527719)(1.36891,0.536746)(1.24569,0.516371)
- (1.24889,0.510816)(1.25055,0.504845)
-\psset{fillcolor=cmy_5656ff}%
-\psset{linecolor=rgb_2121a8}%
-\pspolygon[fillstyle=solid](1,0.5)(0.882464,0.510471)
- (0.879506,0.507799)(0.877275,0.505078)(1,0.5)
-\psset{fillcolor=cmy_5b5bff}%
-\psset{linecolor=rgb_2020a3}%
-\pspolygon[fillstyle=solid](1,0.5)(1.12312,0.505768)
- (1.12103,0.508324)(1.1182,0.510778)(1,0.5)
-\psset{fillcolor=cmy_5454ff}%
-\psset{linecolor=rgb_2222aa}%
-\pspolygon[fillstyle=solid](1.12505,0.500414)(1.25055,0.504845)
- (1.24889,0.510816)(1.24569,0.516371)(1.12312,0.505768)
- (1.12447,0.503125)(1.12505,0.500414)
-\psset{fillcolor=cmy_4f4fff}%
-\psset{linecolor=rgb_2323af}%
-\pspolygon[fillstyle=solid](0.750565,0.495176)(0.62752,0.482848)
- (0.6263,0.472334)(0.627253,0.462871)(0.751245,0.483425)
- (0.750144,0.489142)(0.750565,0.495176)
-\psset{fillcolor=cmy_4141ff}%
-\psset{linecolor=rgb_2525bd}%
-\pspolygon[fillstyle=solid](1.37753,0.517385)(1.50776,0.542368)
- (1.50301,0.558773)(1.49483,0.572133)(1.36891,0.536746)
- (1.37441,0.527719)(1.37753,0.517385)
-\psset{fillcolor=cmy_5757ff}%
-\psset{linecolor=rgb_2121a7}%
-\pspolygon[fillstyle=solid](1,0.5)(0.877275,0.505078)
- (0.875788,0.502332)(0.875059,0.499586)(1,0.5)
-\psset{fillcolor=cmy_5858ff}%
-\psset{linecolor=rgb_2121a6}%
-\pspolygon[fillstyle=solid](1,0.5)(1.12505,0.500414)
- (1.12447,0.503125)(1.12312,0.505768)(1,0.5)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.398466,0.350056)(0.28937,0.271374)
- (0.296309,0.269877)(0.306183,0.276904)(0.418616,0.346439)
- (0.406961,0.34569)(0.398466,0.350056)
-\psset{fillcolor=cmy_5454ff}%
-\psset{linecolor=rgb_2222aa}%
-\pspolygon[fillstyle=solid](0.875059,0.499586)(0.750565,0.495176)
- (0.750144,0.489142)(0.751245,0.483425)(0.875906,0.494186)
- (0.875097,0.496864)(0.875059,0.499586)
-\psset{fillcolor=cmy_5858ff}%
-\psset{linecolor=rgb_2121a6}%
-\pspolygon[fillstyle=solid](1,0.5)(0.875059,0.499586)
- (0.875097,0.496864)(0.875906,0.494186)(1,0.5)
-\psset{fillcolor=cmy_6161ff}%
-\psset{linecolor=rgb_1f1f9d}%
-\pspolygon[fillstyle=solid](1.76797,0.713246)(1.92548,0.836328)
- (1.8979,0.852992)(1.86122,0.850819)(1.71949,0.731475)
- (1.74686,0.728005)(1.76797,0.713246)
-\psset{fillcolor=cmy_5656ff}%
-\psset{linecolor=rgb_2121a8}%
-\pspolygon[fillstyle=solid](1,0.5)(1.1239,0.494874)
- (1.12486,0.497656)(1.12505,0.500414)(1,0.5)
-\psset{fillcolor=cmy_3b3bff}%
-\psset{linecolor=rgb_2727c3}%
-\pspolygon[fillstyle=solid](1.50776,0.542368)(1.64384,0.584677)
- (1.63759,0.609591)(1.62644,0.6285)(1.49483,0.572133)
- (1.50301,0.558773)(1.50776,0.542368)
-\psset{fillcolor=cmy_6161ff}%
-\psset{linecolor=rgb_1f1f9d}%
-\pspolygon[fillstyle=solid](0.627253,0.462871)(0.50598,0.427985)
- (0.509149,0.416487)(0.515019,0.407859)(0.635784,0.447596)
- (0.630406,0.4546)(0.627253,0.462871)
-\psset{fillcolor=cmy_5a5aff}%
-\psset{linecolor=rgb_2020a4}%
-\pspolygon[fillstyle=solid](1,0.5)(0.875906,0.494186)
- (0.877488,0.491574)(0.879836,0.489043)(1,0.5)
-\psset{fillcolor=cmy_4e4eff}%
-\psset{linecolor=rgb_2323b0}%
-\pspolygon[fillstyle=solid](1.1239,0.494874)(1.24918,0.491962)
- (1.25065,0.498531)(1.25055,0.504845)(1.12505,0.500414)
- (1.12486,0.497656)(1.1239,0.494874)
-\psset{fillcolor=cmy_5555ff}%
-\psset{linecolor=rgb_2121a9}%
-\pspolygon[fillstyle=solid](1,0.5)(1.11965,0.48934)
- (1.12216,0.492093)(1.1239,0.494874)(1,0.5)
-\psset{fillcolor=cmy_5c5cff}%
-\psset{linecolor=rgb_2020a2}%
-\pspolygon[fillstyle=solid](1,0.5)(0.879836,0.489043)
- (0.882942,0.486608)(0.886789,0.484281)(1,0.5)
-\psset{fillcolor=cmy_5555ff}%
-\psset{linecolor=rgb_2121a9}%
-\pspolygon[fillstyle=solid](1,0.5)(1.11239,0.484027)
- (1.11639,0.486643)(1.11965,0.48934)(1,0.5)
-\psset{fillcolor=cmy_3e3eff}%
-\psset{linecolor=rgb_2626c0}%
-\pspolygon[fillstyle=solid](1.24918,0.491962)(1.37644,0.493576)
- (1.37822,0.505923)(1.37753,0.517385)(1.25055,0.504845)
- (1.25065,0.498531)(1.24918,0.491962)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1,0.5)(0.886789,0.484281)
- (0.89136,0.482071)(0.896629,0.479987)(1,0.5)
-\psset{fillcolor=cmy_5959ff}%
-\psset{linecolor=rgb_2121a5}%
-\pspolygon[fillstyle=solid](0.875906,0.494186)(0.751245,0.483425)
- (0.753877,0.478082)(0.758047,0.473156)(0.879836,0.489043)
- (0.877488,0.491574)(0.875906,0.494186)
-\psset{fillcolor=cmy_5656ff}%
-\psset{linecolor=rgb_2121a8}%
-\pspolygon[fillstyle=solid](1,0.5)(1.10226,0.479146)
- (1.10767,0.48152)(1.11239,0.484027)(1,0.5)
-\psset{fillcolor=cmy_5a5aff}%
-\psset{linecolor=rgb_2020a4}%
-\pspolygon[fillstyle=solid](0.751245,0.483425)(0.627253,0.462871)
- (0.630406,0.4546)(0.635784,0.447596)(0.758047,0.473156)
- (0.753877,0.478082)(0.751245,0.483425)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1,0.5)(0.896629,0.479987)
- (0.902567,0.478033)(0.909139,0.476214)(1,0.5)
-\psset{fillcolor=cmy_5757ff}%
-\psset{linecolor=rgb_2121a7}%
-\pspolygon[fillstyle=solid](1,0.5)(1.08949,0.474885)
- (1.09619,0.476928)(1.10226,0.479146)(1,0.5)
-\psset{fillcolor=cmy_4a4aff}%
-\psset{linecolor=rgb_2424b4}%
-\pspolygon[fillstyle=solid](1.11965,0.48934)(1.24148,0.478487)
- (1.24612,0.485243)(1.24918,0.491962)(1.1239,0.494874)
- (1.12216,0.492093)(1.11965,0.48934)
-\psset{fillcolor=cmy_2a2aff}%
-\psset{linecolor=rgb_2a2ad4}%
-\pspolygon[fillstyle=solid](1.37644,0.493576)(1.50673,0.502132)
- (1.50899,0.523306)(1.50776,0.542368)(1.37753,0.517385)
- (1.37822,0.505923)(1.37644,0.493576)
-\psset{fillcolor=cmy_5959ff}%
-\psset{linecolor=rgb_2121a5}%
-\pspolygon[fillstyle=solid](1,0.5)(1.07439,0.47139)
- (1.08221,0.473035)(1.08949,0.474885)(1,0.5)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](1,0.5)(0.909139,0.476214)
- (0.916306,0.474532)(0.924023,0.47299)(1,0.5)
-\psset{fillcolor=cmy_7878ff}%
-\psset{linecolor=rgb_1a1a86}%
-\pspolygon[fillstyle=solid](0.20082,0.188793)(0.105573,0.08167)
- (0.105946,0.125602)(0.108805,0.186635)(0.221782,0.25564)
- (0.209394,0.216686)(0.20082,0.188793)
-\psset{fillcolor=cmy_3939ff}%
-\psset{linecolor=rgb_2727c5}%
-\pspolygon[fillstyle=solid](1.64384,0.584677)(1.78949,0.650223)
- (1.78228,0.687084)(1.76797,0.713246)(1.62644,0.6285)
- (1.63759,0.609591)(1.64384,0.584677)
-\psset{fillcolor=cmy_5a5aff}%
-\psset{linecolor=rgb_2020a4}%
-\pspolygon[fillstyle=solid](1,0.5)(1.05734,0.468753)
- (1.06608,0.469961)(1.07439,0.47139)(1,0.5)
-\psset{fillcolor=cmy_5d5dff}%
-\psset{linecolor=rgb_2020a1}%
-\pspolygon[fillstyle=solid](1,0.5)(0.924023,0.47299)
- (0.932243,0.471589)(0.940912,0.470334)(1,0.5)
-\psset{fillcolor=cmy_5b5bff}%
-\psset{linecolor=rgb_2020a3}%
-\pspolygon[fillstyle=solid](1,0.5)(1.03876,0.46701)
- (1.04821,0.467769)(1.05734,0.468753)(1,0.5)
-\psset{fillcolor=cmy_5c5cff}%
-\psset{linecolor=rgb_2020a2}%
-\pspolygon[fillstyle=solid](1,0.5)(0.940912,0.470334)
- (0.949975,0.469227)(0.959372,0.468273)(1,0.5)
-\psset{fillcolor=cmy_6363ff}%
-\psset{linecolor=rgb_1f1f9b}%
-\pspolygon[fillstyle=solid](1.92548,0.836328)(2.1079,1.01222)
- (2.07205,1.03012)(2.0226,1.01759)(1.86122,0.850819)
- (1.8979,0.852992)(1.92548,0.836328)
-\psset{fillcolor=cmy_5b5bff}%
-\psset{linecolor=rgb_2020a3}%
-\pspolygon[fillstyle=solid](1,0.5)(1.01915,0.466147)
- (1.02906,0.466471)(1.03876,0.46701)(1,0.5)
-\psset{fillcolor=cmy_5e5eff}%
-\psset{linecolor=rgb_2020a0}%
-\pspolygon[fillstyle=solid](0.879836,0.489043)(0.758047,0.473156)
- (0.763749,0.468665)(0.770971,0.464613)(0.886789,0.484281)
- (0.882942,0.486608)(0.879836,0.489043)
-\psset{fillcolor=cmy_5b5bff}%
-\psset{linecolor=rgb_2020a3}%
-\pspolygon[fillstyle=solid](1,0.5)(0.959372,0.468273)
- (0.969041,0.467478)(0.978917,0.466848)(1,0.5)
-\psset{fillcolor=cmy_7878ff}%
-\psset{linecolor=rgb_1a1a86}%
-\pspolygon[fillstyle=solid](0.515019,0.407859)(0.398466,0.350056)
- (0.406961,0.34569)(0.418616,0.346439)(0.535179,0.399064)
- (0.523664,0.402099)(0.515019,0.407859)
-\psset{fillcolor=cmy_5b5bff}%
-\psset{linecolor=rgb_2020a3}%
-\pspolygon[fillstyle=solid](1,0.5)(0.999023,0.466116)
- (1.00912,0.466032)(1.01915,0.466147)(1,0.5)
-\pspolygon[fillstyle=solid](1,0.5)(0.978917,0.466848)
- (0.988933,0.466391)(0.999023,0.466116)(1,0.5)
-\psset{fillcolor=cmy_3535ff}%
-\psset{linecolor=rgb_2828c9}%
-\pspolygon[fillstyle=solid](1.24148,0.478487)(1.36555,0.467434)
- (1.37221,0.480637)(1.37644,0.493576)(1.24918,0.491962)
- (1.24612,0.485243)(1.24148,0.478487)
-\psset{fillcolor=cmy_4848ff}%
-\psset{linecolor=rgb_2424b6}%
-\pspolygon[fillstyle=solid](1.11239,0.484027)(1.22757,0.465351)
- (1.23529,0.471816)(1.24148,0.478487)(1.11965,0.48934)
- (1.11639,0.486643)(1.11239,0.484027)
-\psset{fillcolor=cmy_1b1bff}%
-\psset{linecolor=rgb_2d2de3}%
-\pspolygon[fillstyle=solid](1.50673,0.502132)(1.64155,0.520244)
- (1.64513,0.55453)(1.64384,0.584677)(1.50776,0.542368)
- (1.50899,0.523306)(1.50673,0.502132)
-\psset{fillcolor=cmy_2d2dff}%
-\psset{linecolor=rgb_2929d1}%
-\pspolygon[fillstyle=solid](1.56058,0.160334)(1.6438,0.0321256)
- (1.68934,0.0674669)(1.73326,0.116772)(1.6364,0.222327)
- (1.59977,0.186629)(1.56058,0.160334)
-\psset{fillcolor=cmy_6464ff}%
-\psset{linecolor=rgb_1e1e9a}%
-\pspolygon[fillstyle=solid](0.758047,0.473156)(0.635784,0.447596)
- (0.64341,0.441874)(0.653304,0.437383)(0.770971,0.464613)
- (0.763749,0.468665)(0.758047,0.473156)
-\psset{fillcolor=cmy_6f6fff}%
-\psset{linecolor=rgb_1c1c8f}%
-\pspolygon[fillstyle=solid](0.635784,0.447596)(0.515019,0.407859)
- (0.523664,0.402099)(0.535179,0.399064)(0.653304,0.437383)
- (0.64341,0.441874)(0.635784,0.447596)
-\psset{fillcolor=cmy_1b1bff}%
-\psset{linecolor=rgb_2d2de3}%
-\pspolygon[fillstyle=solid](1.36555,0.467434)(1.49191,0.456177)
- (1.501,0.479507)(1.50673,0.502132)(1.37644,0.493576)
- (1.37221,0.480637)(1.36555,0.467434)
-\psset{fillcolor=cmy_1919ff}%
-\psset{linecolor=rgb_2d2de5}%
-\pspolygon[fillstyle=solid](1.6364,0.222327)(1.73326,0.116772)
- (1.77544,0.178833)(1.81542,0.25192)(1.7012,0.317458)
- (1.67032,0.266403)(1.6364,0.222327)
-\psset{fillcolor=cmy_6161ff}%
-\psset{linecolor=rgb_1f1f9d}%
-\pspolygon[fillstyle=solid](0.886789,0.484281)(0.770971,0.464613)
- (0.779692,0.460981)(0.78988,0.457739)(0.896629,0.479987)
- (0.89136,0.482071)(0.886789,0.484281)
-\psset{fillcolor=cmy_4949ff}%
-\psset{linecolor=rgb_2424b5}%
-\pspolygon[fillstyle=solid](1.10226,0.479146)(1.20772,0.4535)
- (1.21837,0.45921)(1.22757,0.465351)(1.11239,0.484027)
- (1.10767,0.48152)(1.10226,0.479146)
-\psset{fillcolor=cmy_1111ff}%
-\psset{linecolor=rgb_2f2fed}%
-\pspolygon[fillstyle=solid](1.81542,0.25192)(1.92376,0.172159)
- (1.97421,0.285475)(2.02166,0.408983)(1.88544,0.421119)
- (1.85244,0.33369)(1.81542,0.25192)
-\psset{fillcolor=cmy_3030ff}%
-\psset{linecolor=rgb_2929ce}%
-\pspolygon[fillstyle=solid](1.22757,0.465351)(1.34511,0.441628)
- (1.3565,0.454315)(1.36555,0.467434)(1.24148,0.478487)
- (1.23529,0.471816)(1.22757,0.465351)
-\psset{fillcolor=cmy_1313ff}%
-\psset{linecolor=rgb_2f2feb}%
-\pspolygon[fillstyle=solid](1.64155,0.520244)(1.78302,0.550882)
- (1.78963,0.60413)(1.78949,0.650223)(1.64384,0.584677)
- (1.64513,0.55453)(1.64155,0.520244)
-\psset{fillcolor=cmy_3939ff}%
-\psset{linecolor=rgb_2727c5}%
-\pspolygon[fillstyle=solid](1.78949,0.650223)(1.94995,0.746725)
- (1.94296,0.80048)(1.92548,0.836328)(1.76797,0.713246)
- (1.78228,0.687084)(1.78949,0.650223)
-\psset{fillcolor=cmy_0808ff}%
-\psset{linecolor=rgb_3131f6}%
-\pspolygon[fillstyle=solid](1.49191,0.456177)(1.62063,0.44471)
- (1.63329,0.483148)(1.64155,0.520244)(1.50673,0.502132)
- (1.501,0.479507)(1.49191,0.456177)
-\psset{fillcolor=cmy_4c4cff}%
-\psset{linecolor=rgb_2323b2}%
-\pspolygon[fillstyle=solid](1.08949,0.474885)(1.18236,0.443736)
- (1.1957,0.448317)(1.20772,0.4535)(1.10226,0.479146)
- (1.09619,0.476928)(1.08949,0.474885)
-\psset{fillcolor=cmy_6464ff}%
-\psset{linecolor=rgb_1e1e9a}%
-\pspolygon[fillstyle=solid](0.896629,0.479987)(0.78988,0.457739)
- (0.801491,0.454842)(0.81447,0.452238)(0.909139,0.476214)
- (0.902567,0.478033)(0.896629,0.479987)
-\psset{fillcolor=cmy_7c7cff}%
-\psset{linecolor=rgb_1a1a82}%
-\pspolygon[fillstyle=solid](0.306183,0.276904)(0.20082,0.188793)
- (0.209394,0.216686)(0.221782,0.25564)(0.336923,0.313416)
- (0.319506,0.291774)(0.306183,0.276904)
-\psset{fillcolor=cmy_1515ff}%
-\psset{linecolor=rgb_2e2ee9}%
-\pspolygon[fillstyle=solid](1.34511,0.441628)(1.46416,0.410519)
- (1.47958,0.432922)(1.49191,0.456177)(1.36555,0.467434)
- (1.3565,0.454315)(1.34511,0.441628)
-\psset{fillcolor=cmy_0808ff}%
-\psset{linecolor=rgb_3131f6}%
-\pspolygon[fillstyle=solid](1.7012,0.317458)(1.81542,0.25192)
- (1.85244,0.33369)(1.88544,0.421119)(1.75179,0.433026)
- (1.72856,0.373711)(1.7012,0.317458)
-\psset{fillcolor=cmy_5050ff}%
-\psset{linecolor=rgb_2222ae}%
-\pspolygon[fillstyle=solid](1.07439,0.47139)(1.15207,0.436591)
- (1.16779,0.439816)(1.18236,0.443736)(1.08949,0.474885)
- (1.08221,0.473035)(1.07439,0.47139)
-\psset{fillcolor=cmy_6b6bff}%
-\psset{linecolor=rgb_1d1d93}%
-\pspolygon[fillstyle=solid](0.770971,0.464613)(0.653304,0.437383)
- (0.665477,0.434016)(0.679931,0.431611)(0.78988,0.457739)
- (0.779692,0.460981)(0.770971,0.464613)
-\psset{fillcolor=cmy_3131ff}%
-\psset{linecolor=rgb_2929cd}%
-\pspolygon[fillstyle=solid](1.20772,0.4535)(1.31566,0.418861)
- (1.33147,0.429708)(1.34511,0.441628)(1.22757,0.465351)
- (1.21837,0.45921)(1.20772,0.4535)
-\psset{fillcolor=cmy_4545ff}%
-\psset{linecolor=rgb_2525b9}%
-\pspolygon[fillstyle=solid](1.4744,0.138283)(1.54709,0.00607935)
- (1.59652,0.0115261)(1.6438,0.0321256)(1.56058,0.160334)
- (1.51884,0.144112)(1.4744,0.138283)
-\psset{fillcolor=cmy_0101ff}%
-\psset{linecolor=rgb_3232fd}%
-\pspolygon[fillstyle=solid](1.62063,0.44471)(1.75179,0.433026)
- (1.77018,0.49296)(1.78302,0.550882)(1.64155,0.520244)
- (1.63329,0.483148)(1.62063,0.44471)
-\psset{fillcolor=cmy_6464ff}%
-\psset{linecolor=rgb_1e1e9a}%
-\pspolygon[fillstyle=solid](0.909139,0.476214)(0.81447,0.452238)
- (0.828748,0.449869)(0.844242,0.44768)(0.924023,0.47299)
- (0.916306,0.474532)(0.909139,0.476214)
-\psset{fillcolor=cmy_0505ff}%
-\psset{linecolor=rgb_3131f9}%
-\pspolygon[fillstyle=solid](1.46416,0.410519)(1.58342,0.369794)
- (1.6039,0.406438)(1.62063,0.44471)(1.49191,0.456177)
- (1.47958,0.432922)(1.46416,0.410519)
-\psset{fillcolor=cmy_0202ff}%
-\psset{linecolor=rgb_3232fc}%
-\pspolygon[fillstyle=solid](1.58342,0.369794)(1.7012,0.317458)
- (1.72856,0.373711)(1.75179,0.433026)(1.62063,0.44471)
- (1.6039,0.406438)(1.58342,0.369794)
-\psset{fillcolor=cmy_0e0eff}%
-\psset{linecolor=rgb_3030f0}%
-\pspolygon[fillstyle=solid](1.53245,0.306569)(1.6364,0.222327)
- (1.67032,0.266403)(1.7012,0.317458)(1.58342,0.369794)
- (1.55951,0.336116)(1.53245,0.306569)
-\psset{fillcolor=cmy_6969ff}%
-\psset{linecolor=rgb_1d1d95}%
-\pspolygon[fillstyle=solid](1.43923,0.040527)(1.49747,-0.0982892)
- (1.55585,-0.134733)(1.61087,-0.15044)(1.54709,0.00607935)
- (1.49491,0.0158499)(1.43923,0.040527)
-\psset{fillcolor=cmy_5555ff}%
-\psset{linecolor=rgb_2121a9}%
-\pspolygon[fillstyle=solid](1.05734,0.468753)(1.11756,0.432255)
- (1.13529,0.434074)(1.15207,0.436591)(1.07439,0.47139)
- (1.06608,0.469961)(1.05734,0.468753)
-\psset{fillcolor=cmy_6464ff}%
-\psset{linecolor=rgb_1e1e9a}%
-\pspolygon[fillstyle=solid](0.924023,0.47299)(0.844242,0.44768)
- (0.860857,0.44562)(0.878483,0.443646)(0.940912,0.470334)
- (0.932243,0.471589)(0.924023,0.47299)
-\psset{fillcolor=cmy_1818ff}%
-\psset{linecolor=rgb_2e2ee6}%
-\pspolygon[fillstyle=solid](1.31566,0.418861)(1.42461,0.371119)
- (1.44579,0.3897)(1.46416,0.410519)(1.34511,0.441628)
- (1.33147,0.429708)(1.31566,0.418861)
-\psset{fillcolor=cmy_5959ff}%
-\psset{linecolor=rgb_2121a5}%
-\pspolygon[fillstyle=solid](1.03876,0.46701)(1.07968,0.43057)
- (1.09898,0.431103)(1.11756,0.432255)(1.05734,0.468753)
- (1.04821,0.467769)(1.03876,0.46701)
-\psset{fillcolor=cmy_1111ff}%
-\psset{linecolor=rgb_2f2fed}%
-\pspolygon[fillstyle=solid](1.78302,0.550882)(1.93401,0.597589)
- (1.94669,0.677812)(1.94995,0.746725)(1.78949,0.650223)
- (1.78963,0.60413)(1.78302,0.550882)
-\psset{fillcolor=cmy_7777ff}%
-\psset{linecolor=rgb_1b1b87}%
-\pspolygon[fillstyle=solid](0.653304,0.437383)(0.535179,0.399064)
- (0.549666,0.398476)(0.567233,0.399933)(0.679931,0.431611)
- (0.665477,0.434016)(0.653304,0.437383)
-\psset{fillcolor=cmy_0101ff}%
-\psset{linecolor=rgb_3232fd}%
-\pspolygon[fillstyle=solid](1.75179,0.433026)(1.88544,0.421119)
- (1.91311,0.510505)(1.93401,0.597589)(1.78302,0.550882)
- (1.77018,0.49296)(1.75179,0.433026)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](0.418616,0.346439)(0.306183,0.276904)
- (0.319506,0.291774)(0.336923,0.313416)(0.452538,0.361054)
- (0.433703,0.351806)(0.418616,0.346439)
-\psset{fillcolor=cmy_3737ff}%
-\psset{linecolor=rgb_2727c7}%
-\pspolygon[fillstyle=solid](1.18236,0.443736)(1.27784,0.401367)
- (1.29775,0.409345)(1.31566,0.418861)(1.20772,0.4535)
- (1.1957,0.448317)(1.18236,0.443736)
-\psset{fillcolor=cmy_0c0cff}%
-\psset{linecolor=rgb_3030f2}%
-\pspolygon[fillstyle=solid](1.42461,0.371119)(1.53245,0.306569)
- (1.55951,0.336116)(1.58342,0.369794)(1.46416,0.410519)
- (1.44579,0.3897)(1.42461,0.371119)
-\psset{fillcolor=cmy_2020ff}%
-\psset{linecolor=rgb_2c2cde}%
-\pspolygon[fillstyle=solid](1.46963,0.263451)(1.56058,0.160334)
- (1.59977,0.186629)(1.6364,0.222327)(1.53245,0.306569)
- (1.50244,0.282108)(1.46963,0.263451)
-\psset{fillcolor=cmy_6363ff}%
-\psset{linecolor=rgb_1f1f9b}%
-\pspolygon[fillstyle=solid](0.940912,0.470334)(0.878483,0.443646)
- (0.896998,0.44173)(0.916271,0.43986)(0.959372,0.468273)
- (0.949975,0.469227)(0.940912,0.470334)
-\psset{fillcolor=cmy_5d5dff}%
-\psset{linecolor=rgb_2020a1}%
-\pspolygon[fillstyle=solid](1.01915,0.466147)(1.03945,0.431091)
- (1.05979,0.43059)(1.07968,0.43057)(1.03876,0.46701)
- (1.02906,0.466471)(1.01915,0.466147)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.535179,0.399064)(0.418616,0.346439)
- (0.433703,0.351806)(0.452538,0.361054)(0.567233,0.399933)
- (0.549666,0.398476)(0.535179,0.399064)
-\psset{fillcolor=cmy_3939ff}%
-\psset{linecolor=rgb_2727c5}%
-\pspolygon[fillstyle=solid](1.94995,0.746725)(2.13284,0.884999)
- (2.12834,0.963057)(2.1079,1.01222)(1.92548,0.836328)
- (1.94296,0.80048)(1.94995,0.746725)
-\psset{fillcolor=cmy_6262ff}%
-\psset{linecolor=rgb_1f1f9c}%
-\pspolygon[fillstyle=solid](0.959372,0.468273)(0.916271,0.43986)
- (0.936157,0.438041)(0.956509,0.436296)(0.978917,0.466848)
- (0.969041,0.467478)(0.959372,0.468273)
-\psset{fillcolor=cmy_5f5fff}%
-\psset{linecolor=rgb_1f1f9f}%
-\pspolygon[fillstyle=solid](0.999023,0.466116)(0.997986,0.433208)
- (1.0188,0.431991)(1.03945,0.431091)(1.01915,0.466147)
- (1.00912,0.466032)(0.999023,0.466116)
-\psset{fillcolor=cmy_6f6fff}%
-\psset{linecolor=rgb_1c1c8f}%
-\pspolygon[fillstyle=solid](0.78988,0.457739)(0.679931,0.431611)
- (0.696648,0.429965)(0.71559,0.428845)(0.81447,0.452238)
- (0.801491,0.454842)(0.78988,0.457739)
-\psset{fillcolor=cmy_6161ff}%
-\psset{linecolor=rgb_1f1f9d}%
-\pspolygon[fillstyle=solid](0.978917,0.466848)(0.956509,0.436296)
- (0.977171,0.434667)(0.997986,0.433208)(0.999023,0.466116)
- (0.988933,0.466391)(0.978917,0.466848)
-\psset{fillcolor=cmy_0303ff}%
-\psset{linecolor=rgb_3232fb}%
-\pspolygon[fillstyle=solid](1.88544,0.421119)(2.02166,0.408983)
- (2.06392,0.537585)(2.09838,0.664828)(1.93401,0.597589)
- (1.91311,0.510505)(1.88544,0.421119)
-\psset{fillcolor=cmy_4141ff}%
-\psset{linecolor=rgb_2525bd}%
-\pspolygon[fillstyle=solid](1.15207,0.436591)(1.23246,0.39052)
- (1.25605,0.395068)(1.27784,0.401367)(1.18236,0.443736)
- (1.16779,0.439816)(1.15207,0.436591)
-\psset{fillcolor=cmy_2323ff}%
-\psset{linecolor=rgb_2b2bdb}%
-\pspolygon[fillstyle=solid](1.27784,0.401367)(1.37438,0.342743)
- (1.40077,0.355325)(1.42461,0.371119)(1.31566,0.418861)
- (1.29775,0.409345)(1.27784,0.401367)
-\psset{fillcolor=cmy_1b1bff}%
-\psset{linecolor=rgb_2d2de3}%
-\pspolygon[fillstyle=solid](1.37438,0.342743)(1.46963,0.263451)
- (1.50244,0.282108)(1.53245,0.306569)(1.42461,0.371119)
- (1.40077,0.355325)(1.37438,0.342743)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](0.81447,0.452238)(0.71559,0.428845)
- (0.736691,0.427999)(0.759855,0.427181)(0.844242,0.44768)
- (0.828748,0.449869)(0.81447,0.452238)
-\psset{fillcolor=cmy_3939ff}%
-\psset{linecolor=rgb_2727c5}%
-\pspolygon[fillstyle=solid](1.39584,0.245193)(1.4744,0.138283)
- (1.51884,0.144112)(1.56058,0.160334)(1.46963,0.263451)
- (1.43409,0.251074)(1.39584,0.245193)
-\psset{fillcolor=cmy_0f0fff}%
-\psset{linecolor=rgb_2f2fef}%
-\pspolygon[fillstyle=solid](1.93401,0.597589)(2.09838,0.664828)
- (2.12222,0.783232)(2.13284,0.884999)(1.94995,0.746725)
- (1.94669,0.677812)(1.93401,0.597589)
-\psset{fillcolor=cmy_4e4eff}%
-\psset{linecolor=rgb_2323b0}%
-\pspolygon[fillstyle=solid](1.11756,0.432255)(1.18041,0.386614)
- (1.20721,0.387725)(1.23246,0.39052)(1.15207,0.436591)
- (1.13529,0.434074)(1.11756,0.432255)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](0.679931,0.431611)(0.567233,0.399933)
- (0.587968,0.402922)(0.611934,0.40685)(0.71559,0.428845)
- (0.696648,0.429965)(0.679931,0.431611)
-\psset{fillcolor=cmy_3434ff}%
-\psset{linecolor=rgb_2828ca}%
-\pspolygon[fillstyle=solid](1.23246,0.39052)(1.31435,0.328195)
- (1.34554,0.333655)(1.37438,0.342743)(1.27784,0.401367)
- (1.25605,0.395068)(1.23246,0.39052)
-\psset{fillcolor=cmy_3131ff}%
-\psset{linecolor=rgb_2929cd}%
-\pspolygon[fillstyle=solid](1.31435,0.328195)(1.39584,0.245193)
- (1.43409,0.251074)(1.46963,0.263451)(1.37438,0.342743)
- (1.34554,0.333655)(1.31435,0.328195)
-\psset{fillcolor=cmy_5a5aff}%
-\psset{linecolor=rgb_2020a4}%
-\pspolygon[fillstyle=solid](1.07968,0.43057)(1.1228,0.388846)
- (1.15222,0.387052)(1.18041,0.386614)(1.11756,0.432255)
- (1.09898,0.431103)(1.07968,0.43057)
-\psset{fillcolor=cmy_7272ff}%
-\psset{linecolor=rgb_1c1c8c}%
-\pspolygon[fillstyle=solid](0.844242,0.44768)(0.759855,0.427181)
- (0.784951,0.42616)(0.811811,0.424741)(0.878483,0.443646)
- (0.860857,0.44562)(0.844242,0.44768)
-\psset{fillcolor=cmy_6060ff}%
-\psset{linecolor=rgb_1f1f9e}%
-\pspolygon[fillstyle=solid](1.3764,0.157338)(1.43923,0.040527)
- (1.49491,0.0158499)(1.54709,0.00607935)(1.4744,0.138283)
- (1.42703,0.142821)(1.3764,0.157338)
-\psset{fillcolor=cmy_6363ff}%
-\psset{linecolor=rgb_1f1f9b}%
-\pspolygon[fillstyle=solid](1.03945,0.431091)(1.06103,0.395505)
- (1.09234,0.391756)(1.1228,0.388846)(1.07968,0.43057)
- (1.05979,0.43059)(1.03945,0.431091)
-\psset{fillcolor=cmy_7272ff}%
-\psset{linecolor=rgb_1c1c8c}%
-\pspolygon[fillstyle=solid](0.878483,0.443646)(0.811811,0.424741)
- (0.840235,0.422779)(0.869988,0.42019)(0.916271,0.43986)
- (0.896998,0.44173)(0.878483,0.443646)
-\psset{fillcolor=cmy_4a4aff}%
-\psset{linecolor=rgb_2424b4}%
-\pspolygon[fillstyle=solid](1.18041,0.386614)(1.24529,0.327916)
- (1.2809,0.32634)(1.31435,0.328195)(1.23246,0.39052)
- (1.20721,0.387725)(1.18041,0.386614)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](0.567233,0.399933)(0.452538,0.361054)
- (0.47545,0.373217)(0.502743,0.387128)(0.611934,0.40685)
- (0.587968,0.402922)(0.567233,0.399933)
-\psset{fillcolor=cmy_6a6aff}%
-\psset{linecolor=rgb_1d1d94}%
-\pspolygon[fillstyle=solid](0.997986,0.433208)(0.996875,0.404353)
- (1.02913,0.399802)(1.06103,0.395505)(1.03945,0.431091)
- (1.0188,0.431991)(0.997986,0.433208)
-\psset{fillcolor=cmy_7171ff}%
-\psset{linecolor=rgb_1c1c8d}%
-\pspolygon[fillstyle=solid](0.916271,0.43986)(0.869988,0.42019)
- (0.900811,0.41696)(0.932427,0.413148)(0.956509,0.436296)
- (0.936157,0.438041)(0.916271,0.43986)
-\psset{fillcolor=cmy_6e6eff}%
-\psset{linecolor=rgb_1c1c90}%
-\pspolygon[fillstyle=solid](0.956509,0.436296)(0.932427,0.413148)
- (0.964546,0.408882)(0.996875,0.404353)(0.997986,0.433208)
- (0.977171,0.434667)(0.956509,0.436296)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.71559,0.428845)(0.611934,0.40685)
- (0.639145,0.411067)(0.669551,0.414914)(0.759855,0.427181)
- (0.736691,0.427999)(0.71559,0.428845)
-\psset{fillcolor=cmy_5656ff}%
-\psset{linecolor=rgb_2121a8}%
-\pspolygon[fillstyle=solid](1.31112,0.252497)(1.3764,0.157338)
- (1.42703,0.142821)(1.4744,0.138283)(1.39584,0.245193)
- (1.35487,0.24577)(1.31112,0.252497)
-\psset{fillcolor=cmy_4e4eff}%
-\psset{linecolor=rgb_2323b0}%
-\pspolygon[fillstyle=solid](1.24529,0.327916)(1.31112,0.252497)
- (1.35487,0.24577)(1.39584,0.245193)(1.31435,0.328195)
- (1.2809,0.32634)(1.24529,0.327916)
-\psset{fillcolor=cmy_5f5fff}%
-\psset{linecolor=rgb_1f1f9f}%
-\pspolygon[fillstyle=solid](1.1228,0.388846)(1.16806,0.339925)
- (1.20762,0.332598)(1.24529,0.327916)(1.18041,0.386614)
- (1.15222,0.387052)(1.1228,0.388846)
-\psset{fillcolor=cmy_7c7cff}%
-\psset{linecolor=rgb_1a1a82}%
-\pspolygon[fillstyle=solid](0.452538,0.361054)(0.336923,0.313416)
- (0.359168,0.34034)(0.38701,0.370633)(0.502743,0.387128)
- (0.47545,0.373217)(0.452538,0.361054)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.759855,0.427181)(0.669551,0.414914)
- (0.703026,0.417762)(0.739356,0.419062)(0.811811,0.424741)
- (0.784951,0.42616)(0.759855,0.427181)
-\psset{fillcolor=cmy_6e6eff}%
-\psset{linecolor=rgb_1c1c90}%
-\pspolygon[fillstyle=solid](1.06103,0.395505)(1.08409,0.360109)
- (1.1268,0.349318)(1.16806,0.339925)(1.1228,0.388846)
- (1.09234,0.391756)(1.06103,0.395505)
-\psset{fillcolor=cmy_7474ff}%
-\psset{linecolor=rgb_1b1b8a}%
-\pspolygon[fillstyle=solid](0.336923,0.313416)(0.221782,0.25564)
- (0.239289,0.303779)(0.263419,0.358433)(0.38701,0.370633)
- (0.359168,0.34034)(0.336923,0.313416)
-\psset{fillcolor=cmy_6767ff}%
-\psset{linecolor=rgb_1e1e97}%
-\pspolygon[fillstyle=solid](1.16806,0.339925)(1.21527,0.281861)
- (1.26458,0.264805)(1.31112,0.252497)(1.24529,0.327916)
- (1.20762,0.332598)(1.16806,0.339925)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.611934,0.40685)(0.502743,0.387128)
- (0.53466,0.401467)(0.571331,0.414834)(0.669551,0.414914)
- (0.639145,0.411067)(0.611934,0.40685)
-\psset{fillcolor=cmy_6d6dff}%
-\psset{linecolor=rgb_1d1d91}%
-\pspolygon[fillstyle=solid](0.221782,0.25564)(0.108805,0.186635)
- (0.116083,0.263023)(0.130252,0.351753)(0.263419,0.358433)
- (0.239289,0.303779)(0.221782,0.25564)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.811811,0.424741)(0.739356,0.419062)
- (0.778241,0.418391)(0.819298,0.415485)(0.869988,0.42019)
- (0.840235,0.422779)(0.811811,0.424741)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](0.996875,0.404353)(0.99567,0.382977)
- (1.04025,0.371574)(1.08409,0.360109)(1.06103,0.395505)
- (1.02913,0.399802)(0.996875,0.404353)
-\psset{fillcolor=cmy_7a7aff}%
-\psset{linecolor=rgb_1a1a84}%
-\pspolygon[fillstyle=solid](1.31393,0.130943)(1.36413,0.0350099)
- (1.43413,-0.0414045)(1.49747,-0.0982892)(1.43923,0.040527)
- (1.3792,0.0793428)(1.31393,0.130943)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.869988,0.42019)(0.819298,0.415485)
- (0.862077,0.410271)(0.906078,0.402876)(0.932427,0.413148)
- (0.900811,0.41696)(0.869988,0.42019)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](0.932427,0.413148)(0.906078,0.402876)
- (0.950781,0.393616)(0.99567,0.382977)(0.996875,0.404353)
- (0.964546,0.408882)(0.932427,0.413148)
-\psset{fillcolor=cmy_7070ff}%
-\psset{linecolor=rgb_1c1c8e}%
-\pspolygon[fillstyle=solid](1.21527,0.281861)(1.26407,0.212769)
- (1.32218,0.181056)(1.3764,0.157338)(1.31112,0.252497)
- (1.26458,0.264805)(1.21527,0.281861)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](1.26407,0.212769)(1.31393,0.130943)
- (1.3792,0.0793428)(1.43923,0.040527)(1.3764,0.157338)
- (1.32218,0.181056)(1.26407,0.212769)
-\psset{fillcolor=cmy_7777ff}%
-\psset{linecolor=rgb_1b1b87}%
-\pspolygon[fillstyle=solid](1.08409,0.360109)(1.10888,0.325677)
- (1.1633,0.302583)(1.21527,0.281861)(1.16806,0.339925)
- (1.1268,0.349318)(1.08409,0.360109)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.669551,0.414914)(0.571331,0.414834)
- (0.612735,0.425841)(0.658661,0.43323)(0.739356,0.419062)
- (0.703026,0.417762)(0.669551,0.414914)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](0.502743,0.387128)(0.38701,0.370633)
- (0.42117,0.401992)(0.462221,0.431813)(0.571331,0.414834)
- (0.53466,0.401467)(0.502743,0.387128)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.99567,0.382977)(0.994341,0.37309)
- (1.05238,0.34969)(1.10888,0.325677)(1.08409,0.360109)
- (1.04025,0.371574)(0.99567,0.382977)
-\psset{fillcolor=cmy_7d7dff}%
-\psset{linecolor=rgb_191981}%
-\pspolygon[fillstyle=solid](0.739356,0.419062)(0.658661,0.43323)
- (0.708693,0.435991)(0.762219,0.433471)(0.819298,0.415485)
- (0.778241,0.418391)(0.739356,0.419062)
-\pspolygon[fillstyle=solid](1.10888,0.325677)(1.13571,0.293061)
- (1.20191,0.250812)(1.26407,0.212769)(1.21527,0.281861)
- (1.1633,0.302583)(1.10888,0.325677)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](0.906078,0.402876)(0.87651,0.412187)
- (0.935442,0.394373)(0.994341,0.37309)(0.99567,0.382977)
- (0.950781,0.393616)(0.906078,0.402876)
-\psset{fillcolor=cmy_7e7eff}%
-\psset{linecolor=rgb_191980}%
-\pspolygon[fillstyle=solid](0.819298,0.415485)(0.762219,0.433471)
- (0.818456,0.425453)(0.87651,0.412187)(0.906078,0.402876)
- (0.862077,0.410271)(0.819298,0.415485)
-\psset{fillcolor=cmy_6a6aff}%
-\psset{linecolor=rgb_1d1d94}%
-\pspolygon[fillstyle=solid](0.38701,0.370633)(0.263419,0.358433)
- (0.295756,0.416063)(0.337777,0.472291)(0.462221,0.431813)
- (0.42117,0.401992)(0.38701,0.370633)
-\psset{fillcolor=cmy_7272ff}%
-\psset{linecolor=rgb_1c1c8c}%
-\pspolygon[fillstyle=solid](0.571331,0.414834)(0.462221,0.431813)
- (0.51047,0.457371)(0.565855,0.476055)(0.658661,0.43323)
- (0.612735,0.425841)(0.571331,0.414834)
-\psset{fillcolor=cmy_7f7fff}%
-\psset{linecolor=rgb_19197f}%
-\pspolygon[fillstyle=solid](1.13571,0.293061)(1.16504,0.263219)
- (1.2427,0.193231)(1.31393,0.130943)(1.26407,0.212769)
- (1.20191,0.250812)(1.13571,0.293061)
-\pspolygon[fillstyle=solid](0.994341,0.37309)(0.99284,0.379708)
- (1.0658,0.336973)(1.13571,0.293061)(1.10888,0.325677)
- (1.05238,0.34969)(0.994341,0.37309)
-\pspolygon[fillstyle=solid](1.16504,0.263219)(1.19745,0.237271)
- (1.28572,0.129037)(1.36413,0.0350099)(1.31393,0.130943)
- (1.2427,0.193231)(1.16504,0.263219)
-\psset{fillcolor=cmy_7272ff}%
-\psset{linecolor=rgb_1c1c8c}%
-\pspolygon[fillstyle=solid](0.658661,0.43323)(0.565855,0.476055)
- (0.62787,0.485674)(0.695551,0.484744)(0.762219,0.433471)
- (0.708693,0.435991)(0.658661,0.43323)
-\psset{fillcolor=cmy_5d5dff}%
-\psset{linecolor=rgb_2020a1}%
-\pspolygon[fillstyle=solid](0.263419,0.358433)(0.130252,0.351753)
- (0.154241,0.448121)(0.191195,0.545437)(0.337777,0.472291)
- (0.295756,0.416063)(0.263419,0.358433)
-\psset{fillcolor=cmy_7b7bff}%
-\psset{linecolor=rgb_1a1a83}%
-\pspolygon[fillstyle=solid](0.87651,0.412187)(0.842212,0.450088)
- (0.917852,0.418332)(0.99284,0.379708)(0.994341,0.37309)
- (0.935442,0.394373)(0.87651,0.412187)
-\psset{fillcolor=cmy_7676ff}%
-\psset{linecolor=rgb_1b1b88}%
-\pspolygon[fillstyle=solid](0.762219,0.433471)(0.695551,0.484744)
- (0.767541,0.472718)(0.842212,0.450088)(0.87651,0.412187)
- (0.818456,0.425453)(0.762219,0.433471)
-\psset{fillcolor=cmy_6262ff}%
-\psset{linecolor=rgb_1f1f9c}%
-\pspolygon[fillstyle=solid](0.462221,0.431813)(0.337777,0.472291)
- (0.390602,0.522128)(0.454699,0.560441)(0.565855,0.476055)
- (0.51047,0.457371)(0.462221,0.431813)
-\psset{fillcolor=cmy_7c7cff}%
-\psset{linecolor=rgb_1a1a82}%
-\pspolygon[fillstyle=solid](0.99284,0.379708)(0.991097,0.4096)
- (1.08095,0.336955)(1.16504,0.263219)(1.13571,0.293061)
- (1.0658,0.336973)(0.99284,0.379708)
-\psset{fillcolor=cmy_6262ff}%
-\psset{linecolor=rgb_1f1f9c}%
-\pspolygon[fillstyle=solid](0.565855,0.476055)(0.454699,0.560441)
- (0.52964,0.582636)(0.613978,0.585437)(0.695551,0.484744)
- (0.62787,0.485674)(0.565855,0.476055)
-\psset{fillcolor=cmy_7474ff}%
-\psset{linecolor=rgb_1b1b8a}%
-\pspolygon[fillstyle=solid](0.842212,0.450088)(0.800716,0.529938)
- (0.896933,0.475736)(0.991097,0.4096)(0.99284,0.379708)
- (0.917852,0.418332)(0.842212,0.450088)
-\psset{fillcolor=cmy_6a6aff}%
-\psset{linecolor=rgb_1d1d94}%
-\pspolygon[fillstyle=solid](0.695551,0.484744)(0.613978,0.585437)
- (0.705338,0.567542)(0.800716,0.529938)(0.842212,0.450088)
- (0.767541,0.472718)(0.695551,0.484744)
-\psset{fillcolor=cmy_7878ff}%
-\psset{linecolor=rgb_1a1a86}%
-\pspolygon[fillstyle=solid](0.991097,0.4096)(0.989001,0.47266)
- (1.09845,0.354344)(1.19745,0.237271)(1.16504,0.263219)
- (1.08095,0.336955)(0.991097,0.4096)
-\psset{fillcolor=cmy_4f4fff}%
-\psset{linecolor=rgb_2323af}%
-\pspolygon[fillstyle=solid](0.337777,0.472291)(0.191195,0.545437)
- (0.244003,0.635089)(0.314618,0.707241)(0.454699,0.560441)
- (0.390602,0.522128)(0.337777,0.472291)
-\psset{fillcolor=cmy_6b6bff}%
-\psset{linecolor=rgb_1d1d93}%
-\pspolygon[fillstyle=solid](0.800716,0.529938)(0.747762,0.67368)
- (0.870898,0.582631)(0.989001,0.47266)(0.991097,0.4096)
- (0.896933,0.475736)(0.800716,0.529938)
-\psset{fillcolor=cmy_4f4fff}%
-\psset{linecolor=rgb_2323af}%
-\pspolygon[fillstyle=solid](0.454699,0.560441)(0.314618,0.707241)
- (0.403301,0.752297)(0.50809,0.762937)(0.613978,0.585437)
- (0.52964,0.582636)(0.454699,0.560441)
-\psset{fillcolor=cmy_5c5cff}%
-\psset{linecolor=rgb_2020a2}%
-\pspolygon[fillstyle=solid](0.613978,0.585437)(0.50809,0.762937)
- (0.624809,0.736041)(0.747762,0.67368)(0.800716,0.529938)
- (0.705338,0.567542)(0.613978,0.585437)
-\end{pspicture}%
diff --git a/graphics/epix/doc/plotting2.xp b/graphics/epix/doc/plotting2.xp
deleted file mode 100644
index 2a0ed661e5..0000000000
--- a/graphics/epix/doc/plotting2.xp
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-P f(double r, double th)
-{
- return P(r*Cos(th), r*Sin(th), pow(r, 3)*Cos(3*th));
-}
-
-int main()
-{
- picture(P(-1,-1),P(1,1), "2x1in");
-
- begin();
-
- domain R(P(0,0), P(1, 2*M_PI), mesh(8,40), mesh(8,80));
-
- camera.at(3,1,2); // set the viewpoint
-
- arrow(P(0,0,0), P(1.25,0,0));
- arrow(P(0,0,0), P(0,1.25,0));
-
- plain(Blue(1.2));
- fill(Yellow()); // shade
- surface(f, R);
-
- pst_format();
- end();
-}
diff --git a/graphics/epix/doc/plotting3.eepic b/graphics/epix/doc/plotting3.eepic
deleted file mode 100644
index d61bee76c4..0000000000
--- a/graphics/epix/doc/plotting3.eepic
+++ /dev/null
@@ -1,146 +0,0 @@
-%% Generated from plotting3.xp on Tue Sep 25 18:08:09 EDT 2007 by
-%% ePiX-1.2.0
-%%
-%% Cartesian bounding box: [0,18.8496] x [-1,1]
-%% Actual size: 5 x 1in
-%% Figure offset: left by 0in, down by 0in
-%%
-%% usepackages epic,eepic,xcolor
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}%
-\xdefinecolor{rgb_0000ff}{rgb}{0,0,1}%
-\xdefinecolor{rgb_00ff00}{rgb}{0,1,0}%
-\xdefinecolor{rgb_3f00bf}{rgb}{0.247059,0,0.74902}%
-\xdefinecolor{rgb_7f007f}{rgb}{0.498039,0,0.498039}%
-\xdefinecolor{rgb_bf003f}{rgb}{0.74902,0,0.247059}%
-\setlength{\unitlength}{1in}%
-\begin{picture}(5,1)(0,0)%
-\path(0,0.5)(2.5,0.5)(5,0.5)
-\put(0,0.5){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{0.5pt}{6pt}$}}}
-\put(1.25,0.5){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{0.5pt}{6pt}$}}}
-\put(2.5,0.5){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{0.5pt}{6pt}$}}}
-\put(3.75,0.5){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{0.5pt}{6pt}$}}}
-\put(5,0.5){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{0.5pt}{6pt}$}}}
-\path(0,0)(0,0.5)(0,1)
-\put(0,0){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{6pt}{0.5pt}$}}}
-\put(0,1){\makebox(0,0){\hbox{\color{rgb_000000}$\rule{6pt}{0.5pt}$}}}
-\allinethickness{0.8pt}%
-\color{rgb_00ff00}%
-\path(0,0.5)(0.0416667,0.578217)(0.0833333,0.654508)
- (0.125,0.726995)(0.166667,0.793893)(0.208333,0.853553)
- (0.25,0.904508)(0.291667,0.945503)(0.333333,0.975528)
- (0.375,0.993844)(0.416667,1)(0.458333,0.993844)(0.5,0.975528)
- (0.541667,0.945503)(0.583333,0.904508)(0.625,0.853553)
- (0.666667,0.793893)(0.708333,0.726995)(0.75,0.654508)
- (0.791667,0.578217)(0.833333,0.5)(0.875,0.421783)
- (0.916667,0.345492)(0.958333,0.273005)(1,0.206107)
- (1.04167,0.146447)(1.08333,0.0954915)(1.125,0.0544967)
- (1.16667,0.0244717)(1.20833,0.00615583)(1.25,0)(1.29167,0.00615583)
- (1.33333,0.0244717)(1.375,0.0544967)(1.41667,0.0954915)
- (1.45833,0.146447)(1.5,0.206107)(1.54167,0.273005)
- (1.58333,0.345492)(1.625,0.421783)(1.66667,0.5)(1.70833,0.578217)
- (1.75,0.654508)(1.79167,0.726995)(1.83333,0.793893)(1.875,0.853553)
- (1.91667,0.904508)(1.95833,0.945503)(2,0.975528)(2.04167,0.993844)
- (2.08333,1)(2.125,0.993844)(2.16667,0.975528)(2.20833,0.945503)
- (2.25,0.904508)(2.29167,0.853553)(2.33333,0.793893)(2.375,0.726995)
- (2.41667,0.654508)(2.45833,0.578217)(2.5,0.5)(2.54167,0.421783)
- (2.58333,0.345492)(2.625,0.273005)(2.66667,0.206107)
- (2.70833,0.146447)(2.75,0.0954915)(2.79167,0.0544967)
- (2.83333,0.0244717)(2.875,0.00615583)(2.91667,0)
- (2.95833,0.00615583)(3,0.0244717)(3.04167,0.0544967)
- (3.08333,0.0954915)(3.125,0.146447)(3.16667,0.206107)
- (3.20833,0.273005)(3.25,0.345492)(3.29167,0.421783)(3.33333,0.5)
- (3.375,0.578217)(3.41667,0.654508)(3.45833,0.726995)(3.5,0.793893)
- (3.54167,0.853553)(3.58333,0.904508)(3.625,0.945503)
- (3.66667,0.975528)(3.70833,0.993844)(3.75,1)(3.79167,0.993844)
- (3.83333,0.975528)(3.875,0.945503)(3.91667,0.904508)
- (3.95833,0.853553)(4,0.793893)(4.04167,0.726995)(4.08333,0.654508)
- (4.125,0.578217)(4.16667,0.5)(4.20833,0.421783)(4.25,0.345492)
- (4.29167,0.273005)(4.33333,0.206107)(4.375,0.146447)
- (4.41667,0.0954915)(4.45833,0.0544967)(4.5,0.0244717)
- (4.54167,0.00615583)(4.58333,0)(4.625,0.00615583)
- (4.66667,0.0244717)(4.70833,0.0544967)(4.75,0.0954915)
- (4.79167,0.146447)(4.83333,0.206107)(4.875,0.273005)
- (4.91667,0.345492)(4.95833,0.421783)(5,0.5)
-\color{rgb_bf003f}%
-\path(0,0.5)(0.0416667,0.578217)(0.0833333,0.654508)
- (0.125,0.726995)(0.166667,0.793893)(0.208333,0.853553)
- (0.25,0.904508)(0.291667,0.945503)(0.333333,0.975528)
- (0.375,0.993844)(0.416667,1)(0.458333,0.993844)(0.5,0.975528)
- (0.541667,0.945503)(0.583333,0.904508)(0.625,0.853553)
- (0.666667,0.793893)(0.708333,0.726995)(0.75,0.654508)
- (0.791667,0.578217)(0.833333,0.5)(0.875,0.421783)
- (0.916667,0.345492)(0.958333,0.273005)(1,0.206107)
- (1.04167,0.146447)(1.08333,0.0954915)(1.125,0.0544967)
- (1.16667,0.0244717)(1.20833,0.00615583)(1.25,0)(1.29167,0.00615583)
- (1.33333,0.0244717)(1.375,0.0544967)(1.41667,0.0954915)
- (1.45833,0.146447)(1.5,0.206107)(1.54167,0.273005)
- (1.58333,0.345492)(1.625,0.421783)(1.66667,0.5)(1.70833,0.578217)
- (1.75,0.654508)(1.79167,0.726995)(1.83333,0.793893)(1.875,0.853553)
- (1.91667,0.904508)(1.95833,0.945503)(2,0.975528)(2.04167,0.993844)
- (2.08333,1)(2.125,0.993844)(2.16667,0.975528)(2.20833,0.945503)
- (2.25,0.904508)(2.29167,0.853553)(2.33333,0.793893)(2.375,0.726995)
- (2.41667,0.654508)(2.45833,0.578217)(2.5,0.5)(2.54167,0.421783)
- (2.58333,0.345491)(2.625,0.273005)(2.66667,0.206107)
- (2.70833,0.146446)(2.75,0.0954902)(2.79167,0.0544945)
- (2.83333,0.0244679)(2.875,0.00614921)(2.91667,0)
- (2.95833,0.00613686)(3,0.02444)(3.04167,0.054444)
- (3.08333,0.0954044)(3.125,0.146304)(3.16667,0.205875)
- (3.20833,0.272628)(3.25,0.344886)(3.29167,0.420815)
- (3.33333,0.498463)(3.375,0.57579)(3.41667,0.650696)
- (3.45833,0.721039)(3.5,0.78464)(3.54167,0.839253)(3.58333,0.882522)
- (3.625,0.911868)(3.66667,0.924325)(3.70833,0.916271)(3.75,0.883026)
- (3.79167,0.818266)(3.83333,0.713166)(3.875,0.555181)
- (3.91667,0.326308)(3.95833,0.000641819)(3.95839,0)
-\color{rgb_7f007f}%
-\path(0,0.5)(0.0416667,0.578217)(0.0833333,0.654508)
- (0.125,0.726995)(0.166667,0.793893)(0.208333,0.853553)
- (0.25,0.904508)(0.291667,0.945503)(0.333333,0.975528)
- (0.375,0.993844)(0.416667,1)(0.458333,0.993844)(0.5,0.975528)
- (0.541667,0.945503)(0.583333,0.904508)(0.625,0.853553)
- (0.666667,0.793893)(0.708333,0.726995)(0.75,0.654508)
- (0.791667,0.578217)(0.833333,0.5)(0.875,0.421783)
- (0.916667,0.345492)(0.958333,0.273005)(1,0.206107)
- (1.04167,0.146447)(1.08333,0.0954915)(1.125,0.0544967)
- (1.16667,0.0244717)(1.20833,0.00615583)(1.25,0)(1.29167,0.00615583)
- (1.33333,0.0244717)(1.375,0.0544967)(1.41667,0.0954915)
- (1.45833,0.146447)(1.5,0.206107)(1.54167,0.273005)
- (1.58333,0.345492)(1.625,0.421783)(1.66667,0.5)(1.70833,0.578218)
- (1.75,0.654509)(1.79167,0.726996)(1.83333,0.793895)(1.875,0.853557)
- (1.91667,0.904515)(1.95833,0.945515)(2,0.975549)(2.04167,0.993881)
- (2.08291,1)
-\path(2.08376,1)(2.125,0.993951)(2.16667,0.975708)
- (2.20833,0.945803)(2.25,0.905003)(2.29167,0.854363)
- (2.33333,0.795206)(2.375,0.729106)(2.41667,0.657874)
- (2.45833,0.583539)(2.5,0.50835)(2.54167,0.434785)(2.58333,0.365591)
- (2.625,0.303858)(2.66667,0.253144)(2.70833,0.21768)(2.75,0.202677)
- (2.79167,0.214776)(2.83333,0.262697)(2.875,0.358157)
- (2.91667,0.51715)(2.95833,0.761732)(2.98586,1)
-\color{rgb_3f00bf}%
-\path(0,0.5)(0.0416667,0.578217)(0.0833333,0.654508)
- (0.125,0.726995)(0.166667,0.793893)(0.208333,0.853553)
- (0.25,0.904508)(0.291667,0.945503)(0.333333,0.975528)
- (0.375,0.993844)(0.416667,1)(0.458333,0.993844)(0.5,0.975528)
- (0.541667,0.945503)(0.583333,0.904508)(0.625,0.853553)
- (0.666667,0.793893)(0.708333,0.726995)(0.75,0.654508)
- (0.791667,0.578217)(0.833333,0.5)(0.875,0.421782)(0.916667,0.34549)
- (0.958333,0.273001)(1,0.206099)(1.04167,0.14643)(1.08333,0.0954587)
- (1.125,0.0544347)(1.16667,0.0243571)(1.20833,0.00594841)
- (1.24757,0)
-\path(1.2526,0)(1.29167,0.00551665)(1.33333,0.02338)
- (1.375,0.0526628)(1.41667,0.0924591)(1.45833,0.141506)
- (1.5,0.198171)(1.54167,0.260422)(1.58333,0.325792)(1.625,0.391305)
- (1.66667,0.453377)(1.70833,0.507659)(1.75,0.548813)
- (1.79167,0.570203)(1.83333,0.563454)(1.875,0.517876)
- (1.91667,0.419672)(1.95833,0.250906)(1.99812,0)
-\color{rgb_0000ff}%
-\path(0,0.5)(0.0416667,0.578217)(0.0833333,0.654509)
- (0.125,0.726996)(0.166667,0.793896)(0.208333,0.853572)
- (0.25,0.904573)(0.291667,0.945693)(0.333333,0.976009)
- (0.375,0.994933)(0.403805,1)
-\path(0.439996,1)(0.458333,0.998222)
- (0.5,0.983515)(0.541667,0.959373)(0.583333,0.927598)
- (0.625,0.890616)(0.666667,0.851521)(0.708333,0.814127)
- (0.75,0.783009)(0.791667,0.763557)(0.833333,0.762022)
- (0.875,0.785563)(0.916667,0.842295)(0.958333,0.941339)(0.974464,1)
-\end{picture}%
diff --git a/graphics/epix/doc/plotting3.xp b/graphics/epix/doc/plotting3.xp
deleted file mode 100644
index e5d1088978..0000000000
--- a/graphics/epix/doc/plotting3.xp
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-P sin_n(double x, double n) // Taylor polynomial of sin x
-{
- const int N((int) floor(n)); // convert y to an index bound
- const double sqx(-pow(x, 2)); // store -x^2 for efficiency
- double val(x), summand(x); // places to store results of evaluation
-
- // step through odd numbers from 1 to 2N+1
- for (int i=1; i <= 2*N+1; i += 2)
- {
- summand *= (sqx/((i+1)*(i+2))); // (-1)^i x^{2i+1}/(2i+1)!
- val += summand;
- }
-
- return P(x, val);
-}
-
-int main()
-{
- picture(P(0,-1),P(6*M_PI, 1), "5x1in");
-
- begin();
-
- set_crop();
- h_axis(4);
- v_axis(1);
-
- bold();
- green();
- plot(Sin, 0, xmax(), 120);
-
- domain R(P(0,1), P(6*M_PI, 41), mesh(60, 40), mesh(120, 40));
- for (int i=3; 0 <= i; --i)
- {
- rgb(0.25*i, 0, 1-0.25*i);
- plot(sin_n, R.slice2(5*i+1));
- }
-
- end();
-}
diff --git a/graphics/epix/doc/scaling.eepic b/graphics/epix/doc/scaling.eepic
deleted file mode 100644
index 0b6231c4ee..0000000000
--- a/graphics/epix/doc/scaling.eepic
+++ /dev/null
@@ -1,56 +0,0 @@
-%% Generated from scaling.xp on Sat Sep 1 14:17:35 EDT 2007 by
-%% ePiX-1.1.15
-%%
-%% Cartesian bounding box: [0,4] x [0,1]
-%% Actual size: 4 x 0.75in
-%% Figure offset: left by 0in, down by 0in
-%%
-%% usepackages epic,eepic,xcolor
-%%
-\xdefinecolor{rgb_000000}{rgb}{0,0,0}%
-\setlength{\unitlength}{1in}%
-\begin{picture}(4,0.75)(0,0)%
-\path(1.75,0.375)(2.75,0.375)
-\path(2.63584,0.359433)(2.66438,0.359433)
-\path(2.63584,0.364622)(2.69292,0.364622)
-\path(2.63584,0.369811)(2.72146,0.369811)
-\path(2.63584,0.375)(2.75,0.375)
-\path(2.63584,0.380189)(2.72146,0.380189)
-\path(2.63584,0.385378)(2.69292,0.385378)
-\path(2.63584,0.390567)(2.66438,0.390567)
-\path(2.74456,0.374012)(2.74456,0.375988)
-\path(2.73913,0.373023)(2.73913,0.376977)
-\path(2.73369,0.372035)(2.73369,0.377965)
-\path(2.72826,0.371047)(2.72826,0.378953)
-\path(2.72282,0.370058)(2.72282,0.379942)
-\path(2.71738,0.36907)(2.71738,0.38093)
-\path(2.71195,0.368081)(2.71195,0.381919)
-\path(2.70651,0.367093)(2.70651,0.382907)
-\path(2.70108,0.366105)(2.70108,0.383895)
-\path(2.69564,0.365116)(2.69564,0.384884)
-\path(2.6902,0.364128)(2.6902,0.385872)
-\path(2.68477,0.36314)(2.68477,0.38686)
-\path(2.67933,0.362151)(2.67933,0.387849)
-\path(2.6739,0.361163)(2.6739,0.388837)
-\path(2.66846,0.360175)(2.66846,0.389825)
-\path(2.66302,0.359186)(2.66302,0.390814)
-\path(2.65759,0.358198)(2.65759,0.391802)
-\path(2.65215,0.35721)(2.65215,0.39279)
-\path(2.64672,0.356221)(2.64672,0.393779)
-\path(2.64128,0.355233)(2.64128,0.394767)
-\path(2.63584,0.354244)(2.63584,0.395756)
-\path(2.63584,0.375)(2.63584,0.354244)(2.75,0.375)
- (2.63584,0.395756)(2.63584,0.375)
-\put(0.027674,0.121424){\makebox(0,0)[bl]{\hbox{\color{rgb_000000}\scriptsize \hbox{\color{rgb_000000}\scriptsize $(x_\mathrm{min},y_\mathrm{min})$}}}}
-\put(0,0.09375){\makebox(0,0){\hbox{\color{rgb_000000}\scriptsize $\circle{0.0069185}\circle{0.013837}\circle{0.0207555}\circle{0.027674}$}}}
-\put(1.47233,0.722326){\makebox(0,0)[tr]{\hbox{\color{rgb_000000}\scriptsize \hbox{\color{rgb_000000}\scriptsize $(x_\mathrm{max},y_\mathrm{max})$}}}}
-\put(1.5,0.75){\makebox(0,0){\hbox{\color{rgb_000000}\scriptsize $\circle{0.0069185}\circle{0.013837}\circle{0.0207555}\circle{0.027674}$}}}
-\put(0.75,0.038402){\makebox(0,0)[t]{\hbox{\color{rgb_000000}\scriptsize \hbox{\color{rgb_000000}\scriptsize Canvas (virtual)}}}}
-\path(1.5,0.09375)(1.5,0.75)(0,0.75)(0,0.09375)(1.5,0.09375)
-\put(3.02767,0.121424){\makebox(0,0)[bl]{\hbox{\color{rgb_000000}\scriptsize \hbox{\color{rgb_000000}\scriptsize $(0,0)$}}}}
-\put(3,0.09375){\makebox(0,0){\hbox{\color{rgb_000000}\scriptsize $\circle{0.0069185}\circle{0.013837}\circle{0.0207555}\circle{0.027674}$}}}
-\put(3.97233,0.628576){\makebox(0,0)[tr]{\hbox{\color{rgb_000000}\scriptsize \hbox{\color{rgb_000000}\scriptsize $(h_\mathrm{size}, v_\mathrm{size})$}}}}
-\put(4,0.65625){\makebox(0,0){\hbox{\color{rgb_000000}\scriptsize $\circle{0.0069185}\circle{0.013837}\circle{0.0207555}\circle{0.027674}$}}}
-\put(3.5,0.038402){\makebox(0,0)[t]{\hbox{\color{rgb_000000}\scriptsize \hbox{\color{rgb_000000}\scriptsize Page (actual)}}}}
-\path(4,0.09375)(4,0.65625)(3,0.65625)(3,0.09375)(4,0.09375)
-\end{picture}%
diff --git a/graphics/epix/doc/scaling.xp b/graphics/epix/doc/scaling.xp
deleted file mode 100644
index 7d243caabc..0000000000
--- a/graphics/epix/doc/scaling.xp
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- picture(P(0,0), P(4,1), "4x0.75in");
-
- begin();
-
- font_size("scriptsize");
-
- screen canv(P(0,0), P(1,1));
- activate(canv);
-
- border();
- ddot(canv.bl(), P(2,2), "$(x_\\mathrm{min},y_\\mathrm{min})$", tr);
- ddot(canv.tr(), P(-2,-2), "$(x_\\mathrm{max},y_\\mathrm{max})$", bl);
- label(canv.b(), P(0,-4), "Canvas (virtual)", b);
- deactivate(canv);
-
- screen pg(P(0,0), P(1,1));
- activate(pg);
-
- border();
- ddot(pg.bl(), P(2,2), "$(0,0)$", tr);
- ddot(pg.tr(), P(-2,-2), "$(h_\\mathrm{size}, v_\\mathrm{size})$", bl);
- label(pg.b(), P(0,-4), "Page (actual)", b);
- deactivate(pg);
-
- arrow(P(1.75, 0.5), P(2.75,0.5));
-
- inset(canv, P(0,0.125), P(1.5, 1));
- inset(pg, P(3,0.125), P(4,0.875));
-
- end();
-}
diff --git a/graphics/epix/doc/sgn.eepic b/graphics/epix/doc/sgn.eepic
deleted file mode 100644
index 0aafc5d5af..0000000000
--- a/graphics/epix/doc/sgn.eepic
+++ /dev/null
@@ -1,30 +0,0 @@
-%% Generated from sgn.xp on Tue Jan 4 15:32:30 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 1.5in x 0.75in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(1.5,0.75)(-0,-0)
-%% ---
-\path(0,0.375)(1.5,0.375)
-\put(0,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(0.375,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(0.75,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(1.125,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(1.5,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-%% ---
-\path(0.75,0)(0.75,0.75)
-\put(0.75,0){\makebox(0,0)[c]{\rule{4pt}{0.5pt}}}
-\put(0.75,0.75){\makebox(0,0)[c]{\rule{4pt}{0.5pt}}}
-%% ---
-\thicklines
-\path(0,0)(0.75,0)
-\path(1.5,0.75)(0.75,0.75)
-\thinlines
-\put(0.75,0.375){\makebox(0,0)[c]{{\circle*{0.041511}}}}
-\whiten\put(0.75,0){\makebox(0,0)[c]{{\circle{0.041511}}}}
-\whiten\put(0.75,0.75){\makebox(0,0)[c]{{\circle{0.041511}}}}
-\put(0.75,-0.055348){\makebox(0,0)[t]{\code{sgn}}}
-\end{picture}
diff --git a/graphics/epix/doc/sgn.xp b/graphics/epix/doc/sgn.xp
deleted file mode 100644
index 5296973ba4..0000000000
--- a/graphics/epix/doc/sgn.xp
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- bounding_box(P(-2,-1),P(2,1));
- unitlength("1in");
- picture(1.5,0.75);
-
- begin();
-
- h_axis(4);
- v_axis(1);
-
- bold();
- line(P(x_min,-1), P(0,-1));
- line(P(x_max, 1), P(0, 1));
-
- plain();
- dot(P(0,0));
- circ(P(0,-1));
- circ(P(0,1));
-
- label(P(0,y_min), P(0,-4), "\\code{sgn}", b);
-
- end();
-}
diff --git a/graphics/epix/doc/sinx.eepic b/graphics/epix/doc/sinx.eepic
deleted file mode 100644
index c62bf19e00..0000000000
--- a/graphics/epix/doc/sinx.eepic
+++ /dev/null
@@ -1,40 +0,0 @@
-%% Generated from sinx.xp on Tue Jan 4 15:32:32 EST 2005 by
-%% ePiX-1.0.3
-%%
-%% Cartesian bounding box: [-2,2] x [-1,1]
-%% Actual size: 1.5in x 0.75in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(1.5,0.75)(-0,-0)
-%% ---
-\path(0,0.375)(1.5,0.375)
-\put(0,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(0.375,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(0.75,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(1.125,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-\put(1.5,0.375){\makebox(0,0)[c]{\rule{0.5pt}{4pt}}}
-%% ---
-\path(0.75,0)(0.75,0.75)
-\put(0.75,0){\makebox(0,0)[c]{\rule{4pt}{0.5pt}}}
-\put(0.75,0.75){\makebox(0,0)[c]{\rule{4pt}{0.5pt}}}
-%% ---
-\thicklines
-\path(0,0.375)(0.025,0.362444)(0.05,0.351239)(0.075,0.343466)(0.1,0.340756)
- (0.125,0.343988)(0.15,0.353074)(0.175,0.366907)(0.2,0.383461)
- (0.225,0.400058)(0.25,0.413765)(0.275,0.42186)(0.3,0.422302)
- (0.325,0.414135)(0.35,0.397758)(0.375,0.375)(0.4,0.348991)
- (0.425,0.323823)(0.45,0.304047)(0.475,0.29406)(0.5,0.297469)
- (0.525,0.316532)(0.55,0.351733)(0.575,0.40159)(0.6,0.462702)
- (0.625,0.530061)(0.65,0.597586)(0.675,0.65881)(0.7,0.707649)
- (0.725,0.73913)(0.75,0.75)(0.775,0.73913)(0.8,0.707649)(0.825,0.65881)
- (0.85,0.597586)(0.875,0.530061)(0.9,0.462702)(0.925,0.40159)
- (0.95,0.351733)(0.975,0.316532)(1,0.297469)(1.025,0.29406)(1.05,0.304047)
- (1.075,0.323823)(1.1,0.348991)(1.125,0.375)(1.15,0.397758)
- (1.175,0.414135)(1.2,0.422302)(1.225,0.42186)(1.25,0.413765)
- (1.275,0.400058)(1.3,0.383461)(1.325,0.366907)(1.35,0.353074)
- (1.375,0.343988)(1.4,0.340756)(1.425,0.343466)(1.45,0.351239)
- (1.475,0.362444)(1.5,0.375)
-\path(1.5,0.375)
-\put(0.75,-0.055348){\makebox(0,0)[t]{\code{sinx}}}
-\end{picture}
diff --git a/graphics/epix/doc/sinx.xp b/graphics/epix/doc/sinx.xp
deleted file mode 100644
index 62c08bbc48..0000000000
--- a/graphics/epix/doc/sinx.xp
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-int main()
-{
- bounding_box(P(-2,-1),P(2,1));
- unitlength("1in");
- picture(1.5,0.75);
-
- begin();
- revolutions();
-
- h_axis(4);
- v_axis(1);
-
- bold();
- plot(sinx, x_min, x_max, 60);
-
- label(P(0,y_min), P(0,-4), "\\code{sinx}", b);
-
- end();
-}
diff --git a/graphics/epix/doc/slices.eepic b/graphics/epix/doc/slices.eepic
deleted file mode 100644
index 4aebe69de4..0000000000
--- a/graphics/epix/doc/slices.eepic
+++ /dev/null
@@ -1,45 +0,0 @@
-%% Generated from slices.xp on Sun Dec 31 13:11:11 EST 2006 by
-%% ePiX-1.0.22
-%%
-%% Cartesian bounding box: [0,7] x [0,2]
-%% Actual size: 5in x 0.75in
-%% Figure offset: right by 0in, up by 0in
-%%
-\setlength{\unitlength}{1in}
-\begin{picture}(5,0.75)(-0,-0)
-%% ---
-\thicklines
-\path(0,0)(0,0.75)
-\path(0.178571,0)(0.178571,0.75)
-\path(0.357143,0)(0.357143,0.75)
-\path(0.535714,0)(0.535714,0.75)
-\path(0.714286,0)(0.714286,0.75)
-\path(0.892857,0)(0.892857,0.75)
-\path(1.07143,0)(1.07143,0.75)
-\path(1.25,0)(1.25,0.75)
-\path(1.42857,0)(1.42857,0.75)
-\path(0,0)(1.42857,0)
-\path(0,0.107143)(1.42857,0.107143)
-\path(0,0.214286)(1.42857,0.214286)
-\path(0,0.321429)(1.42857,0.321429)
-\path(0,0.428571)(1.42857,0.428571)
-\path(0,0.535714)(1.42857,0.535714)
-\path(0,0.642857)(1.42857,0.642857)
-\path(0,0.75)(1.42857,0.75)
-\put(0.714286,-0.055348){\makebox(0,0)[t]{\code{R}}}
-\path(1.78571,0)(1.78571,0.75)
-\path(1.96429,0)(1.96429,0.75)
-\path(2.14286,0)(2.14286,0.75)
-\path(2.32143,0)(2.32143,0.75)
-\path(2.5,0)(2.5,0.75)
-\path(2.67857,0)(2.67857,0.75)
-\path(2.85714,0)(2.85714,0.75)
-\path(3.03571,0)(3.03571,0.75)
-\path(3.21429,0)(3.21429,0.75)
-\put(2.5,-0.055348){\makebox(0,0)[t]{\code{R.slices1()}}}
-\path(3.57143,0)(5,0)
-\path(3.57143,0.25)(5,0.25)
-\path(3.57143,0.5)(5,0.5)
-\path(3.57143,0.75)(5,0.75)
-\put(4.28571,-0.055348){\makebox(0,0)[t]{\code{R.slices2(3)}}}
-\end{picture}
diff --git a/graphics/epix/doc/slices.xp b/graphics/epix/doc/slices.xp
deleted file mode 100644
index c67dddf876..0000000000
--- a/graphics/epix/doc/slices.xp
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*-ePiX-*- */
-#include "epix.h"
-using namespace ePiX;
-
-void my_grid(const P& loc, int N1, int N2, std::string lab)
-{
- if (0 < N1)
- {
- const double dx(1.0/N1);
- for (int i=-N1; i<= N1; ++i)
- line(loc+P(i*dx,0), loc+P(i*dx,2));
- }
-
- if (0 < N2)
- {
- const double dy(1.0/N2);
- for (int i=0; i<= N2; ++i)
- line(loc+P(-1,2*i*dy), loc+P(1,2*i*dy));
- }
-
- label(loc, P(0,-4), "\\code{"+lab+"}", b);
-}
-
-int main()
-{
- bounding_box(P(0,0),P(7,2));
- unitlength("1in");
- picture(5,0.75);
-
- begin();
-
- bold();
-
- my_grid(P(1,0), 4, 7, "R");
- my_grid(P(3.5,0), 4, 0, "R.slices1()");
- my_grid(P(6,0), 0, 3, "R.slices2(3)");
-
- end();
-}