summaryrefslogtreecommitdiff
path: root/texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-07-12 23:20:07 +0900
committerNorbert Preining <norbert@preining.info>2017-07-12 23:20:07 +0900
commit6bab4699285d78934a890262fa2a7a3db32b82bd (patch)
tree2c6c583ea7499567913aadc356cc0fd52dea726b /texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex
parentf17a8765c35b4b836995b01a5c88c785796b013f (diff)
add acroflex
Diffstat (limited to 'texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex')
-rw-r--r--texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex296
1 files changed, 296 insertions, 0 deletions
diff --git a/texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex b/texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex
new file mode 100644
index 00000000..74dad7db
--- /dev/null
+++ b/texmf-dist/doc/latex/acroflex/examples/transf_grphs.tex
@@ -0,0 +1,296 @@
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage[%
+ web={pro,tight,usesf},
+ eforms,exerquiz,dljslib={ImplMulti},
+ graphicxsp={showembeds}
+]{aeb_pro}
+\usepackage{acroflex}
+
+\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom
+\screensize{6.8in}{5.5in} % height, width dimensions
+
+\DeclareDocInfo
+{
+ title=Exploring Graphical Transformations,
+ author=D. P. Story,
+ university=Northwest Florida State College,
+ email=storyd@owc.edu,
+ subject=Demo of the acroflex and the rmannot package,
+ keywords={Adobe Acrobat, JavaScript, Adobe FLEX 3, ActionScript},
+ talksite=\url{http://faculty.owc.edu/math/storyd},
+ talkdate={\today},
+ copyrightStatus=True,
+ copyrightNotice={Copyright (C) \the\year, D. P. Story},
+ copyrightInfoURL=http://www.acrotex.net
+}
+\talkdateLabel{Published:}
+
+\setWindowOptions{showtitle}
+
+\requiredVersionMsg{%
+ Version 9 required: This document may be viewed, but version 9
+ of Acrobat/Adobe Reader is required to view the rich media
+ annotations present in this document.}
+\requiredVersionMsgRedirect{%
+ Version 9 required: This document may be viewed, but version 9
+ of Acrobat/Adobe Reader is required to view the rich media
+ annotations present in this document.}
+\requiresVersion[warnonly]{9}
+
+\def\AcroTeX{Acro\!\TeX}
+\def\myURL{http://www.math.uakron.edu/\string~dpstory}
+%
+% The following definitions are for the rmannot package.
+% The \saveNamedPath associates the name AcroAd with the
+% path to a Flash animation, Acro_Advertiser.swf.
+% The two \makePoster definitions are for the posters of the
+% rich media annotations. The first for the animation on page 1
+% and the second for all the AcroFlex graphing screens.
+\newcommand{\myRMFiles}{C:/Users/Public/Documents/My TeX Files/%
+ tex/latex/aeb/aebpro/rmannot/RMfiles}
+\saveNamedPath{AcroAd}{\myRMFiles/Acro_Advertiser.swf}
+%
+% See the rmannot documentation. You can create your own
+% poster graphic and declare it in the preamble.
+%
+\makePoster[hiresbb]{aflogo}{aflogo1}
+\makePoster[hiresbb]{AcroAd_poster}{AcroAd_poster}
+
+\parindent=0pt
+\pagestyle{empty} %\previewtrue
+\def\graphAndControls{\kern0pt\noindent
+ \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\\[1ex]
+ \makebox[\hScreenGraph][l]{%
+ \savedelSelBtn[\textSize{7}\CA{S}]{9bp}{11bp}\kern1bp
+ \functionSelect{50bp}{11bp}\hfill
+ \funcInputField{\hScreenGraph-50bp-6bp-9bp}{11bp}%
+ }\\[1ex]
+ \makebox[\hScreenGraph][c]{\scriptsize
+ \graphBtn[\textSize{7}]{}{9bp}\kern1pt
+ \graphClrBtn[\textSize{7}]{}{9bp}\hfill
+ \hShiftL{\raisebox{1bp}{\reflectbox{\ding{220}}}}\,%
+ \vShiftU{\raisebox{1bp}{\rotatebox{90}{\ding{220}}}}\,\,%
+ \amtShift[\textSize{7}]{12bp}{9bp}\,\,%
+ \vShiftD{\raisebox{1bp}{\rotatebox[origin=c]{-90}{\ding{220}}}}
+ \hShiftR{\raisebox{1bp}{\ding{220}}}\enspace
+ \hfill\zoomInOut[\textSize{7}]{}{9bp}%
+ }\\[1pt]%
+ \makebox[\hScreenGraph][l]{\scriptsize
+ $x = $ \strut\domMin[\textSize{7}]{36bp}{9bp}\ldots
+ \domMax[\textSize{7}]{36bp}{9bp}\hfill
+ $n = $\numPoints[\textSize{7}]{16bp}{9bp}
+ }\\[1pt]%
+ \makebox[\hScreenGraph][l]{\scriptsize
+ $y = $ \rngMin[\textSize{7}]{36bp}{9bp}\ldots
+ \rngMax[\textSize{7}]{36bp}{9bp}%
+ }%\\[1pt]%%
+% \makebox[\hScreenGraph][l]{\scriptsize
+% $t = $ \strut\domMinP[\textSize{7}]{36bp}{9bp}\ldots
+% \domMaxP[\textSize{7}]{36bp}{9bp}%
+% }
+\par
+}
+
+%
+% Display an advertisement on the opening page through the
+% \optionalPageMatter command.
+%
+\optionalPageMatter{%
+\begin{center}
+\begin{minipage}{.7\linewidth}
+ \resizebox{\linewidth}{!}{%
+ \rmAnnot[poster=AcroAd_poster,enabled=pageopen]{612bp}{265bp}{AcroAd}}%
+\end{minipage}
+\end{center}
+}
+
+\begin{document}
+
+\maketitle
+
+
+
+% Basic parameters. These are the graphing screen dimensions you wish
+% for the AcroFleX graphing widget, and the \graphName is the base name used by
+% all the supporting components to the graphing screen.
+
+\dimScreenGraph{160bp}{160bp}
+%\dimScreenGraph{186bp}{186bp*3/4}
+\graphName{graph1}
+
+\begin{center}\bfseries\Large\color{blue}
+ Transforming Graphs
+\end{center}
+
+\medskip
+This is a demo of graphical transformations, and is based on my recent work over the summer, 2008,
+on creating a interactive graphing system using a Flash application, written by myself, for PDF.
+Adobe Reader 9.0 or later is required to use this system.
+\medskip
+
+\begin{minipage}[t]{\hScreenGraph + 10bp}
+%
+% Insert the \graphScreen with all possible controls. Plot data entered by the
+% user is interactive mode.
+\graphAndControls
+\end{minipage}\hfill
+\begin{minipage}[t]{\linewidth - \hScreenGraph - 10bp}\small\par
+\textbf{\textcolor{red}{Instructions:}} This graphing system can graph
+a function of $x$.
+\begin{questions}
+ \item For a function of $x$, enter an algebraic expression to be graphed, e.g.,
+ \verb!x^2!, \verb!x^3!, \verb!3x^2-1!, \verb!|x|!, \verb!sqrt(x)!
+ \item Set the graph viewing window: The range of the horizontal
+ axis ($x$-axis) and range of the vertical axis ($y$-axis).
+ For parametric plotting, set the range of the $t$ variable.
+ \item Enter the number of points, $n$, to plot.
+ \item Click the \textsf{Graph It!} button.
+ \item Shift the viewing window horizontally or vertical;
+ or zoom in or out.
+ \item Click \texttt{Clear} to clear the plot; use
+ \textsf{shift-click} to deactivate the graphing screen.
+\end{questions}
+\end{minipage}
+
+\medskip
+
+\noindent\makebox[\linewidth][c]{\rule{.67\linewidth}{.4pt}}
+
+\medskip
+
+\parskip3pt
+
+\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
+ noquotes,points=n_Pts}{newFunc}{\verticalShift}
+\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
+ noquotes,points=n_Pts}{newFunc}{\horizontalShift}
+\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
+ noquotes,points=n_Pts}{newFunc}{\verticalShrink}
+\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
+ noquotes,points=n_Pts}{newFunc}{\horizontalShrink}
+\def\gatherGraphingData{%
+ var f = this.getField("graph1theFunction").value;\r\t
+ var d_min = this.getField("graph1theDom.min").value;\r\t
+ var d_max = this.getField("graph1theDom.max").value;\r\t
+ var r_min = this.getField("graph1theRng.min").value;\r\t
+ var r_max = this.getField("graph1theRng.max").value;\r\t
+ var n_Pts = this.getField("graph1numNodes").value;\r\t
+}
+
+Explore graphical transformations by entering numbers into the fields below. Put your mouse
+over the fields for additional instructions. Click on the green links to populate the
+graphing screen with suggested examples, then manipulate these examples using the controls below.
+
+\smallskip
+
+\begin{center}
+\begin{tabular}{lll}
+\textbf{Description} & \textbf{Input} & \textbf{Suggested Examples}\\
+
+Vertical Shift & \textField[\textSize{7}\TU{Enter a number (positive
+or negative) to shift the graph vertically up or down.}
+ \AA{\AAKeystroke{%
+ if (event.willCommit) {\r\t
+ \gatherGraphingData
+ var _C = event.value;\r\t
+ if ( isFinite(_C) ) {\r\t\t
+ var newFunc = f+"+"+(_C);\r\t\t
+ \verticalShift\r\t
+ }\r
+ }
+}}]{vShift}{20bp}{9bp}&
+\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-3,3]},points=40}{x}{$x$},
+\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-2,4]},points=40}{x^2}{$x^2$},
+\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-4,4]},points=40}{x^3}{$x^3$},
+\sgraphLink{populate,xInterval={[-2,3]},yInterval={[-3,6]},points=40}{(x-1)^2+1}{$(x-1)^2+1$}\\
+%
+%
+Horizontal Shift & \textField[\textSize{7}\TU{Enter a number
+(positive or negative) to shift the graph horizontally right or
+left.}
+ \AA{\AAKeystroke{%
+ if (event.willCommit) {\r\t
+ \gatherGraphingData
+ var _C = event.value;\r\t
+ if ( isFinite(_C) ) {\r\t\t
+ newFunc = f.replace(/x/g, "(x-("+_C+"))");\r\t\t
+ \horizontalShift\r\t
+ }\r
+ }
+}}]{hShift}{20bp}{9bp}&
+\sgraphLink{populate,xInterval={[-2,4]},yInterval={[-2,2]},points=60}{sqrt(x)}{$\sqrt{x}$},
+\sgraphLink{populate,xInterval={[-3,3]},yInterval={[-3,3]},points=60}{x^{1/3}}{$\sqrt[3]{x}$},
+\sgraphLink{populate,xInterval={[-2,4]},yInterval={[-2,3]},points=60}{sqrt(x-1)+1}{$\sqrt{x-1}+1$}\\
+%
+%
+Vertical Stretch/Shrink& \textField[\textSize{7}\TU{Enter a positive number
+to stretch or shrink the graph vertically.}
+ \AA{\AAKeystroke{%
+ if (event.willCommit) {\r\t
+ var f = this.getField("graph1theFunction").value;\r\t
+ var d_min = this.getField("graph1theDom.min").value;\r\t
+ var d_max = this.getField("graph1theDom.max").value;\r\t
+ var r_min = this.getField("graph1theRng.min").value;\r\t
+ var r_max = this.getField("graph1theRng.max").value;\r\t
+ var n_Pts = this.getField("graph1numNodes").value;\r\t
+ var _C = event.value;\r\t
+ if ( isFinite(_C) && (Number(_C) > 0) ) {\r\t\t
+ newFunc = String("(_C)*("+f+")")\r\t\t
+ \verticalShrink\r\t
+ }\r
+ }
+}}]{vShrink}{20bp}{9bp}&
+\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-2,4]},points=40}{|x-1|}{$|x|$},
+\sgraphLink{populate,xInterval={[-2,3]},yInterval={[-2,2]},points=40}{|x-1|}{$|x-1|$}\\
+%
+%
+Horizontal Stretch/Shrink& \textField[\textSize{7}\TU{Enter a positive number
+to stretch or shrink the graph horizontally.}
+ \AA{\AAKeystroke{%
+ if (event.willCommit) {\r\t
+ var f = this.getField("graph1theFunction").value;\r\t
+ var d_min = this.getField("graph1theDom.min").value;\r\t
+ var d_max = this.getField("graph1theDom.max").value;\r\t
+ var r_min = this.getField("graph1theRng.min").value;\r\t
+ var r_max = this.getField("graph1theRng.max").value;\r\t
+ var n_Pts = this.getField("graph1numNodes").value;\r\t
+ var _C = event.value;\r\t
+ if ( isFinite(_C) && (Number(_C) > 0) ) {\r\t\t
+ newFunc=f.replace(/x/g, "(("+_C+")*x)");\r\t\t
+ \horizontalShrink\r\t
+ }\r
+ }
+}}]{hShrink}{20bp}{9bp}&\\
+%
+%
+Reflect w/resp $y$-axis & \pushButton[\textSize{7}\CA{y-Axis}
+ \TU{Press to reflect current graph with respect to the y-axis.}
+ \A{\JS{%
+ var f = this.getField("graph1theFunction").value;\r\t
+ var d_min = this.getField("graph1theDom.min").value;\r\t
+ var d_max = this.getField("graph1theDom.max").value;\r\t
+ var r_min = this.getField("graph1theRng.min").value;\r\t
+ var r_max = this.getField("graph1theRng.max").value;\r\t
+ var n_Pts = this.getField("graph1numNodes").value;\r\t
+ newFunc=f.replace(/x/g, "((-1)*x)");\r\t\t
+ \horizontalShrink\r\t
+}}]{y_reflect}{}{9bp}&
+Click \graphClrBtn[\textSize{7}]{}{9bp} before clicking on green links\\
+%
+%
+Reflect w/resp $x$-axis & \pushButton[\textSize{7}\CA{x-Axis}
+ \TU{Press to reflect current graph with respect to the x-axis.}
+ \A{\JS{%
+ var f = this.getField("graph1theFunction").value;\r\t
+ var d_min = this.getField("graph1theDom.min").value;\r\t
+ var d_max = this.getField("graph1theDom.max").value;\r\t
+ var r_min = this.getField("graph1theRng.min").value;\r\t
+ var r_max = this.getField("graph1theRng.max").value;\r\t
+ var n_Pts = this.getField("graph1numNodes").value;\r\t
+ newFunc = String("(-1)*("+f+")")\r\t\t
+ \verticalShrink\r\t
+}}]{x_reflect}{}{9bp}&
+\end{tabular}
+\end{center}
+\end{document}