source: git/Singular/LIB/surfex/doc/surfex_doc.tex @ d36c18

spielwiese
Last change on this file since d36c18 was d36c18, checked in by Hans Schoenemann <hannes@…>, 4 years ago
http://www.singular.uni-kl.de -> https
  • Property mode set to 100644
File size: 18.2 KB
Line 
1\documentclass{article}
2%
3% surfex_doc.tex
4%
5% {\sc surfex} --- A Short Documentation
6%
7
8\usepackage[latin1]{inputenc}
9\usepackage{latexsym}
10\usepackage{amsfonts}
11\usepackage{color}
12\usepackage{dsfont}
13\usepackage{varioref}
14\usepackage{epsfig}
15\usepackage[active]{srcltx}
16\usepackage{hyperref}
17\usepackage[english]{babel}
18\usepackage{verbatim}
19\usepackage{fancyhdr}
20
21\InputIfFileExists{surfex_doc.cfg}
22{\typeout{Use surfex_doc.cfg to configure the system type.}}
23{\input{surfex_doc_linux.cfg}}
24
25%\newcommand{\Linux}[1]{}\newcommand{\Windows}[1]{#1}
26
27\newcommand{\surfex}{{\sc surfex}}
28\newcommand{\attention}{\emph{Attention!}}
29
30\newcommand{\inshell}[1]{{\\\qquad\qquad{\tt #1}}}
31\newcommand{\curver}{0.89.02 }
32\newcommand{\curverfile}{0\_89\_02}
33\Linux{\newcommand{\INSTALL}{INSTALL\_LINUX}}
34\Windows{\newcommand{\INSTALL}{INSTALL\_WINDOWS}}
35
36\newcommand{\dZ}{{\mathds Z}}
37\newcommand{\dN}{{\mathds N}}
38\newcommand{\dP}{{\mathds P}}
39\newcommand{\dC}{{\mathds C}}
40\newcommand{\dR}{{\mathds R}}
41\newcommand{\dQ}{{\mathds Q}}
42\newcommand{\smcdot}{{\textup{$\cdot$}}}
43
44\newtheorem{theorem}{Theorem}
45\newtheorem{corollary}[theorem]{Corollary}
46\newtheorem{remark}[theorem]{Remark}
47
48\pagestyle{fancy}
49
50\begin{document}
51
52\title{{\sc surfex v.\ \curver for \Windows{Windows}\Linux{Linux/Unix}}\\
53--- A Short Documentation ---}
54\author{Oliver Labs}
55%\address{Universit\"at des Saarlandes, Saarbr\"ucken (Germany)}
56
57\maketitle
58
59%\begin{abstract}
60\abstract{
61\noindent {\sc surfex} is a tool for interactive high quality real algebraic
62surface
63visualization.
64It is a meta-software which combines the strenghts of several visualization
65tools such as {\sc surf}, {\sc javaview}%, {\sc singsurf}
66.
67
68\noindent We also implemented a {\sc Singular} library called {\sc surfex.lib}
69which enhances the quality of the visualization of {\sc surfex} using
70pre-computation of the singular locus etc.
71
72\noindent The latest version and information on {\sc surfex} and {\sc
73  surfex.lib} is available from our website:
74\href{http://www.surfex.AlgebraicSurface.net}{\tt
75  www.surfex.AlgebraicSurface.net}.
76%\end{abstract}
77  \begin{center}
78    \includegraphics[width=0.8\textwidth]{surfex_simple}
79  \end{center}
80}
81
82%\tableofcontents{}
83
84% We do not want indentation at the beginning of each paragraph:
85\setlength{\parindent}{0pt}
86% Instead, we prefer a small vertical space between paragraphs:
87\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
88
89
90%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91%
92%
93%
94%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95\section{Getting Started}
96
97
98
99%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100%
101%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102\subsection{Download}
103
104You can download the version \curver of our visualization software {\sc
105  surfex} as one file called {\tt surfex\_\curverfile.tar.gz} from our website:
106\begin{center}
107\href{http://www.surfex.AlgebraicSurface.net}{\tt
108  www.surfex.AlgebraicSurface.net}
109\end{center}
110
111
112%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
113%
114%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115\subsection{Prerequisites}
116
117The current version of \surfex{}
118uses the raytracer {\sc surf} as a back-end for computing the beautiful
119images.
120This software has to be installed on your system if you want to use
121\surfex{}.
122If you want to produce movies using \surfex{},
123then you will also need to have the image conversion tool {\sc convert}
124installed which is part of the {\sc ImageMagick} package.
125
126
127%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
128%
129%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
130\subsubsection{{\sc Java} (required)}
131
132\surfex{} is a {\sc Java} program.
133This has the advantage that it is not much work to provide the software for
134many operating systems and also that it can easily be adapted to work over the
135internet.
136
137The current version of \surfex{} requires the Java Runtime Environment
138(JRE), version 1.4.2 or later.
139You can download it from \href{http://www.java.sun.com}{www.java.sun.com}.
140
141
142%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143%
144%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145\subsubsection{{\sc surf} (required)}
146
147\Windows{
148Thanks to the {\sc Singular} Team, the raytracer {\sc surf} is now also
149available for Windows.
150This enables us to provide \surfex{} for Windows:
151
152The most convenient way to install {\sc surf} is to install the {\bf full
153  version} of {\sc Singular for Windows} (which includes in particular {\sc
154  surf}).
155It uses the Linux emulation {\sc cygwin}.
156The {\sc Singular} team provides their great software on their website:
157\href{https://www.singular.uni-kl.de}{\tt www.singular.uni-kl.de}.
158It is very easy to install; just follow the instructions.
159
160Please, remember the directory to which {\sc Singular} installed the {\sc
161  Cygwin} for later use;
162at the moment, the standard seems to be {\tt c:$\backslash$cygwin}.
163}
164
165\Linux{
166The canonical way to install {\sc surf} under Linux is to download the
167latest version from the {\sc surf} website:
168\href{http://surf.sourceforge.net}{\tt http://surf.sourceforge.net}.
169After having downloaded the source code from this site, you will have to
170compile and install it.
171The version 1.0.5 usually compiles easily on recent Linux installations with a
172recent c++ compiler.
173Just follow the instructions in the {\tt \INSTALL{}} file contained in the downloaded
174package.
175
176However, for some systems there exist pre-compiled versions, see e.g.\ the
177{\sc Singular} website: \href{https://www.singular.uni-kl.de}{\tt
178  www.singular.uni-kl.de}.
179These versions run on many Linux systems.
180
181The standard name of the current version of the {\sc surf} binary is {\tt
182  surf-1.0.5}.
183Please, {\bf rename it to {\tt surf}} in order to allow \surfex{} to find it,
184independantly of the current version.
185}
186
187
188%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189%
190%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
191\subsubsection{{\sc convert} (optional, for producing movies)}
192
193For producing movies of algebraic surfaces, \surfex{} uses the great image
194conversion tool {\sc convert} which is part of the {\sc ImageMagick} package.
195You can download it from:
196\href{http://www.imagemagick.org}{\tt www.imagemagick.org}.
197
198\Windows{
199The easiest way is to download and install a Windows binary release (do NOT
200use the cygwin binary!).
201Please, use the Q16-verion.
202At the time of the writing of this documentation, the current version is
2036.2.7-6 and the corresponding file is:
204ImageMagick-6.2.7-6-Q16-windows-static.exe
205
206Its installation is very easy; just double-click the downloaded file.
207}
208
209\Linux{
210The easiest way is to download and install a binary release in the form of a
211rpm package.
212At the time of the writing of this documentation, the current version is
2136.2.7-6 and the corresponding file is: ImageMagick-6.2.7-6.i386.rpm
214
215To install it, type (as superuser (root)):
216\inshell{rpm -i ImageMagick-6.2.7-6.i386.rpm}
217}
218
219
220%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
221%
222%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223\subsection{Install}
224
225If you have {\sc Java} and {\sc surf} (and, optionally, {\sc convert}) installed on your
226system as described above, the installation of \surfex{} should be very easy.
227Just follow the steps below:
228
229\begin{itemize}
230\Windows{
231\item
232Copy the downloaded file {\tt surfex\_\curverfile.tar.gz} to the directory for
233the temporary files of your {\sc cygwin} (if the {\sc cygwin} directory is
234{\tt c:$\backslash$cygwin}, then the temporary directory will be {\tt
235  c:$\backslash$cygwin$\backslash$tmp}).
236
237\item Open a bash shell:
238It is available from the Windows Start Menu via the {\sc Singular} sub-menu:
239Programs $\to$ Singular CAS $\to$ Cygwin $\to$ Bash.
240
241\item
242Uncompress the downloaded file by typing the following command into the
243shell:
244\inshell{tar -xzvf /tmp/surfex\_\curverfile.tar.gz}
245}
246
247\Linux{
248\item
249Open a shell, preferably the bash shell.
250This shell is available on most Linux systems.
251You can start a bash by typing
252\inshell{bash}\\
253into a shell.
254
255\item
256Change to the directory, say {\tt /home/yourlogin/software} into which you
257downloaded the file
258{\tt surfex\_\curverfile.tar.gz}, e.g.\ by typing
259\inshell{cd /home/yourlogin/software}\\
260into a shell.
261
262\item
263Uncompress the downloaded file by typing the following command into the
264shell:
265\inshell{tar -xzvf surfex\_\curverfile.tar.gz}
266}
267\item
268This should have created a directory called {\tt
269  surfex\_\curverfile}.
270Change to this directory by typing the following into the shell:
271\inshell{cd surfex\_\curverfile}
272\item
273Run the {\tt \INSTALL{}} script by typing the following into the shell:
274\inshell{./\INSTALL}\\
275If {\tt \INSTALL{}} works well, it will produce a script
276called {\tt surfex} in the current directory, and it will copy this script to
277a directory which is contained in your bash path.
278\item
279You can now start surfex by typing:
280\inshell{surfex}
281\end{itemize}
282
283
284%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
285%
286%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
287\subsection{Start}
288
289If you have installed \surfex{} correctly then you can start it by typing
290\inshell{surfex}\\
291into a shell.
292Three windows will show up (see e.g., fig.\ \vref{fig:surfex_simple}), and a default
293surface will be shown.
294You can also invoke \surfex{} directly with an equation:
295\inshell{surfex -e x\^{}3+y\^{}2-z\^{}2}\\
296If this equation contains parenthesis then you might have to enclose the equation
297in quotes: \inshell{surfex -e "(x+y)*(x-y)+z\^{}3"}\\
298If you already have a \surfex{}-file, say {\tt example.sux}, then you can
299open this file by typing:
300\inshell{surfex example.sux}
301
302
303
304%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
305%
306%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
307\subsection{Examples}
308
309The directory {\tt \curverfile} which was made during the installation process
310should contain a sub-folder called {\tt examples}.
311
312Furthermore, we will give many more examples on our website in the future,
313see
314\href{http://www.surfex.AlgebraicSurface.net}{\tt
315  www.surfex.AlgebraicSurface.net}.
316
317
318
319%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
320%
321%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
322\subsection{Documentation}
323
324The latest version of the documentation which you are currently reading is
325available from our website:
326\href{http://www.surfex.AlgebraicSurface.net}{\tt
327  www.surfex.AlgebraicSurface.net}
328
329
330
331%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
332%
333%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
334\section{The Interface}
335
336
337%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
338%
339%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
340\subsection{Three Windows}
341
342\begin{figure}[htbp]
343  \begin{center}
344    \includegraphics[width=0.8\textwidth]{surfex_simple}
345    \caption{The \surfex{} interface.}
346    \label{fig:surfex_simple}
347  \end{center}
348\end{figure}
349
350After having started \surfex, you see three windows, entitled {\tt surfex}, {\tt
351  triangulation}, {\tt raytraced surface}.
352
353The {\tt raytraced surface} window shows a raytraced view of the surfaces
354(produced using {\sc surf}).
355
356The {\tt triangulation} window currently only shows a sphere.
357By dragging the mouse on this window you can rotate the surface which is
358shown in the {\tt raytraced surface} window.
359
360The main window is the {\tt surfex} window:
361here, you specify the equations and most of the other data.
362We describe this in detail in the next subsection.
363
364
365
366%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367%
368%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
369\subsection{The {\tt surfex} Window}
370
371
372%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373%
374%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
375\subsubsection{The Menu}
376
377\ \\\includegraphics[scale=0.75]{surfex_menu_bar}
378
379In the current version, the menu does not have much functionality.
380Only the {\tt file} menu contains some important items:
381for opening \surfex{} files, and for saving raytraced images and movies.
382
383%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
384%
385%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
386\subsubsection{The Project Title}
387
388\ \\\includegraphics[scale=0.6]{surfex_project_title}
389
390
391%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
392%
393%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
394\subsubsection{The Actions Bar}
395
396\ \\\includegraphics[scale=0.35]{surfex_actions_bar}
397
398The main actions are performed using the actions bar.
399From left to right, the buttons have the following functionalities:
400\begin{itemize}
401\item save the current project,
402\item save the current raytraced image (in a higher resolution, if you whish),
403\item save a movie, based on the current image (in a higher resolution, if you whish),
404\item add a parameter to the project,
405\item add an equation to the project,
406\item add a curve to the project,
407\item add an isolated point to the project,
408\item raytrace the image once,
409\item raytrace permanently; i.e., always produce new raytraced images whenever
410  you have changed anything.
411\end{itemize}
412
413
414\subsubsection{The General Properties Bar}
415
416\ \\\includegraphics[scale=0.6]{surfex_general_prop_bar}
417
418Using the general properties bar you can perform actions which do not
419only have an effect on one single object, but on all varieties
420simultaneously.
421From left to right:
422\begin{itemize}
423\item antialiasing: after the computation of the raytraced image, perform an
424  antialiasing (which enhances the quality, but which takes time).
425\item preview-quality: 1 (best quality), \dots, 8 (lowest quality).
426\item background-color: set the background color of the raytraced image.
427\end{itemize}
428
429
430\subsubsection{The Parameters Window}
431
432\ \\\includegraphics[scale=0.5]{surfex_parameters}
433
434The name of the parameter (here {\tt p1}) is the leftmost information given
435for each parameter.
436It cannot be changed in the current version.
437
438But you may specify the range of the parameter, and, of course, the value
439of the parameter itself.
440In the current version, the parameter can only be changed using the slider and
441not via the keyboard.
442
443\attention{}
444Once you have changed the lower or upper bound for a
445parameter by typing in some decimal number, you have to press RETURN (while
446the cursor is still in the text field in which you entered the new number).
447
448
449\subsubsection{The Equations Window}
450
451\ \\\includegraphics[scale=0.35]{surfex_equations}
452
453A checkbox is the leftmost element for each equation.
454Using this one, you can decide wether the surface should be shown in the
455picture or not.
456
457By clicking on one of the two colored buttons one can specify the inside (i.e.
458looking towards the points on which the equation takes positive values) and
459the outside color of the surface.
460
461The {\tt del} button is currently disabled.
462
463The {\tt opts} button opens an options dialogue box.
464At the moment, one can only specify the transparency there (in \%).
465If this is set to 100 \% then the surface is not visible at all in the
466picture.
467
468At the right of this button you can see the name of the equation.
469
470\paragraph{Equation Syntax}
471
472The equation itself may be entered into the big text field.
473You have to give all operators explicitly: {\tt +}, {\tt -}, {\tt *},
474{\tt \^{}} (i.e., e.g., {\tt 3xy} is not allowed).
475As parenthesis you may use {\tt (} and {\tt )}.
476
477Furthermore, you may include the names of the parameters (in the numerator or
478denominator) and of the other equations (in the numerator).
479
480You may even apply trigonometric functions ({\tt sin}, {\tt cos}, {\tt tan},
481{\tt arccos}, {\tt arcsin}, {\tt arctan}) or {\tt sqrt} to decimal numbers or
482parameters (these are actually those supported by {\sc surf}).\\
483E.g., if you have two parameters {\tt p1} and {\tt p2}, and two equations {\tt
484  f1} and {\tt f2}, then the equation of the third equation may e.g.\ look as
485follows: {\tt cos(p1)*f1 + (sqrt(p2)+1)*f2}.
486
487{\sc surf} also allows the usage of some functions which yield a polynomial:
488\begin{itemize}
489\item {\tt hesse} (produces the Hessian of a surface),
490\item
491  {\tt diff(p,x)}, {\tt diff(p,y)}, {\tt diff(p,z)} (the partial
492  differentials, where {\tt p} is some polynomial),
493\item {\tt rotate(p,v,xAxis)}, {\tt rotate(p,v,yAxis)}, {\tt
494  rotate(p,v,zAxis)}, where {\tt p} is some polynomial and {\tt v} is
495  some decimal number (or parameter!); in this way, you can produce your own
496  non-standard rotation movie.
497\end{itemize}
498
499E.g.,
500{\tt diff(f1,x)*p1 + diff(f1,y)*p2 + diff(f1,z)*p3}
501is the equation of the polar of the surface {\tt f1} with respect to the point
502with coordinates {\tt p1}, {\tt p2}, {\tt p3} (which can be specified using
503the parameter sliders).
504
505
506\subsubsection{The Curves Window}
507
508\ \\\includegraphics[scale=0.35]{surfex_curves}
509
510Similar to the equations, you can specify if you want to see the curve or not
511by using the checkbox at the left.
512
513There is also a color button.
514
515Each curve is then specified by giving the numbers of some equations.
516
517\attention{}
518It is important to note that the curve will be drawn on the first of the
519surfaces specified.
520This means in particular that the curve will only be shown if the checkbox of
521this surface is checked, although its transparency can be 100 \%.
522This last feature can be used to draw space curves without showing the
523surface.
524
525
526\subsubsection{The Solitary Points Window}
527
528\ \\\includegraphics[scale=0.35]{surfex_points}
529
530Solitary points can be shown as small spheres in the picture.
531At the moment, their properties have to be the same as those of one of the
532surfaces.
533You have to select its number from the drop down list at the left.
534The coordinates of the points can contain polynomials in the parameters.
535
536The slider can be used to give the radius of the small sphere representing the
537solitary point.
538At the moment, all solitary points have to be represented by spheres which
539have the same radius.
540
541
542\end{document}
543%%% Local Variables:
544%%% mode: latex
545%%% TeX-master: t
546%%% End:
Note: See TracBrowser for help on using the repository browser.