\documentclass[10pt]{article}
\usepackage{a4wide}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{varioref}
\usepackage[T1] {fontenc}
\usepackage[latin1] {inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{verbatim}
\usepackage{pst-all}
\usepackage{float}
%\usepackage{pst-pdf}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{tabularx}


\usepackage{geometry}
\geometry{a4paper,left=30mm,right=30mm, top=2cm, bottom=2cm}

\newcommand{\R}{\mathbb{R}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\C}{\mathbb{C}}
\newcommand{\PC}{\mathcal{P}}
\newcommand{\ZC}{\mathcal{Z}}
\newcommand{\Sum}{\sum\limits}
\newcommand{\Prod}{\prod\limits}
\newcommand{\Lim}{\lim\limits}
\newcommand{\Int}{\int\limits}
\renewcommand{\Im}{\text{Im}}
\renewcommand{\Re}{\text{Re}}
\newcommand{\eps}{\varepsilon}
\parindent 0pt
\pagestyle{empty}


\newcommand{\luecke}[1]{\raisebox{-6pt}{\makebox[#1]{\dotfill}}}

\def\versionnumber{0.82}  % Version of this reference card
\def\year{2010}
\def\month{Juni}
\def\version{\month\ \year\ v\versionnumber}

\begin{document}
\title{JessieScript Referenz (Version \version)}
\begin{center} {\LARGE\textbf {JessieScript Referenz (Version
\version)}}
\end{center}
\section{Konstruieren}
Einfache mathematische JSXGraph-Konstruktionen können in der von
JSXGraph lesbaren Syntax JessieScript erzeugt werden. Dabei können
verschiedene Elemente, durch
Semikolon getrennt als String übergeben werden. Leerzeichen spielen keine Rolle. \\\\
Mögliche
Elemente sind: \\ \begin{tabular}{|l|l|} \hline \\[-0.75em] {\large
\textbf{Beispiel}} & {\large \textbf{Beschreibung}} \\
\hline\hline \verb+A(1,1)+ & Punkt an der Stelle (1,1) mit dem
Namen \verb'A'
\\ \hline \verb+BB(-2|0.5)+ & Punkt
an der Stelle (-2,0.5) mit dem Namen \verb'BB' \\
\hline\verb+]AB[+ & Gerade durch die Punkte \verb'A' und \verb'B' \\
\hline\verb+[AB[+ &
Halbgerade durch die Punkte \verb'A' und \verb'B', über \verb'B' hinaus \\
\hline\verb+]A BB]+ & Halbgerade durch die Punkte A
und BB, über A hinaus \\ \hline\verb+[AB]+ & Strecke zwischen \verb'A' und \verb'B' \\
\hline \verb+g=[AB]+ & Strecke zwischen \verb'A' und \verb'B' mit dem Namen \verb'g' \\
\hline\verb+k(A,4)+ & Kreis um \verb'A' mit Radius 4 \\
\hline\verb+k(A,[BC])+ & Kreis um \verb'A', dessen Radius durch
die Länge der (nicht notwendigerweise
\\ & existierenden) Strecke \verb'[BC]' \\ \hline\verb+k(A,B)+ & Kreis um \verb'A',
dessen Kreislinie durch den Punkt \verb'B' geht \\
\hline\verb+k1=k(A,3)+ & Kreis um \verb'A' mit Radius 3 mit dem
Namen \verb'k1'
\\ \hline\verb+P(g)+ & Gleiter \verb'P' auf dem Objekt \verb'g' \\
\hline\verb+Q(k1,0,1)+ & Gleiter \verb'Q' auf dem Objekt \verb'k1'
mit den Koordinaten (0,1) \\ \hline \verb+g&k1+ & Schnittpunkt(e)
der Objekte \verb'g' und \verb'k1' \\ \hline \verb+S=g&k1+ &
Schnittpunkt(e) der Objekte \verb'g' und \verb'k1'.  \\ & Mehrere
Schnittpunkte
werden mit \verb'S'$_1$ und \verb'S'$_2$ bezeichnet, einzelne mit \verb'S'. \\
\hline\verb+||(A,g)+ & Parallele zur Geraden \verb'g' durch den
Punkt \verb'A'
\\  \hline\verb+|_(A,g)+ & Senkrechte zur Geraden \verb'g' durch den Punkt
A \\ \hline\verb+<(A,B,C)+ & Winkel, definiert durch die Punkte
\verb'A', \verb'B', \verb'C' \\ \hline\verb+alpha=<(A,B,C)+ &
Winkel, definiert durch die Punkte \verb'A', \verb'B', \verb'C',
mit dem Namen $\alpha$
\\  & Mögliche griechische Bezeichner sind \verb'alpha',
\verb'beta', \verb'gamma', \verb'delta', \verb'epsilon', \\ &
\verb'zeta', \verb'eta', \verb'theta', \verb'iota', \verb'kappa',
\verb'lambda', \verb'mu', \verb'nu', \verb'xi', \verb'omicron',
\verb'pi', \verb'rho', \verb'sigmaf', \\ & \verb'sigma',
\verb'tau', \verb'upsilon', \verb'phi', \verb'chi', \verb'psi' und
\verb'omega'. \\ \hline\verb+1/2(A,B)+ & Mittelpunkt von \verb'A'
und \verb'B' \\ \hline\verb+3/4(A,B)+ & Punkt, der die Strecke von
\verb'A' nach \verb'B' im Verhältnis 3:7 innen teilt, \\ & d.h.
$\frac{3}{4}$ der Strecke \verb'[AB]' liegen zwischen \verb'A' und
dem Teilpunkt \\ & Dabei ist jedes Verhältnis natürlicher Zahlen möglich. \\
\hline\verb+P[A,B,C,D]+ & Polygon durch die Punkte \verb'A',
\verb'B', \verb'C', \verb'D' mit dem Namen 'P' \\
\hline\verb'f:x^2+2*x' & Funktionsgraph, $f:x\mapsto x^2+2\cdot x$ \\
\hline\verb'f:sin(x)' & Funktionsgraph, $g:x\mapsto \sin(x)$ \\
\hline\verb'#Hallo Welt(0,3)' & Text \verb'Hallo Welt' an den
Koordinaten (0,3) \\ \hline
\end{tabular} \vspace*{0.5cm} \\
Es ist für jedes der Elemente (außer Punkte, Graphen und Polygone)
möglich, mit
\begin{verbatim}
    objname = ...
\end{verbatim}
direkt einen Namen zu vergeben.

\section{Schnelles Verändern von Eigenschaften}
Zum Setzen der drei wichtigsten Eigenschaften gibt es eine
schnelle Möglichkeit, alle anderen müssen im Nachhinein durch
Zugriff auf die entsprechenden Objektnamen und Aufruf der
entsprechenden Methode gesetzt werden. \\ Diese sind \\
\begin{tabular}{|l|l|} \hline \\[-0.75em] {\large
\textbf{Eigenschaft}} & {\large \textbf{Beschreibung}} \\
\hline\hline\verb+invisible+ & das entsprechende Objekt ist unsichtbar \\
\hline\verb+draft+ & das entsprechende Objekt wird im
Entwurfsmodus
dargestellt \\
\hline\verb+nolabel+ & das entsprechende Objekt erhält kein Label
\\ \hline
\end{tabular} \vspace*{0.5cm} \\
Gesetzt werden diese Eigenschaften direkt beim Anlegen des
Objekts, indem das jeweilige Schlüsselwort (bzw. die jeweiligen
Schlüsselworte, auch eine Kombination davon ist möglich), durch
Leerzeichen getrennt, hinter dem Konstruktionsbefehl noch vor dem
zugehörigen Semikolon, geschrieben wird, d.h.
\begin{verbatim}
     P(1,1) nolabel; Q(2,3) draft nolabel; [PQ] invisible;
\end{verbatim}

\section{Setzen von Eigenschaften}
Möchte man Eigenschaften der erzeugten Elemente im Nachhinein
verändern, ist das auch per JessieScript möglich. Die
entsprechende Syntax lautet
\begin{verbatim}
     objektname.eigenschaft = wert;
\end{verbatim}
Ein Beispiel wäre also
\begin{verbatim}
     A(1,2); A.size = 8;
\end{verbatim}
Mögliche Eigenschaften sind dabei \\
\begin{tabular}{|l|l|} \hline \\[-0.75em] {\large
\textbf{Eigenschaft}} & {\large \textbf{Beschreibung}} \\
\hline\hline\verb+strokecolor+ & Linienfarbe, entweder als englischer HTML-Farbname \\ & oder als Hex-Angabe \#rrggbb \\
\hline\verb+fillcolor+ & Füllfarbe, entweder als englischer HTML-Farbname \\ & oder als Hex-Angabe \#rrggbb \\
\hline\hline\verb+highlightstrokecolor+ & Linienfarbe während das Objekt hervorgehoben ist, \\ & entweder als englischer HTML-Farbname oder als Hex-Angabe \#rrggbb \\
\hline\verb+highlightfillcolor+ & Füllfarbe während das Objekt hervorgehoben ist, \\ & entweder als englischer HTML-Farbname oder als Hex-Angabe \#rrggbb \\
\hline\verb+labelcolor+ & Farbe des Labels, entweder als englischer HTML-Farbname \\ & oder als Hex-Angabe \#rrggbb \\
\hline\verb+strokewidth+ & Linienstärke, in Pixel \\
\hline\verb+dash+ & Strichelung der Linie, mögliche Werte sind dabei: \\
& 0: durchgezogene Linie \\ & 1: gepunktete Linie \\ & 2:
gestrichelte Linie mit kurzen Strichen \\ & 3: gestrichelte Linie
mit normalen Strichen \\ & 4: gestrichelte Linie mit langen
Strichen \\ & 5: gestrichelte Linie mit abwechselnd normalen und
langen Strichen \\ & \hspace{2.5mm} und großen Lücken \\ & 6:
gestrichelte Linie mit
abwechselnd normalen und langen Strichen \\ & \hspace{2.5mm} und kleinen Lücken \\
\hline\verb+visible+ & Objekt wird angezeigt (true) oder versteckt
(false) \\ \hline\verb+shadow+ & Objekt bekommt einen
Schatteneffekt (true) oder nicht (false)
\\ \hline\verb+size+ & (nur für Punkte) Größe des Punktes,
in Pixel
\\ \hline\verb+face+ & (nur für Punkte) Aussehen des
Punktes, mögliche Werte sind dabei: \\ & Kreuz: \verb+cross+ oder
\verb+x+ \\ & Plus: \verb+plus+ oder \verb"+" \\ & Kreis:
\verb+circle+ oder \verb+o+ \\ & Quadrat: \verb+square+ oder
\verb+[]+ \\ & Diamant: \verb+diamond+ oder \verb+<>+ \\ & Dreieck
nach oben: \verb+triangleup+ oder \verb+A+ \\ & Dreieck nach
unten: \verb+triangledown+ oder \verb+v+ \\ & Dreieck nach rechts:
\verb+triangleright+ oder \verb+>+ \\ & Dreieck nach links:
\verb+triangleleft+ oder \verb+<+
\\ \hline
\end{tabular}

\section{Makros}
Zusätzlich können Makros definiert werden. Schlüsselwort ist
\verb+Macro+, die Parameter werden, durch Komma getrennt, in
runden Klammern übergeben, der Inhalt innerhalb von geschweiften
Klammern. Links vom Zuweisungsoperator kann ein beliebiger Name
für das Makro übergeben werden. \\ Die entsprechende Syntax ist
also
\begin{verbatim}
     macroName = Macro(param1, param2, param3, ...) { Befehl1; Befehl2; Befehl3; ... };
\end{verbatim}
Aufgerufen wird das Makro dann mit
\begin{verbatim}
     ergebnis = macroName(x1,x2,x3,...);
\end{verbatim}
\end{document}
