Sie sind auf Seite 1von 91

M A G I S T E R A R B E I T

Visualization
of Complex Function Graphs
in Augmente Realit!
ausgef"hrt am
Institut f"r
Soft#aretechni$ un Intera$ti%e S!steme
er Technischen &ni%ersit't (ien
unter er Anleitung %on
&ni%)Ass) Mag) *r) +annes ,aufmann
urch
Ro-ert .ie-o
Brahmsplatz /011
1232 (ien
444444444 4444444444444444444444444444
*atum &nterschrift
Abstract
&nerstaning the properties of a function o%er complex num-ers can -e much more
ifficult than #ith a function o%er real num-ers) This #or$ pro%ies one approach in
the area of %isualization an augmente realit! to gain insight into these properties)
The applie %isualization techni5ues use the full palette of a 6* scene graph7s
-asic elements8 the complex function can -e seen an unerstoo through the
location8 the shape8 the color an e%en the animation of a resulting %isual o-9ect) The
proper usage of these %isual mappings pro%ies an intuiti%e graphical representation
of the function graph an re%eals the important features of a specific function)
Augmente realit! :AR; com-ines the real #orl #ith %irtual o-9ects
generate -! a computer) &sing multi user AR for mathematical %isualization ena-les
sophisticate eucational solutions for stuies ealing #ith complex functions)
A soft#are frame#or$ that has -een implemente #ill -e explaine in etail8
it is tailore to pro%ie an optimal solution for complex function graph %isualization8
-ut sho#s as #ell an approach to %isualize general ata sets #ith more than 6
imensions) The frame#or$ can -e use in a %ariet! of en%ironments8 a es$top
setup an an immersi%e setup #ill -e sho#n as examples)
Finall! some common tas$s in%ol%ing complex functions #ill -e sho#n in
connection #ith this frame#or$ as example usage possi-ilities)
ii
Dedication
*eicate to e%er!-o! #ho too$ more than a !ear to finish his0her master thesis)
iii
Acknowledgments
I #ant to than$ e%er!-o! #ho mae this #or$ possi-le8 first of all m! famil!8
Bar-ara8 the people I li%e #ith8 m! friens an m! colleagues #ho supporte m! all
the time)
This #or$ #oul also ha%e -een impossi-le #ithout the #or$ of m!
super%isor +annes ,aufmann an *ieter Schmalstieg #ho guie me into the #orl
of VR8 the people of the VR<group in Vienna an Graz an the computer graphics
institute #ith its master an the CGClu-)
i%
Table of Contents
Abstract................................................................................................... ii
Dedication.............................................................................................. iii
Acknowledgments................................................................................... iv
List of Figures........................................................................................ vii
1 Introduction...........................................................................................1
1)1 Moti%ation)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1
1)= Applications)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))=
1)=)1 Math Eucation))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) =
1)=)= Electrical Engineering Math))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) =
1)=)6 Filter *esign Math)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))=
2 Related ork........................................................................................ !
=)1 Complex Function Visualization)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))3
=)1)1 Applications))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 3
=)1)= (e- Base Complex Function Visualization))))))))))))))))))))))))))))))))))))))))))))))))>
=)1)6 Visualizations Generate -! Existing Soft#are))))))))))))))))))))))))))))))))))))))))))))/
=)= Augmente Realit!))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1=
=)=)1 Science eucation #ith AR an VR))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1=
=)6 Visualization in Scene Graph A?Is))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 13
" Tec#nological Foundations..................................................................1$
6)1 In%entor an Coin6*)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1>
6)1)1 @oes))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1>
6)= Stuierstu-e)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1/
! T#e Com%le& Function 'ra%# (isuali)ation *ode +it for Inventor......1,
3)1 The Frame#or$7s *esign)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1A
3)1)1 A Visualization Tas$)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1A
3)1)= Function Graph Specific Visualization Tas$)))))))))))))))))))))))))))))))))))))))))))))))1B
3)1)6 *imensionalit! Issues)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))=2
3)1)3 *omain Set Issues))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) =1
3)= Implementation)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ==
3)=)1 C%er%ie# of Implemente Classes))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))==
3)=)1)1 SoComplexFunctionGraphVisualization Internals)))))))))))))))))))))))))))) =6
3)=)1)= SoComplexFunctionE%aluator Internals))))))))))))))))))))))))))))))))))))))))))))=3
3)=)= *omain Set Input))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))=D
3)=)=)1 SoComplex*omainSu-Set42*)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) =>
3)=)=)= SoComplex*omainSu-Set41*4Regular.ine))))))))))))))))))))))))))))))))))))=>
%
3)=)=)6 SoComplex*omainSu-Set41*4RegularCircle))))))))))))))))))))))))))))))))))=/
3)=)=)3 SoComplex*omainSu-Set4=*4RegularRectangular))))))))))))))))))))))) =/
3)=)=)D SoComplex*omainSu-Set4=*4Regular?olar)))))))))))))))))))))))))))))))))) =A
3)=)=)> omainSu-Set.ist input)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))=B
3)=)6 Function Input))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))=B
3)=)3 ?arameter Input))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 62
3)=)D Mapping Input)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))61
3)=)D)1 Graph Space Components :Source Vector;))))))))))))))))))))))))))))))))))))))))6=
3)=)D)= Visualization Space Components :Target Vector;))))))))))))))))))))))))))))) 66
3)=)D)6 SoMappingGraph?ropert!ToVizFeature #ith scale an offset)))))))))6D
3)=)> GraphVisualization Configuration Input)))))))))))))))))))))))))))))))))))))))))))))))))))6>
3)=)>)1 Custom ?oint C-9ects))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))6>
3)=)>)= .ine an Arc Connectors)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6/
3)=)>)6 Arra! *issol%ers))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))6A
3)=)/ VizC-9ect*efinitionState))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))6A
- .ser Interfaces and /&am%le 0etu%s................................................... !"
D)1 Immersi%e Setup))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 36
D)1)1 Immersi%e Setup &ser Instructions)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 33
D)= *es$top Setup))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 3D
D)=)1 *es$top Setup &ser Instructions))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))3D
$ .sage /&am%les...................................................................................!1
>)1 Exploring the ?rocess of Fractals Calculation :Iterati%e Complex Functions;) 3/
>)1)1 Experiment @r) 1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))3/
>)1)= Experiment @r) =))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D1
>)= E<Tranform an Transfer Functions of *igital Filters)))))))))))))))))))))))))))))))))))))) D>
1 Conclusion........................................................................................... $1
/)1 Finings))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>1
/)= Future (or$))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>=
A%%endi& A2 A 0urve3 on Function 4lotters............................................$"
A)1 Function ?lotter Applications))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >3
A)= (e-<-ase Function ?lotters))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >A
A)=)1 Ser%er Sie ?lot Image Generators))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >A
A)=)= Fa%a0Flash Applets))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>B
A)6 Generic *ata ?lotters)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/1
A)3 Math ?ac$ages))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /3
A)3)1 Mathematica)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/3
A)3)= Matla-)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /3
A)D Spreasheets)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /D
List of References.....................................................................................&
%i
List of Figures
Figure 1G f:z; screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))3
Figure =G g:z; screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))D
Figure 6G rtzme screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D
Figure 3G A Complex Function Vie#er screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))>
Figure DG Bom-elli screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
Figure >G Complex Function Grapher applet screenshots))))))))))))))))))))))))))))))))))))))))))))))/
Figure /G Ta-le of Conformal Mappings))) #e- page)))))))))))))))))))))))))))))))))))))))))))))))))))))) /
Figure AG Graphics for Complex Anal!sis example animation)))))))))))))))))))))))))))))))))))))))A
Figure BG example graph animation -! Banchoff an Cer%one))))))))))))))))))))))))))))))))))))))A
Figure 12G example graph VRM. file -! Banchoff an Cer%one :screenshot;)))))))))))))) B
Figure 11G Complex Function Visualization images -! Fran$ Farris))))))))))))))))))))))))))))) B
Figure 1=G +ans .unmar$7s approach using an image in the omain set))))))))))))))))))12
Figure 16G +ans .unmar$7s approach using a more useful coloring scheme)))))))))))) 12
Figure 13G Martin ?ergler7s omain coloring images)))))))))))))))))))))))))))))))))))))))))))))))))))) 11
Figure 1DG Functions of one Complex Varia-le #e- site))))))))))))))))))))))))))))))))))))))))))))))))11
Figure 1>G constructi%e geometr! in Construct6*)))))))))))))))))))))))))))))))))))))))))))))))))))))))) 16
Figure 1/G c!-ermath es$top %ersion screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))) 16
Figure 1AG T#o %ie#s from Max#ell(orl an ?auling(orl of ScienceSpace))))))))) 13
Figure 1BG annotate screenshot of VRMath)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))13
Figure =2G Visualization ?ipeline in a Scene Graph A?IG *ata Flo# Moel of Cash
Flo#)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1D
Figure =1G %isualization pipeline))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1A
Figure ==G graph %isualization concept))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1B
Figure =6G ho# graph %isualization geometr! is generate from input ata)))))))))))))))=6
Figure =3G example of a sample line omain su-set)))))))))))))))))))))))))))))))))))))))))))))))))) =>
Figure =DG example of a sample circle omain su-set)))))))))))))))))))))))))))))))))))))))))))))))) =/
Figure =>G example of a sample Cartesian gri omain su-set))))))))))))))))))))))))))))))))) =A
%ii
Figure =/G example of a sample polar gri omain su-set)))))))))))))))))))))))))))))))))))))))) =A
Figure =AG image composition emonstrating the com-ination of real an %irtual
space)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))36
Figure =BG a user #or$ing #ith the es$top setup))))))))))))))))))))))))))))))))))))))))))))))))))))))))3D
Figure 62G experiment 1 result screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))D2
Figure 61G Experiment @r) = screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))D=
Figure 6=G Experiment @r) = screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D6
Figure 66G Experiment @r) = screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D6
Figure 63G Experiment @r) = #ith intersection points screenshot)))))))))))))))))))))))))))))))DD
Figure 6DG Experiment @r) = #ith ifferent representations of f:z;8 annotate
screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D>
Figure 6>G transfer function example screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))D/
Figure 6/G fre5uenc! response cur%e o%er the unit circle8 screenshots))))))))))))))))))))))) DA
Figure 6AG com-ine %ie# of transfer function an fre5uenc! response cur%e8
screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))DB
Figure 6BG interaction #ith the ?I? :same %ie#point;8 screenshot))))))))))))))))))))))))))))))DB
Figure 32G transfer function %isualization extene -! arro# plots8 screenshot))))))))>2
Figure 31G gnuplot screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >3
Figure 3=G .a-?lot screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>3
Figure 36G Grapher screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >D
Figure 33G Cur%us ?ro screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >D
Figure 3DG pro Fit screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >>
Figure 3>G Sigma?lot screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>>
Figure 3/G (inplot screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>/
Figure 3AG math3u= screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>/
Figure 3BG ,aleiaGraph screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>/
Figure D2G *ea.ine screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>A
Figure D1G *escartes screenshot))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>A
Figure D=G MAFA function plotter #e- page)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >B
Figure D6G nanoGraph #e- page))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >B
Figure D3G function plotter applet screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /2
Figure DDG 6* plotter applet screenshot))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/2
Figure D>G mathe<online)at function plotter applet screenshot))))))))))))))))))))))))))))))))))))/1
Figure D/G %i-os plotter flash applet screenshot))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/1
%iii
Figure DAG Crigin screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /=
Figure DBG Hti?lot screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /=
Figure >2G Grace output images)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /=
Figure >1G $st screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/6
Figure >=G ,Chart screenshot))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/6
Figure >6G ploticus output images)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/6
Figure >3G Mathematica plotting screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /3
Figure >DG Matla- plotting screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/3
Figure >>G Microsoft Excel screenshots)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /D
Figure >/G CpenCffice)org Calc screenshots))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /D
Figure >AG Gnumeric screenshot)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/>
ix
1 Introduction
1.1 Motivation
Visualization is a fiel of research that aims to pro%ie solutions to generate
images from a set of ata0num-ers in such a #a!8 that insight into the important
features can -e achie%e)
The iea for the topic of this master thesis came to the author #hen he
#as tr!ing to unerstan e5uations from the fiel of signal processing8 filters an
Fourier transformations) The -eha%iour of filters is connecte to features of a
complex function :its zeros an poles8 its %alues aroun the unit circle8 etc);8 so
the author generate a plot of such a function using ifferent methos pro%ie
-! the Math(or$s Matla-
I
soft#are) &nsatisfie #ith the interacti%it! pro%ie
to change the parameters in real time8 a limite set of %isualization techni5ues
an no integration into a stanar 6* graphics en%ironment that #oul allo#
stereo %ie#ing an com-ination #ith other scene graph o-9ects on the one han
an ha%ing a %irtual realit! :VR; 0 augmente realit! :AR8 see section =)=; -ac$J
groun ue to experience #ith the Stuierstu-e frame#or$ :see section 6)=; on
the other han the author starte this pro9ect to implement a complex function
graph %isualization frame#or$ for Stuierstu-e)
The conceptual iea is generall! spea$ing a function plotter soft#are) This
is a long existing almost tri%ial t!pe of soft#are8 so it is harl! a su-9ect of
scientific research) Still the a%aila-le applications are goo examples for the
esire #or$flo#G input a function an a range from the omain set8 then %ie#
the result an optionall! manipulate the function or the range in orer to gain
more information :fee-ac$ loopG input %ie#;) (hen this familiar #or$flo# is
follo#e8 the user interaction of a function graph %isualization soft#are -ecomes
%er! intuiti%e)
Because of their conceptual relationship an extensi%e sur%e! on function
plotters has -een one :see appenix A;) The more a%ance ones alrea! ena-le
to some extent complex function %isualization)
@ext to the function plotter applications some eicate complex function
%isualization solutions exist :see section =)1;) Manifol examples sho# ifferent
approaches that e%elope o%er a long time) A moti%ator for this pro9ect #as to
unif! as man! of their %isualization features as possi-le in one frame#or$)
A pro9ect relate to this #or$ as another mathematical %isualization in AR
is Construct6* :see reference K1L an section =)=)1;) Extensi%e user stuies
sho#e that Construct6* is a %er! useful solution to ma$e high school stuents
1
unerstan 6* constructi%e geometr!8 e%en if the! ha pro-lems to imagine the
same content #hen oing these tas$s #ith pen an paper on the es$) These
results moti%ate to implement the complex function graph %isualization
frame#or$ in a similar manner) &nerstaning complex functions is sometimes
5uite a challenge for unergrauate stuents #ho ha%e to eal #ith them for
example in electrical engineering courses) The! coul -e a target user group for
an eucational complex mathematics AR %isualization soft#are #ith user
scenarios similar to those in Construct6*)
1.2 Applications
1.2.1 5at# /ducation
A complex function graph %isualization #oul ha%e a similar application in maJ
thematics eucation as the function plotters presente in section /)=) Teachers
coul use the soft#are in the classroom to %isualize learning content #hereas
stuents coul use it at home #hen re%ising the last lectures content an as a
help to unerstan text -oo$ information an assignment tas$s) Those
assignments coul -e alrea! prepare for the soft#are8 so that insight can -e
#on in %er! little time of exploring the %irtual o-9ects an possi-l! manipulating
parameters) (ith to relate application Construct6* :see section =)=)1; further
scenarios ha%e -een stuie) These scenarios inclue pairs of stuents sol%ing a
tas$ together) This re5uires some social interaction an communication8 #hich in
turn massi%el! increases the ura-ilit! of the lessons learne)
1.2.2 /lectrical /ngineering 5at#
Complex mathematics has an important role in electrical engineering) Cne
u-i5uitous application are calculations concerning circuits #ith alternating
current) +ere one complex num-er can represent a sinusoi7s amplitue an
phase) The electric impeance for example can -e easil! compute -! a complex
num-er8 the complex electric impeance) In a passi%e electric circuit it is the rela<
tion of the complex effecti%e %alue :i)e) the amplitue %alue; of a sinusoial
%oltage an the complex effecti%e %alue of a sinusoial electric currentG Z
e
=

I
)
All calculations can no# -e one using complex num-ers #ithout ha%ing
to expan cosine an sine terms) This ma$es e5uations much shorter an easier
to rea an unerstan)
1.2." Filter Design 5at#
Another application arises from the area of igital signal processing :*S?;) The
-eha%iour of linear time in%ariant s!stems K=L8 a common t!pe of *S? s!stems8 in
=
ho# far it affects the amplitues an phases of the fre5uenc! components of a
signal :fre5uenc! omain -eha%iour;8 can -e calculate using complex
mathematics) This -eha%iour can -e escri-e -! the transfer function H( z) an
the fre5uenc! response H( f ) of the igital s!stem)
Section >)= #ill present an usage example ealing #ith these functions as
a result of this #or$) To explain the mathematical -ac$groun in a short #a!G
t#o transforms are neee8 the E<transform an the iscrete time Fourier transJ
form :*TFT;G :pa! attention to the imaginar! num-er i -eing enote in the
fiels of electrical engineering an signal processing as j ;
E<transformG X ( z)=

n=

x( n)z
n
for the signal x:n;
*TFTG X (e
j D
)=

n=

x(n)e
j Dn
#ith
D=oT =2n
f
f
s
for the fre5uenc! f an sample rate
f
s
The *TFT is E<transform e%aluate aroun the unit circle in the complex
plane8 #hich is gi%en -!
z=e
j D
)
The transfer function of a s!stem is the E<transform applie to the
impulse response h(n) an the fre5uenc! response is the *TFT applie to it G
transfer functionG H( z)=

n=

h( n)z
n
fre5uenc! responseG H( e
j D
)=

n=

h(n)e
j Dn
H( f )=

n=

h( n)e
j2 n
f
f
s
n
Visualizing these functions8 o-ser%ing features as zeros8 poles an %alues
aroun the unit circle #hile tuning the parameters of h(n) for a esire
fre5uenc! response of the s!stem #oul -e a helpful application of a complex
function graph %isualization soft#are)
6
2 Related ork
This chapter presents pre%ious #or$ on the topics of complex function %isualizaJ
tion8 augmente realit! an %isualization in scene graph A?Is8 #hich are the three
main fiels that #ere -rought together in this #or$)
Aitionall! a sur%e! on function plotting solutions that are not -oun to
complex mathematics can -e foun in appenix A)
2.1 Complex Function Visualization
Existing examples from three categories of complex function graph %isualizing
solutions :stan<alone applications8 #e- -ase applications8 usage of programs
not specialize on complex functions; are explaine in the follo#ing) Their $e!
features that influence this #or$ are highlighte) The list is orere -! the
num-er of references foun to each solution)
2.1.1 A%%lications
f6)7 K6L
f:z; is a commercial (ino#s pac$age for %isualizing complex mappings) It
sho#s images of Cartesian gris8 polar gris an single points) Function
parameters can -e animate an the animations can -e controlle #ith a slier8
in this #a! also a parameter coul -e controlle #ith that slier) The graph can
-e mappe to a plane8 a sphere8 a 6* an a 3* representation)
3
Figure 1: f(z) screenshots
g6)7 K3L
This is a tool for %isual complex anal!sis e%elope -! *a%i .) A$ers as an
honors thesis pro9ect at Bro#n &ni%ersit!) The soft#are #as use successfull! in
Bro#n7s unergrauate complex anal!sis course) It allo#s mapping of Cartesian
an polar gris8 that can -e ragge #ith the mouse as #ell as ra#ing custom
shapes in the omain set) An aitional #ino# ispla!s another %isualization
using omain coloring :see section =)1)6 for an explanation of this concept;)
Real8Time 9ooming 5at# /ngine 6rt)me7 KDL
This is another program for ma$ing omain coloring plots) This one oesn7t sho#
much no%elt! from the metho of %isualization8 -ut istinguishes from other
solutions -! -eing implemente #ith particular emphasis on computation spee)
D
Figure 2: g(z)
screenshots
Figure 3: rtzme screenshot
2.1.2 eb :ased Com%le& Function (isuali)ation
A Com%le& Function (iewer 6;ava7 K>L
Figure 4: A Complex Function Viewer screenshots
This simple 9a%a applet implements a purel! = imensional %isualization of a fix
set of 6 preefine example functions :sine8 cosine8 exponential;) The user can
mo%e the re s5uare gri aroun #ith the mouse pointer8 it represents a
neigh-ourhoo of a point in the omain) The t#iste :-lue; gri represents the
image of the s5uare gri) The source coe of this applet is a%aila-le8 so a user #ho
can o some programming in 9a%a coul implement ar-itrar! functions)
:ombelli K/L
Figure 5: om!elli screenshots
Bom-elli is another = imensional complex function grapher8 conceptuall! simiJ
lar to the one sho#n a-o%e8 -ut #ith more features) Ar-itrar! functions can -e
efine) It maps Cartesian :s5uare; an polar :roun; gris from one plane to
another) The gris are color coe8 so the user can see #hich corner of the gri is
mappe to #hich corner in the coomain) A little incon%enient is8 that no ragJ
ging of the gri using the mouse pointer is possi-le8 to see the gri at another
position8 a ne# gri has to -e ra#n) The user can also ra# custom shapes in
the omain an see its mapping in the coomain :right sie of fig) D;)
>
Com%le& Function 'ra%#er KAL
Figure ": Complex Function #r$pher $pplet screenshots
This is simple 9a%a applet that maps the coomain7s magnitue to height a-o%e
the complex plane an the coomain7s argument to color) It allo#s onl! %er!
limite interaction :t#o %ie#points8 that can7t -e change;)
2.1." (isuali)ations 'enerated b3 /&isting 0oftware
Table of Conformal 5a%%ings .sing Continuous Coloring KBL
Figure %: &$!le of Conform$l '$ppings((( we! p$ge
This is #e- site #ith a short article -! George A-o an ?aul Gofre! on using
coloring schemes to plot functions of a complex %aria-le an a large set of
example images for interesting functions) These images #ere generate #ith
Matla-) The authors mae the Matla- files a%aila-le for o#nloa) The article
aitionall! gi%es a historic -ac$groun8 that RenM *escartes introuce the
%ertical placing of the !<axis to plot functions of real num-ers)
/
'ra%#ics for Com%le& Anal3sis K12L
Figure ): #r$phics for Complex An$l*sis ex$mple $nim$tion
This short article on graphical emonstrations of concepts in complex anal!sis -!
*ouglas @) Arnol features example images an animations that illustrate
selecte functions an pro-lems generate #ith Mathematica) The Mathematica
files that #ere use are a%aila-le for o#nloa)
.nderstanding Com%le& Function 'ra%#s K11L
Tom Banchoff an *a%ie Cer%one pro%ie an article8 example animations an
VRM. moels that illustrate complex function graphs on their #e- site) The
animations are escri-e -! them as follo#sG NThis mo%ie sho#s pro9ections of
the complex K)))L function into three<space as the graph is rotate in four<space)
The initial position pro9ects into the x8 !8 u space8 so this is the graph of the real
part of the complex exponential) The final position is the pro9ection into the x8 !8
% space8 #hich is the graph of the imaginar! part of the complex exponential) The
intermeiate frames follo# the rotation in the u%<plane that ta$es the %<axis to
the u<axis) O
A
Figure +: ex$mple gr$ph $nim$tion !* $nchoff $n, Cer-one
Com%le& Function (isuali)ation K1=L
Figure 11: Complex Function Visu$liz$tion im$ges !* Fr$n. F$rris
This approach -! Fran$ A) Farris from Santa Clara &ni%ersit! has -een 5uote -!
man! others #ho create = color %isualizations) +e e%elope it in con9unction
#ith a re%ie# K16L of the -oo$ Visual Complex Anal!sis -! Tristan @eeham K13L)
+e associates colors to the complex num-ers in the omain set in the follo#ing
#a! :see left image in fig)11;G NThin$ of the complex plane as ha%ing colors similar
to those in a traitional color #heel) (e put re at the complex num-er 18 #ith
green an -lue at the other t#o cu-e roots of unit! as sho#n) +ues are
interpolate8 gi%ing seconar! an tertiar! colors) A continuous -lening #oul
-e possi-le8 -ut here #e sho# 9ust t#el%e hues) Then #e -len to#ar #hite at
the center8 to#ar -lac$ going out#ars) Thus8 each complex num-er has a color
associate to it)OK1=L) The resulting images are referre to as Nomain coloring
iagramsO) Besies their strong capa-ilities to exhi-it important properties of the
function8 the generate images inhere some astouning aesthetic component)
The center image in fig) 11 sho#s Na sixth egree pol!nomial #ith 3 simple zeroes
an one ou-le zero) Pou can spot the ou-le zero -ecause the colors c!cle
aroun t#ice #hen !ou ma$e a circuit of that point in the omain)OK1=L The right
image is a rational function #ith t#o zeroes :the #hite points; an t#o poles :the
-lac$ ones;Q the function isG f ( z)=
z
2
i
z
2
+i
B
Figure 1/: ex$mple gr$ph V0'1 file !* $nchoff $n, Cer-one (screenshot)
Resources for t#e Teac#ing of Com%le& (ariables K1DL
?aul Fish-ac$ collects one this #e- page resources for teaching an introuctor!8
unergrauate course in complex %aria-les) Therein he inclues files for interesJ
ting functions an pro-lems for the f:z; application :see section =)1)1;)
visuali)ing com%le& anal3tic functions using domain coloring K1>L
Figure 12: 2$ns 1un,m$r.3s $ppro$ch using $n im$ge in the ,om$in set
Figure 13: 2$ns 1un,m$r.3s $ppro$ch using $ more useful coloring scheme
This #or$ of +ans .unmar$ follo#s the omain coloring approach -! Fran$
Farris) In his #e- article he sho#s example images generate #ith the image
eitor GIM? an the MathMap ?lug<In K1/L) The author uses textures in the
omain set :left image in fig) 1= an 16; to ena-le reaing of information from the
mappe coomain set image) Fig) 16 sho#s a coloring scheme that %isualizes
argument -! color :from -lac$ o%er re to !ello#; an magnitues -! shae
:gra!<scale mas$ #ith -rightness from 2 to 1 e5ual to the fractional part of
log
=
RzR;) The center image in fig) 16 sho#s f:z;Sz
2
8 the right image sho#s
f:z;S:zT=;
=
:zU1U =i; :zTi; )
12
*ewton<s met#od= ;ulia and 5andelbrot sets= and com%le& coloring
K1AL
Figure 14: '$rtin 4ergler3s ,om$in coloring im$ges
This #or$ of Martin ?ergler follo#s Fran$ Farris an +ans .unmar$ #ith their
omain coloring metho) +e generate images #ith Matla-8 the Matla- files are
a%aila-le for o#nloa) The left image of fig) 13 sho#s the color in the omain set
#here he a9uste the rate at #hich colors collapse into -lac$ or #hite8 #hich he
explains as -eing important to see zeros an poles) The center image sho#s
:zT1;
=
z0:z<1;8 the right image sho#s the /
th
iteration of z
=
Tc :#hich creates the
Manel-rot set;)
Functions of one Com%le& (ariable 8 (isuali)ation and 'ra%#ical In>
ter%retation K1BL
This #e- site -! Aguinalo Ro-inson e Souza sho#s #ell categorize images
an animations of important complex functions) The highlight of this #or$ is the
catalogue<li$e character of its representation)
11
Figure 15: Functions of one Complex V$ri$!le we! site
2.2 Augmented Reality
Azuma K=2L efines Augmente Realit! :AR; as a %ariation of Virtual Realit!
:VR;) As oppose to a complete immersion into a s!nthetic en%ironment in VR8
#here the user cannot see the surrouning real #orl8 in AR users still can see
the real #orl8 -ut supplemente #ith %irtual o-9ects through image o%erla! or
composition) An appearance of coexistence of real an %irtual o-9ects in the same
space #oul -e the ieal result) Milgram et al) K=1L #rites a-out a continuum
-et#een realit! an %irtualit! #ith AR -eing right in the mile) The -asic
properties of AR are efine -! Azuma asG
+ Com-ines real an %irtual
+ Interacti%e in real time
+ Registere in 6*
As soon as multiple users access a share space populate -! %irtual o-9ects
superimpose onto realit! #e spea$ a-out a coll$!or$ti-e A0 en%ironment) NThis
approach is particularl! po#erful for eucational purposes #hen users are co<
locate an can use natural means of communication :speech8 gestures etc);8 -ut
can also -e mixe successfull! #ith immersi%e VR or remote colla-oration)O K==L)
B! running the application implemente in this pro9ect insie the
Stuierstu-e frame#or$8 the manifol features of colla-oration in share augJ
mente realit! #or$space therein can -e ta$en a%antage of)
2.2.1 0cience education wit# AR and (R
AR has -een chosen for this pro9ect as a technolog! to -uil upon8 -ecause it has
-een sho# in numerous pro9ects to -e helpful for instructi%e an eucational
applications as a more sophisticate %isualization techni5ue than pure ispla! of
%irtual o-9ects)
Construct"D K==L
This soft#are has -een implemente as an eucational augmente realit! :AR;
solution for multiple users :e)g) a teacher an a stuent; #or$ing #ith geometric
primiti%es :points8 lines8 -oies; in a share %irtual en%ironment) It allo#s to
intersect o-9ects8 generate tangential o-9ects8 experiment #ith -oolean operations
an other tas$s of constructi%e geometr!)
It is technicall! :-eing implemente in the Stuierstu-e frame#or$; as
#ell as conceptuall! a goo role example for an instructi%e mathematical AR
application an there-! strongl! relate this pro9ect) As confirme in the user
e%aluation results of Construct6*8 an important $e! point for an eucational
en%ironment is the possi-ilit! of social interaction among users in real space
#hile #or$ing #ith %irtual o-9ects)
The left image of fig) 1> sho#s an image composition that emonstrates
colla-orati%e construction in Construct6*) The right image sho#s a t!pical scene
of constructi%e geometr! #ith points that are -oun to the surface of other
o-9ects8 an intersection cur%e an pro9ection planes)
1=
Figure 1": constructi-e geometr* in Construct35
C3bermat# K=6L
This is an a%ance a%atar<-ase share %irtual en%ironment soft#are) It is
esigne to allo# exploring an teaching mathematics #ith teaching an learning
users -eing either co<present or ph!sicall! separate) A es$top setup %ariant of
it exists as #ell) It implemente a num-er of mathematical experiments in a
%irtual space resem-ling a museum en%ironment8 #here ifferent !namic o-J
9ects are exhi-ite8 for example surfaces that can -e interacti%el! manipulate -!
changing properties or entering e5uations)
0cience0%ace K=3L
As a collection of three immersi%e %irtual #orls on $inematics an !namics of
one<imensional motion :@e#ton(orl;8 electrostatic forces :Max#ell(orl;
an molecular structures :?auling(orl; this is another relate #or$ in the fiel
of science eucation in VR)
16
Figure 1%: c*!erm$th ,es.top -ersion screenshot
Figure 1): &wo -iews from '$xwell6orl, $n, 4$uling6orl, of 7cience7p$ce
(R5at# K=DL
This recent protot!pe of a %irtual realit! learning en%ironment #as esigne to
help chilren to learn 6* geometr! concepts an processes) It allo#s not onl!
manipulation of o-9ects8 -ut also programming of o-9ect creation in a .ogo<li$e
programming language)
2.3 Visualization in Scene Gap! A"#s
As this #or$ is -uilt upon the Stuierstu-e frame#or$ :see section 6)=; #hich
again is -uilt upon the In%entor scene graph A?I :see section 6)1;8 in this section
relate #or$ ealing #ith %isualization in scene graphs is presente) The actual
-enefit of this integration #ill -e explaine later :section 3)1)1; at the topic of the
%isualization pipeline)
5es#(i) for 5ercur3 ?%en Inventor
This extension for Mercur! :formerl! TGS; Cpen In%entor pro%ies man!
methos to %isualize generic ata sets in a scene graph) (ith the help of the
pro%ie scene graph noes8 the functionalit! of traitional plotting soft#are :as
13
Figure 1+: $nnot$te, screenshot of V0'$th
presente in the sur%e! in appenix A)6; can -e com-ine #ith the possi-ilities
of renering a !namic 6* scene in real time using a scene graph A?I)
MeshViz ta$es gi%en ra# ata :that can -e upate !namicall!; as input
an generate meshes8 %ector fiels8 streamlines8 man! ifferent chart t!pes an
more as %isual output)
Cas# Flow 8 "D Flow Data (isuali)ation Framework
Cash Flo# is technicall! another role moel for the complex function graph
%isualization in AR from the aspect8 that it implements a complete %isualization
pipeline :compare fig) =2 an section 3)1)1; in Coin6*) Cash Flo# K=>L is a
frame#or$ of scene graph noes that is specialize on flo# ata %isualization in
Coin6*) The important point is8 that the parameters of the #hole %isualization
pipeline are interface -! the scene graph A?I an there-! interacti%el! controllJ
a-le) *espite the similarities of its esign to the application escri-e in this theJ
sis8 the implementation #as sol%e ifferentl! in the etails8 mostl! -ecause of
the ifferent characteristics of the ata at the -eginning of the ata flo#)
1D
Figure 2/: Visu$liz$tion 4ipeline in $ 7cene #r$ph A48: 5$t$ Flow 'o,el of
C$sh Flow
" Tec#nological Foundations
3.1 #nvento and Coin3$
Cpen In%entor :CIV; is an 6* graphics A?I esigne -! SGI :originall! as NIRIS
In%entorO; as a li-rar! on a higher le%el than CpenG. that pro%ies scene graph
functionalit!) The $e! point of #or$ing #ith scene graphs is to operate #ith
o-9ect escriptions :their shape8 size8 coloring8 surface texture8 location in 6*
space; rather than #ith ra#ing primiti%es) CIV is implemente o-9ect orientate
in CTT an uses CpenG. for renering) It has -een release uner an open
source licence in =222 -! SGI8 -ut has not -een further e%elope -! this
compan! since then) Coin6* :NCoin Cpen In%entorO; is a clone li-rar! of this A?I8
#ritten from scratch an is still acti%el! maintaine) Coin6* has -een chosen as
the technical founation for this pro9ect)
The architecture supports an e%ent ri%en programming st!le8 i)e)
t!picall! the application reacts to e%ents from the frame#or$ -! means of
call-ac$ functions :this is calle sensors in In%entor;)
*espite its origins from a-out 1D !ears ago8 the esign of In%entor still can
compete #ith more recent e%elopments8 it uses man! sophisticate concepts
:e)g) so<calle laz! e%aluation; that allo# high performance real time -eha%iour)
&sing In%entor for the complex function graph %isualization frame#or$
implemente in this pro9ect means8 that ne# classes #here eri%e in CTT from
the -ase classe pro%ie -! the Coin6* A?I) Therefore it is possi-le to inclue
these %isualization o-9ects into a scene in an application that supports Coin6*)
In the next chapters :especiall! in the section 3)= on implementation;
some -asic $no#lege of the A?I is re5uire) See the excellent -oo$ NThe In%enJ
tor MentorOK=/L on this topic) (hen in the follo#ing a class name from the
In%entor A?I is mentione it is eas! to recognize -! its So))) prefix :that stans for
scene o-9ect;)
".1.1 *odes
E%er! scene graph o-9ect in In%entor is referre to as a noe) Its -ase class
So@oe pro%ies functionalit! to aggregate o-9ect ata in so<calle fiel,s) Fiels
are more po#erful than orinar! mem-er %aria-les8 -ecause the! allo# call-ac$
functions :sensors; to -e attache to them an to s!nchronize automaticall! #ith
other fiels :fiel, connections;)
1>
@oes support serialization to an from an ASCII -ase text format :V)i%
files;8 a feature that is use in this pro9ect to input a scene graph -! such a file)
@oes inclue mem-er functions that respon to ifferent $ins of scene
graph tra%ersal :calle $ctions;) The most o-%ious action for a scene graph is the
G.RenerAction8 #hich calls the appropriate CpenG. functions to ra# itself)
But other actions are supporte as #ell8 for example the (riteAction to #rite
itself to a scene graph file or the SearchAction to fin a noe #ith certain
properties in the scene graph)
The irecte ac!clic graph :*AG; structure of the scene graph is achie%e
%ia group no,es8 #hich collect a num-er of noes :chil,ren; an for#ar
tra%ersal function calls to these chilren recursi%el! :epth first8 then left to
right;)
3.2 Studiestu%e
Stuierstu-e K=AL is a frame#or$ of In%entor noes8 that exten the scene graph
A?I -! o-9ects neee for colla-orati%e AR applications) These extensions inclue
interaction -ase on 6* trac$ing e%ents8 a #or$space #ith multiple 6* #ino#s8
renering an output moes for common VR0AR output e%ices :stereoscopic
%ie#ing etc);8 istri-uting applications8 managing multiple users in a single setup
an an interface to a generic trac$ing la!er calle CpenTrac$er K=BL)
In the Stuierstu-e frame#or$ each user can ha%e his0her o#n 6*
pointing e%ice :a pen trac$e in > *CF; #ith a -utton an mo%e aroun
ragga-le o-9ects 9ust li$e the familiar rag<an<rop #ith the mouse in =*)
For this pro9ect the e%elope scene graph o-9ects for the %isualization
ha%e -een put into a Stuierstu-e 6* #ino# insie a Stuierstu-e application)
Configuration files for multiple users ha%e -een set up to #or$ together
interacting #ith the mathematical %isualization)
1/
! T#e Com%le& Function 'ra%# (isuali)ation
*ode +it for Inventor
*uring this master thesis pro9ect a soft#are frame#or$ has -een impleJ
mente8 that ma$es the %isualization of complex function graphs easil! possi-le
#ithin the graphics frame#or$ In%entor :see section 6)1; an the AR0VR frameJ
#or$ Stuierstu-e :section 6)=;)
Extening the In%entor scene graph li-rar! is one -! implementing ne#
noes :see section 6)1)1; or collections of noes8 so<calle noe $its) (hile section
3)1 explains the esign8 the ieas -ehin the structure of the e%elope noe $it8
section 3)= presents the implementation #ith all of its etails8 incluing all
information necessar! to use the frame#or$)
As this chapter $eeps its focus on the solution insie the scene graph8
some #ors on the general #or$flo# for using these noes ha%e to -e place at
this point) In its executa-le %ersion the e%elope application #ill -e starte
using the Stuierstu-e #or$space executa-le an pro%iing a scene escription
file as a parameter) This scene escription is a scripte graph of noes8 in our
case incluing some of the ne# e%elope noes explaine in the follo#ing)
&.1 '!e Fame(o)*s $esign
!.1.1 A (isuali)ation Task
The o%erall esign goal for the implemente frame#or$ #as to fulfill a
%isualization tas$8 #hich is commonl! -ro$en o#n into the steps of the so<calle
%isualization pipeline K62LG
In our case of graph %isualization the ra# ata is an infinite set of num-ers) The
ra# ata are all num-ers of the omain set an the coomain set :these num-ers
ma$e up the mathematical concept #hich is calle a graph8 explaine in section
3)1)=;)
In the frame#or$ e%elope in this pro9ect8 the first transition in the
pipeline8 namel! the ata filtering step8 is rather a ata generation step) This is
1A
Figure 21: -isu$liz$tion pipeline
ra# ata eri%e ata
a-stract
%isualization
o-9ect
image
filter map ispla!
-ecause the ra# ata is not a set of num-ers gi%en explicitl!8 -ut an infinite set
gi%en implicitl! -! a ata generation metho :e%aluating a mathematical funcJ
tion;) So the user filters8 or -etter sai8 selects a su-set of ata :the omain set to
-e e%aluate; from an infinite set :the complete set of complex num-ers ;)
The secon transition in the pipeline8 often calle the N%isual mappingO8
generates scene graph o-9ects from the eri%e ata) Finall! the scene graph is
renere -! the help of a scene graph li-rar!)
Most importantl!8 the escri-e implementation allo#s an interacti%e
control of all steps of the pipeline incluing the ata generation) The corresponJ
ing image is renere in real time) A classification of %isualization scenarios
sho#n in K61L points out8 that such a t!pe of %isualization :Ninteracti%e controlO;
is the most a%ance one compare to Npassi%e %isualizationO :onl! control of
ispla! parameters8 the last step in the pipeline; an Ninteracti%e %isualizationO
:control filtering8 mapping an ispla! for a static set of ata;)
!.1.2 Function 'ra%# 0%ecific (isuali)ation Task
The concept of %isualizing complex function graphs :filtering an mapping part
of the %isualization pipeline; has -een -ro$en o#n into the follo#ing elementsG
+ efine the graph I
f
=( z , f ( z))AB zA G
input a complex function f ( z)
input a finite set of omain %alues :set A ;
this leas to the automatic calculation of all coomain %alues :set B ;
+ efine a mapping from the the graph space : AB ; to a %isualization space
V #ith imensions that efine the position8 shape8 color an animation of a
geometric %isualization o-9ect
+ manipulate the function8 the omain set an the graph -%isualization
mapping in real time to explore properties of the function
1B
Figure 22: gr$ph -isu$liz$tion concept
graph
mapping
%isualization
omain set function
coomain set
( AB)-V
I
A f ( z)
B
!.1." Dimensionalit3 Issues
An interesting issue of %isualizing complex function graphs is8 that AB #ith
A an B has 3 imensionsG a num-er in can -e seen as a num-er in

2
, the so<calle complex planeQ so can -e seen as
4
) This is regaring
to %isualization much more challenging than a graph of a real %alue function in
AB #ith Aan B#hich can easil! -e %isualize as a cur%e on a plane
:
2
;)
In orer to gain insight into graph features in all these 3 imensions the
frame#or$ that has -een implemente offers a-out 62 imensions in the
%isualization space V G
+ 6 imensions of location in space
multiplie -! 3 ue to implementation of an extension of parallel
coorinatesG one NpointO gI is represente as a line connecting a set of
maximal 3 points in space
+ > imensions of affine transformations of o-9ects
6 *CF rotation
6 *CF scaling
+ 3 imensions of shaing
6 imensional color space8 efine -! +SV or RGB color moel) If color is
efine in -oth moels8 the colors are -lene)
1 imension through transparenc!
+ / imensions of time<%ar!ing %isualization
fre5uenc! of an oscillation -et#een t#o affine transformations
amplitues of this oscillation in > imensions
6 *CF rotation animation
6 *CF scaling animation
This o%ersuppl! of %isualization imensions might seem to counteract the
goal of gaining insight into the graph) But the important point8 #hen using all
these possi-ilities to reach the goal of insight8 is to follo# three rulesG
1; use as man! %isualization imensions as neee)
=; use as fe# %isualization imensions as possi-le)
6; fin the -est %isualization imension for each graph imension :there is no
optimal mapping that7s -est for all functions an all setups;
E%er! %isualization imension has its o#n strengths8 istinguisha-le in
measures :of ho# goo the! can -e o%erseen -! the user; asG
+ range of %alues
+ c!clicit! : [0, r]+kr , k;8 one sie infinit! : [ 0,] ; or t#o sie
infinit! : [, ] ;
+ resolution
+ #ell com-ination #ith other imensions #ithout interepenencies
=2
!.1.! Domain 0et Issues
Section 3)1)1 explaine8 that the ata filtering step in the %isualization pipeline is
rather an selection step8 it eals #ith selecting the omain set to -e e%aluate8 a
finite su-set of )
Visualizing the complex function for a single omain %alue is tri%ial) The
user gi%es the omain %alue8 the function an the I -V mapping :see section
3)=)D; as input8 the frame#or$ calculates the coomain %alue8 the graph space
%ector gI is mappe to the %isualization space %ector vV an an o-9ect is
generate #ith the location8 color8 transformation an animate transformation
specifie in v )
But more li$el! the user #ill -e intereste in the graph of a set of omain
%alues) Existing graph %isualization solutions sho# that sets of omain %alues are
usuall! not ra#n as a set of points -ut rather as a cur%e or a mesh connecting
these points) This has a num-er of reasonsG
+ the connecting geometr! sho#s an approximation of the %alues -et#een the
e%aluate samples
+ it clarifies a9acenc! relationsG in a sample cur%e each point :except the en
points; has = neigh-oursQ a connecting line acts as if each point ha
NpointersO to its neigh-ours
+ reaa-ilit!G lines are easier to see than single points
+ impression of cur%atureG the human e!e is sensiti%e to cur%ature :=
n
eri%ation;8 #hich might carr! interesting information a-out the function
Connecting a9acent points of a su-set has one isa%antage ho#e%erG if there is
a iscontinuit! -et#een t#o a9acent samples8 a connection #ill result in a
misleaing representation of this section)
In the escri-e frame#or$ the user can efine one< an t#o<imensional
arra!s of omain %alues :referre to as N1* su-setO an N=* su-setO in the
follo#ing; ) The generate geometric o-9ect #ill -e ra#n as a cur%e or mesh
instea of single points) The user efines the omain set asG
+ Nomain setO S set of Nomain su-setsO
+ Nomain su-setO S Nsingle pointO or N1* su-setO or N=* su-setO
+ the Nsingle pointO su-set is calle W2* su-setW for class name consistenc!
+ N1* su-setO S sample NlineO or NcircleO
+ N=* su-setO S sample Nrectangular griO or Npolar griO
B! implementing regularl! sample lines8 circles8 rectangular gris an
polar gris in the presente frame#or$ the user onl! has to gi%e the range an
the resolution as input to o-tain an! num-er of omain %alues)
=1
&.2 #mplementation
Fig) =6 sho#s the o-9ects an ata in%ol%e in the ata flo# in the
implementation of the complex function graph %isualization frame#or$ for the
In%entor scene graph A?I) This figure shall in aition ser%e as a reference to the
reaer to locate each of the o-9ects an implemente scene graph noes8 that are
escri-e in all of section 3)= in etail8 in the frame#or$7s architecture)
!.2.1 ?verview of Im%lemented Classes
All entities sho#n in fig) == are encapsulate in a noe $it name 0oCom%le&>
Function'ra%#(isuali)ation) To organize the scene graph structure more
closel! to the conceptual entities8 su-structures of this %isualization frame#or$
ha%e -e implemente as further noe $itsG
+ a noe $it name 0oCom%le&Function/valuator #hich escri-es the
graph I :SoComplexFunctionGraphVisualization contains a part name
function9-$lu$tor of this t!peQ it represents the left -ox in fig) ==;
+ a noe $it name 0o5a%%ing'ra%#4ro%ert3To(i)Feature #hich
escri-es the graph -%isualization mapping :SoComplexFunctionGraphJ
Visualization contains a list of parts name m$pping1ist of this t!peQ this list
represents the right -ox in fig) ==;) *etail on this can -e foun in 3)=)D)
To conclue this as short as possi-leG a Ngraph %isualizationO consists of a
Nfunction e%aluatorO an a Nmapping listO)
@o# all elements of fig) == :concept le%el; can -e -rought into the context
of fig) =6 :implementation le%el;) An instance of SoComplexFunctionE%aluator
contains the omain set8 the function8 an in epenenc! of them8 the coomain
set) The omain set is store in a num-er of 0oCom%le&Domain0ub0et
o-9ects8 the function in a fiel of the SoComplexFunctionE%aluator o-9ect an the
coomain set in an internal arra! of complex num-ers of the same o-9ect)
(e coul follo# these o-9ects also from the top to the -ottom of this ata
flo# graphG first the user has to efine the omain set in a num-er of
SoComplex*omainSu-Set o-9ects) In a next stage the omain set is use as the
input for a SoComplexFunctionE%aluator o-9ect that com-ines the omain set
#ith a function to a coomain set) In a thir stage the com-ination of omain set
an coomain set :calle NgraphO; is ta$en from the function e%aluator into a %iJ
sualization o-9ect that com-ines the graph #ith a escription of the %isual
mapping to a graphical o-9ect)
==
3)=)1)1 SoComplexFunctionGraphVisualization Internals
Fig) =6 sho#s8 that there is e%en more -ehin this concept) It sho#s in the
ata flo# insie SoComplexFunctionGraphVisualization8 that there is an internal
entit! calle (i)(alues0ub0et -et#een :a; the t#o aforementione parts
function9-$lu$tor an m$pping1ist in the upper part an :-; the
=6
Figure 23: how gr$ph -isu$liz$tion geometr* is gener$te, from input ,$t$
SoComplexFunctionGraphVisualization
SoVizGeometrySubSet[N
1
]
VizObjectDefinitionState
VizValuesSubSet[N
1
]
confiuration parts"fiel#s
mappin$ist
So%appinGraph&roperty'oVizFeature[N
(
]
SoComplexFunctionEvaluator*
with N
1
subSets
SoComplexFunction)*aluator
function strin
parameters
parse#Function
ComplexCo#omainSubSet[N
+
]
,ith co#omainSubSet *alues
SoComplexDomainSubSets*[N
2
]
SoComplexDomainSubSet
SoComplexDomainSubSet fiel#s
#omainSubSet *alues
leen#- input
output
#omain set
co#omain set
raph
SoVizGeometr!Su-Set on the -ottom en of the flo# graph) More precisel! this
entit! is an arra! of o-9ects of the class VizValuesSu-Set8 that7s #h! it7s #ritten
VizValuesSu-SetK@
1
L) @
1
is the num-er of su-sets of the omain set A of the
function9-$lu$tor) VizValuesSu-SetK@
1
L represents the N%isualization %alues setO8
a set of %ectors in %isualization space8 one %ector for each mem-er of the omain
set A )
But still VizValuesSu-SetK@
1
L is nothing more than a set of num-ers)
These num-ers are input of another internal entit! of t!pe 0o(i)'eometr3>
0ub0etK@
1
L8 again an arra! of size @
1
) This class8 the N%isualization geometr! setO8
is finall! the scene graph noe #hich respons to the rener action -! inserting
noes eri%e from SoShape an optionall! other noes that affect the tra%ersal
state :as for example SoMaterial or SoTransformation noes; into the scene)
An !et another concept #as introuce in the implementationG -ecause
the VizValuesSu-SetK@
1
L as escri-e later in this chapter oesn7t efine the
SoVizGeometr!Su-SetK@
1
L unam-iguousl!8 another class name (i)?b@ect>
Definition0tate has -een implemente :SoComplexFunctionGraphVisualizaJ
tion internall! stores one instance of this class; an aitional parts an fiels
ha%e -een inclue into the SoComplexFunctionGraphVisualization noe $it
:the! are calle Nconfiguration parts0fielsO in the follo#ing;) Section 3)=)>
explains this in more etail)
This conclues an o%er%ie# of the internal structure of the SoComplexJ
FunctionGraphVisualization noe $it an shoul ha%e explaine ho# graph
%isualization geometr! is generate using a gi%en function9-$lu$tor an
m$pping1ist) (hat is missing is some more etail on SoComplexFunctionJ
E%aluator #hich represents the graph I )
3)=)1)= SoComplexFunctionE%aluator Internals
The function e%aluator noe $it hosts three entities accessi-le -! the userG
:1; the omain set8 :=; the function an :6; function parameters) Internall! it
aitionall! contains an o-9ect name p$rse,Function an the coomain set) The
p$rse,Function contains a metho #hich can e%aluate one mem-er z of the
omain set A an returns the associate mem-er f ( z) of the coomain set B )
For etails on the manifol possi-ilities of efining the omain set see
section 3)1)3)
The function itself is gi%en as a SoSFString fiel of SoComplexFunctionJ
E%aluator name function) An! time function is upate8 p$rse,Function runs its
parsing metho) Section 3)=)6 explains the function input in etail)
The function parameters are pairs of SoSFFloat fiels of the function
e%aluator8 #hich efine the complex num-er constants p
1
, p
2
, p
3
, p
4
) These
parameters can -e use in the function) The e%aluation metho of parseFuncJ
tion #ill use their current %alues #ithout ha%ing to run its parsing metho #hen
these parameters change) See section 3)=)3 on this)
SoComplexFunctionE%aluator etects changes in an! of its inputs an
automaticall! in%o$es the calculation of all %alues of the coomain set using :1;
=3
the %alues of the omain set A store in SoComplex*omainSu-SetsVK@
=
L8 :=; the
function parameters an :6; the e%aluation metho of p$rse,Function an stores
these %alues in ComplexCoomainSu-SetK@
=
L #hich represents the coomain set
B ) ?ro%iing all %alues from A an B SoComplexFunctionE%aluator full! escriJ
-es the graph that #e #ant to %isualize)
!.2.2 Domain 0et In%ut
In the SoComplexFunctionGraphVisualization noe $it the omain set is
$ept insie its function9-$lu$tor part) The functionE%aluator is a noe $it of t!pe
SoComplexFunctionE%aluator an has a @oe,it.ist?art name ,om$in7u!7et:
1ist) @oe,it.ist?arts are In%entor noes similar to SoGroup noes8 -ut the!
restrict the t!pe of the chilren that can -e ae to them) The list part
,om$in7u!7et1ist is restricte to the t!pe SoComplex*omainSu-Set an its
su-classes) SoComplex*omainSu-Set itself is an a-stract class8 D non<a-stract
su-classes ha%e -een implemente8 the! are explaine in etail later in this
sectionG
:1; SoComplex*omainSu-Set42* :su-section 3)=)=)1;
:=; SoComplex*omainSu-Set41*4Regular.ine :su-section 3)=)=)=;
:6; SoComplex*omainSu-Set41*4RegularCircle :su-section 3)=)=)6;
:3; SoComplex*omainSu-Set4=*4RegularRectangular :su-section 3)=)=)3;
:D; SoComplex*omainSu-Set4=*4Regular?olar :su-section 3)=)=)D;
That means for an actual instance of the graph %isualization :see fig) =6;G
+ ,om$in7u!7et1ist hosts an! num-er of omain su-sets
+ function9-$lu$tor internall! $eeps a corresponing list of coomain su-sets
+ the SoComplexFunctionGraphVisualization instance8 #hich hosts the func:
tion9-$lu$tor; $eeps a corresponing list of %isualization %alues su-sets an
a corresponing list of %isualization geometr! su-sets)
To conclue thisG in the ata flo# of the graph %isualization8 su-sets are
efine -! the user in the omain set) Such a su-set efinition automaticall!
in%o$es the instantiation of 3 su-setsG the omain su-set8 the coomain su-set8
the %isualization %alues su-set an the %isualization geometr! su-set) Each of the
3 corresponing su-sets ha%e the same num-er of elements)
The perhaps most sophisticate etail a-out this implementation is8 that
share instancing is supporte throughout all the frame#or$) In fig) =6 t#o
o-9ects :NSoComplexFunctionE%aluatorVO an NSoComplex*omainSu-J
SetsVK@
=
LO8 i)e) the function9-$lu$tor an the ,om$in7u!7et1ist; are colore
light -lue an ha%e otte lines connecting them to another -ox) This illustration
an the V in their name :as an allusion to CTT7s pointer notation; shoul sho#8
that the hosting o-9ects onl! $eep pointers to the function e%aluator or to the
omain su-sets) So there is no one<to<one relationship -et#een the 3
aforementione corresponing su-sets) E)g) t#o SoComplexFunctionGraphViJ
sualization instances might use the same SoComplexFunctionE%aluator instance8
#hich means that for each omain su-set instance there is one corresponing
coomain su-set instance in the function e%aluator -ut two ifferent
=D
%isualization %alues su-set instances an two ifferent %isualization geometr!
su-set instances :one in each graph %isualization o-9ect;)
As another example three SoComplexFunctionE%aluator instances might
use the same SoComplex*omainSu-Set) In this case there #oul -e one omain
su-set instance an three coomain su-set instances) The num-er of %isualizaJ
tion %alues su-set instances an %isualization geometr! su-set instances again
epens on ho# man! graph %isualization o-9ects use each function e%aluator
instance)
Because of this inirect connection of su-sets t#o ifferent %aria-les for
the num-er of su-sets ha%e -een use in fig) =6G @
1
an @
=
) @
1
is the num-er of
su-sets for the actuall! use function9-$lu$tor in SoComplexFunctionGraphJ
Visualization #hereas @
=
is the %aria-le for the num-er of su-sets in an! instance
of SoComplexFunctionE%aluator)
The omain su-sets are efine as In%entor noes as escri-e in the
su-sections -elo#G
3)=)=)1 SoComplex*omainSu-Set42*
This noe is the most simple of all su-sets8 it al#a!s has exactl! one
mem-er) The %alue of this single mem-er is efine -! SoComplex*omainSu-J
Set42*7s float fiels re$l an im$gin$r*)
In the In%entor file format of this noe loo$s as follo#s8 the %alues sho#n
are the efault %aluesG
SoComplexDomainSubSet./D 0
real /1/
imainary /1/
2
3)=)=)= SoComplex*omainSu-Set41*4Regular.ine
The noe SoComplex*omainSu-Set41*4Regular.ine efines a regularl!
sample line in the complex plane using the float fiels re$l7t$rt8 im$g7t$rt8
#hich efine the %alue of the line7s start point8 the float fiels re$l9n,8 im$g9n,8
#hich efine the %alue of the line7s en point an the int fiel nr7egments8 #hich
efines the resolution of the samples) Fig) =3 sho#s an example of the omain
%alues that #oul -e calculate internall! from the gi%en fiel %alues1 It results
in a line from /<1i to BT6i #ith =1 samples) nr7egments efines the num-er of
=>
Figure 24: ex$mple of $ s$mple, line
,om$in su!set
SoComplexDomainSubSet.1D.3eular$ine 0
realStart 41/
imaStart 511/
real)n# 61/
ima)n# (1/
nrSements +/
2
6 7 8 9 1 0
- 1
- 0 . 5
0
0 . 5
1
1 . 5
2
2 . 5
3
samples minus 1) This input metho has -een chosen -ecause the user rather
sees an thin$s in a num-er of segments8 than in a num-er of %ertices)
The efault %alues of this noe areG
SoComplexDomainSubSet.1D.3eular$ine 0
realStart 511/
imaStart /1/
real)n# 11/
ima)n# /1/
nrSements 1/
2
3)=)=)6 SoComplex*omainSu-Set41*4RegularCircle
The noe SoComplex*omainSu-Set41*4RegularCircle efines a regularl!
sample circle in the complex plane using the float fiels center4oint0e$l8
center4oint8m$g8 #hich efine the %alue of the circle7s center8 the float fiel
r$,ius8 #hich efines the circle7s raius an the int fiel nr7egments8 #hich
efines the resolution as in )))4Regular.ine :see su-section a-o%e;8 -ut here the
num-er of segments is e5ual to the num-er of %ertices -ecause the cur%e7s start
an en points coincie) Fig) =D sho#s an example #ith the fiel %alues state
next to it7 #hich results in a circle aroun <DT=i using raius 1 #ith =2 samples)
*efault %alues areG
SoComplexDomainSubSet.1D.3eularCircle 0
center&oint3eal /1/
center&oint8ma /1/
ra#ius 11/
nrSements 1/
2
3)=)=)3 SoComplex*omainSu-Set4=*4RegularRectangular
The noe SoComplex*omainSu-Set4=*4RegularRectangular efines a gri of
%alues in the complex plane sample regularl! in Cartesian coorinates using the
float fiels re$l7t$rt8 re$l9n,8 im$g7t$rt an im$g9n, #hich efine a range in
the real axis an a range in the imaginar! axis an the int fiels re$l<rCells8
im$g<rCells #hich specif! the resolution8 again as the num-er of segments
instea of the num-er of %ertices) Fig) => sho#s an example that results in a gri
-et#een <=<=i an =T=i #ith BV1/ samples :#hich sho#s AV1> cells;)
=/
Figure 25: ex$mple of $ s$mple, circle
,om$in su!set
SoComplexDomainSubSet.1D.3eularCircle 0
center&oint3eal 591/
center&oint8ma +1/
ra#ius 11/
nrSements +/
2
- 6 - 5 . 5 - 5 - 4 . 5 - 4
1
1 . 5
2
2 . 5
3
The efault %alues of this noe areG
SoComplexDomainSubSet.+D.3eular3ectanular 0
realStart 511/
real)n# 11/
realNrCells 1/
imaStart 511/
ima)n# 11/
imaNrCells 1/
2
3)=)=)D SoComplex*omainSu-Set4=*4Regular?olar
The noe SoComplex*omainSu-Set4=*4Regular?olar efines a range of %alues
in the complex plane8 sample regularl! in polar coorinates using the float fiels
$ngle7t$rt8 $ngle9n,8 m$gnitu,e7t$rt8 m$gnitu,e9n,8 #hich efine a set of
complex num-ers locate li$e a isc section aroun a center gi%en -! the float
fiels center4oint0e$l8 center4oint8m$g an su-i%ie into a num-er of
segments gi%en -! the int fiels $ngle<r7egments8 m$gnitu,e<r7egments)
Fig) =/ sho#s an example that results in a polar gri aroun <=T/i -et#een raius
1 an 6 an -et#een angle B2X an =/2X #ith 1/VB samples :#hich sho#s 1>VA
cells;)
This noes efault %aluesG
SoComplexDomainSubSet.+D.3eular&olar 0
anleStart /1/
anle)n# :1+;(1;9(/41;
anleNrSements 1/
manitu#eStart /1//1
manitu#e)n# 91/
manitu#eNrSements 1/
=A
Figure 2%: ex$mple of $ s$mple, pol$r
gri, ,om$in su!set
SoComplexDomainSubSet.+D.3eular&olar 0
anleStart 1194/; < /19=&8
anle)n# >741+> < 119=&8
anleNrSements 1:
manitu#eStart 11/
manitu#e)n# (1/
manitu#eNrSements ;
center&oint3eal 5+1/
center&oint8ma 41/
2
- 5 - 4 - 3 - 2 - 1 0 1
4
5
6
7
8
9
1 0
Figure 2": ex$mple of $ s$mple,
C$rtesi$n gri, ,om$in su!set
- 2 - 1 0 1 2
- 2
- 1 . 5
- 1
- 0 . 5
0
0 . 5
1
1 . 5
2
SoComplexDomainSubSet.+D.3eular3ectanular
0
realStart 5+1/
real)n# +1/
realNrCells ;
imaStart 5+1/
ima)n# +1/
imaNrCells 1:
2
center&oint3eal /1/
center&oint8ma /1/
2
3)=)=)> omainSu-Set.ist input
To input a omain set in In%entor file format using these omain su-sets explaiJ
ne a-o%e #oul loo$ li$e this exampleG
SoComplexFunction)*aluator 0
#omainSubSet$ist No#e?it$ist&art 0
containerNo#e Separator 0

SoComplexDomainSubSet./D 0
< fiel#s 111
2
SoComplexDomainSubSet.1D.3eular$ine 0
2 < no fiel#s i*en 5@ usin #efault *alues
SoComplexDomainSubSet.1D.3eular$ine 0
imaStart 11/
ima)n# 11/
2 < fiel#s partially i*en 5@
< usin #efault *alues for the other fiel#s
SoComplexDomainSubSet.+D.3eular3ectanular 0
< fiel#s 111
2

2 < en# of containerNo#e
2 < en# of #omainSubSet$ist
< function etc1 111
2 < en# of SoComplexFunction)*aluator
!.2." Function In%ut
Section 3)=)1)= alrea! mentione8 that the function is a SoSFString fiel of SoJ
ComplexFunctionE%aluator) This fiel is o-ser%e -! a fiel sensor #hich in%o$es
a parsing metho of a parser class instance :name p$rse,Function; hoste -!
the function9-$lu$tor o-9ect)
A parser has -een implemente8 that #raps all functions an operators
offere -! the CTT Stanar Template .i-rar! :ST.; #hich ta$e complex
num-ers as operans) The grammar for the string to -e parse is explaine -!
this extene Bac$us<@aur form :EB@F;G
expr A stmB
stm A const C #omVal C param C
oneOpStm DED stm DFD C t,oOpStm DED stm D7D stm DFD B
E= the first three symbols are terminatin =F
E= the last t,o symbols are operations =F
const A DED realNr D7D realNr DFD B
realNr A G strinHithoutCommaIn#Jraces G B E= terminatin =F
E= must be parsable ,ith cKK stan#ar# library as real
number =F
#omVal A DzD B E= terminatin =F
param A Dp1D C Dp+D C Dp(D C Dp>D B E= terminatin =F
oneOpStm A DabsD C DarD C DconjD C DcosD C DcoshD C DexpD C
DimaD C DloD C Dlo1/D C DnormD C DrealD C DsinD C
DsinhD C DsLrtD C DtanD C DtanhD C DneD B
=B
t,oOpStm A DpolarD C Dpo,D C DmulD C D#i*D C Da##D C DsubD B
expr stans for expression8 stm for st$tement8 const for const$nt8
realNr for re$l num!er8 #omVal for ,om$in -$lue8 param for p$r$meter8
oneOpStm for one=oper$tor st$tement8 t,oOpStm for two=oper$tor st$te:
ment(
As an example the function
f ( z)=z
2
+c
#oul -e #ritten as the string
a##Epo,Ez7E+7/FF7p1F8 #hich efines the right han sie of the e5uation8 the
left han sie is al#a!s f ( z) ) ?arsing this example #oul result in the follo#ing
tree of s!m-olsG
expr addpow!"2"#$$"p1$
stm addpow!"2"#$$"p1$
t,oOpStm add
DED E
stm pow!"2"#$$
t,oOpStm pow
DED E
stm !
#omVal z
D7D 7
stm 2"#$
constE+7/F 2"#$
DFD F
D7D 7
stm p1
param p1
DFD F
This representation sho#s the EB@F s!m-ols on the left sie an their
content on the right sie8 the inentation ispla!s the hierarch!)
The implemente grammar is $ept %er! simple8 e)g) -inar! operators li$e
Nop1Top=O ha%e -een #rappe as a function #ith = operans li$e Na:op18 op1;O)
@e%ertheless all ST. complex num-er function are accessi-le using this
grammar)
A preprocessor has -een inclue into the parser8 it remo%es all #hiteJ
spaces in the string) This ena-les the user to enter the function string in a more
reaa-le st!le)
In the In%entor file format the function input loo$s li$e this8 the sho#n
%alue f ( z)=z is the efault %alueG
SoComplexFunction)*aluator 0
#omainSubSet$ist 0 111 2
function DzD
2
!.2.! 4arameter In%ut
If the user #ants to explore a function li$e
f ( z)=z
2
+c
#ith a parameter c 8
#ith the p$rse,Function o-9ect alone8 this %aria-le num-er #oul ha%e to -e
inserte as characters into the function string an p$rse,Function #oul ha%e to
parse all the function again an again)
62
In orer to impro%e performance in this case8 the follo#ing A SoSFFloat
fiels ha%e -een ae to the SoComplexFunctionE%aluator noe class :the
sho#n %alues are the efault %alues;G
SoComplexFunction)*aluator 0
#omainSubSet$ist 0 111 2
function 111

parameter13eal /1/
parameter18ma /1/
parameter+3eal /1/
parameter+8ma /1/
parameter(3eal /1/
parameter(8ma /1/
parameter>3eal /1/
parameter>8ma /1/

2
These fiels efine p
1
, p
2
, p
3
, p
4
) In the grammar explaine in secJ
tion 3)=)6 #e again fin the s!m-ols p18 p+8 p(8 p>) The p$rse,Function o-9ect
stores these 3 complex num-er parameters8 the! are upate -! the help of SoJ
ComplexFunctionE%aluator7s fiel sensors) (hen changes occurre to p$rse,:
Function; all the coomain set has to -e ree%aluate) SoComplexFunctionE%aluJ
ator ta$es care8 that the graph ata is up<to<ate)
!.2.- 5a%%ing In%ut
The %isual mapping8 the mapping of %ectors from graph space gI to %ectors of
the %isualization %alues set vV 8 can -e thought of a mapping matrix in IV
:see ta-le 1 sho#n -elo# to get an o%er%ie#;) Each element of this matrix is set to
1 or 2 if the user #ants to map a specific component of a source %ector g :column
of the matrix; to a specific component of a target %ector v :ro# of the matrix; or
not) Vector components in this context are real num-ers8 so the complex
num-ers in g are represente -! t#o real components each an coorinates or
+SV color %alues in v are represente -! triplets of real components) Multiple
components of a source %ector g can -e mappe to the same component of the
target %ector v 8 #hich results in the sum of the selecte g <components -eing
mappe to the selecte v <component) If nothing is mappe to a v <component it
#ill -e zero)
Ta-le 1 can -e use as an useful help to plan the setup of a mapping
matrix for a specific graph %isualization tas$) It sho#s the graph space %ector on
top an the %isualization space %ector on the left) The cells of the ta-le coul -e
seen as chec$ -oxes8 #here the user can turn on an off a mapping from one
component on the top to another component on the left) B! efault all fiels of
this matrix are zero8 i)e) turne off)
Before explaining more etails on the mapping itself8 all components of the
%ectors g an v ha%e to -e explaineG
61
3)=)D)1 Graph Space Components :Source Vector;
The graph space is efine -! the Cartesian prouct of the omain set an the
coomain set :see section 3)1)=;) So %ectors gI #oul ha%e 3 components in
G the omain %alue7s real part8 its imaginar! part8 the coomain %alue7s real
part an its imaginar! part) The ientifiers to -e use areG
6=
&$!le 1: the m$pping m$trix from gr$ph sp$ce to -isu$liz$tion sp$ce
D
O
%
I
8
N
.
3
)
I
$







D
O
%
I
8
N
.
8
%
I
G
8
N
I
3
M


D
O
%
I
8
N
.
%
I
G
N
8
'
N
D
)


D
O
%
I
8
N
.
I
3
G
N
%
)
N
'



C
O
D
O
%
I
8
N
.
3
)
I
$





C
O
D
O
%
I
8
N
.
8
%
I
G
8
N
I
3
M
C
O
D
O
%
I
8
N
.
%
I
G
N
8
'
N
D
)
C
O
D
O
%
I
8
N
.
I
3
G
N
%
)
N
'

C
O
N
S
'
I
N
'










O1
M1
P1
O+
M+
P+
O(
M(
P(
O>
M>
P>
CO$O3.Q
CO$O3.S
CO$O3.V
CO$O3.3
CO$O3.G
CO$O3.J
CO$O3.I$&QI
O1.3O'I'8ON.O
O1.3O'I'8ON.M
O1.3O'I'8ON.P
O1.SCI$).O
O1.SCI$).M
O1.SCI$).P
IN8%.F3)RN)NCM
O1.3O'I'8ON.O.IN8%
O1.3O'I'8ON.M.IN8%
O1.3O'I'8ON.P.IN8%
O1.SCI$).O.IN8%
O1.SCI$).M.IN8%
O1.SCI$).P.IN8%
+ *CMAI@4REA.
+ *CMAI@4IMAGI@ARP
+ CC*CMAI@4REA.
+ CC*CMAI@4IMAGI@ARP
First experiments uring protot!pe implementation sho#e8 that %er!
often mappings from the polar coorinates of graph %alues are of interest8 so 3
reunant components in ha%e -een inclue into the mapping matrixG the
omain %alue7s magnitue8 its argument8 the coomain %alue7s magnitue an its
argument) The! relate to the real part r an the imaginar! part i as
magnitude=
.
r
2
+i
2
an argument =arctan (
i
r
) ) The component ientifiers areG
+ *CMAI@4MAG@IT&*E
+ *CMAI@4ARG&ME@T
+ CC*CMAI@4MAG@IT&*E
+ CC*CMAI@4ARG&ME@T
Finall! e%en one more component has -een foun to -e missing in the
graph ata setG constant %alues) The! can -e use to offset the graph in an! of the
%isualization imensions) For some components of v 8 as for example the cooriJ
nates in space8 the same result coul -e easil! achie%e -! an transformation
noe -efore the SoComplexFunctionGraphVisualization $it8 -ut other compoJ
nents as color or animation #oul -e har to control from outsie the %isualizaJ
tion $it) Its ientifier has -een nameG
+ CC@STA@T4EERC
3)=)D)= Visualization Space Components :Target Vector;
Section 3)1)6 alrea! mentione8 that this frame#or$ offers manifol
%isualization targets8 almost e%er!thing a scene graph li-rar! as In%entor has to
offerG location8 affine transformations8 shaing an animation) A com-ination of
6= real %alue components ma$es up the %isualization %alues %ector :in the
N%isualization spaceO; an is explaine in the follo#ing)
The first group of target components are the coorinates) The! efine the
location of single points8 -ut as #ell the shape of the complete graph %isualization
o-9ect in t#o #a!sG
1) e%aluating one< an t#o<imensional arra!s of omain set points8 as explaine
in section 3)1)68 results in cur%e0mesh o-9ects #ith their shape gi%en -! the
coorinates
=) the %isualization %alues set %ector pro%ies not one8 -ut four separate space
coorinate components) This ena-les techni5ues as parallel coorinates an
others sho#n in section 3)=)>) (ith aitional configurations8 as explaine
there8 each %ector of the graph set #oul result in up to four points in space8
connecte -! a line) Such a line is common presentation techni5ue for higher
imensional %ectors8 it lets conclusions to -e ra#n from its shape)
The ientifiers to use these components areG
+ Y1
+ P1
+ E1
+ Y=
+ P=
+ E=
+ Y6
+ P6
+ E6
+ Y3
+ P3
+ E3
66
A further group of target %ector components uses shaing properties of
the resulting o-9ect) The implementation pro%ies components for the
iffuseColor propert! an the transparenc! propert! of o-9ects at each point of
the set or %ertices of cur%es0meshes that %isualize 1*0=* su-sets) Man! other
shaing properties #oul -e possi-le in future implementations8 especiall! #hen
high le%el shaing language scene graph noes #ill -e use) But currentl! onl!
one color %ector can -e efine8 three components exist for the re8 green an
-lue color channel in the RGB color space8 an aitional set of three channels
hue8 saturation an %alue :+SV; pro%ies a more con%enient color space alternaJ
ti%e to set this color) &sing -oth RGB an +SV color %ectors #ill result in a -len
of -oth colors) Those component7s ientifier areG
+ CC.CR4+
+ CC.CR4S
+ CC.CR4V
+ CC.CR4R
+ CC.CR4G
+ CC.CR4B
+ CC.CR4A.?+A
Affine transformations are the next group of components in the %isualizaJ
tion %alues %ector) The! affect the rotation :in 6 *CF - 6 components; an scale
:as #ell 6 *CF - 6 components; of o-9ects locate at the coorinates explaine
a-o%e) This has to -e seen in connection #ith a feature explaine in section 3)=)>G
custom o-9ects8 that #ill -e use instea of the %er! small SoSphere o-9ects8
#hich represent points in space -! efault) An useful example #oul -e little
arro#s for each %ector of the graph set8 #here the argument of a omain0
coomain set %alue coul -e mappe to a rotation of the arro# an the
magnitue coul -e mappe to a scale transformation in the irection that affects
the length of the arro#) If the coorinate components are use for cur%e0mesh
o-9ects :graphs of 1*0=* su-sets;8 affine transformations of the %ertices ha%e no
effect8 -ecause the! ha%e no rotation or scale8 onl! a position) An if multiple of
the up to four coorinate triplets are use8 the affine transformation mappings
onl! affect the first one :namel! Y10P10E1;) That7s #h! the component7s
ientifiers are calle ?CI@T1CBFECT4))) G
+ ?CI@T1CBFECT4RCTATIC@4Y
+ ?CI@T1CBFECT4RCTATIC@4P
+ ?CI@T1CBFECT4RCTATIC@4E
+ ?CI@T1CBFECT4SCA.E4Y
+ ?CI@T1CBFECT4SCA.E4P
+ ?CI@T1CBFECT4SCA.E4E
Finall! a group of target %ector components ena-les mapping of ata to
time) Man! solutions for this #oul ha%e -een possi-le8 an oscillation -et#een
t#o affine transformations has -een chosen as a simple8 -ut useful example)
Se%en parameters ha%e -een implemente as target %ector components8 one of
them controls the fre5uenc! of this oscillation8 three components efine a 6 *CF
rotation %ector an another triplet of components efines a scale %ector in 6 *CF)
The rotation an scale %ectors ma$e up a secon affine transformation next to the
one alrea! efine for the static %isualization) A custom o-9ect at each point of
the set #ill oscillate its rotation an scale accoring to these %alues) As #ith the
63
static transformations8 onl! the first coorinate triplet :Y10P10E1; #ill -e
affecte) The ientifiers for the target %ector components areG
+ A@IM4FREH&E@CP
+ ?CI@T1CBFECT4RCTATIC@4Y4A@IM
+ ?CI@T1CBFECT4RCTATIC@4P4A@IM
+ ?CI@T1CBFECT4RCTATIC@4E4A@IM
+ ?CI@T1CBFECT4SCA.E4Y4A@IM
+ ?CI@T1CBFECT4SCA.E4P4A@IM
+ ?CI@T1CBFECT4SCA.E4E4A@IM
3)=)D)6 SoMappingGraph?ropert!ToVizFeature #ith scale an offset
To ena-le fiels of the mapping matrix in the noe $it SoComplexFunctionJ
GraphVisualization8 a list part name m$pping1ist has -een inclue into this
noe $it) This list part is restricte to chilren of t!pe SoMappingGraph?ropert!J
ToVizFeature) Cne such noe efines one fiel of the mapping matrix) This noe
has a SoSFEnum fiel name source :the enumeration %alues are the ientifiers
sho#n in su-section 3)=)D)1; an another SoSFEnum fiel name t$rget :using
the enumeration ientifiers from su-section 3)=)D)=;)
Cne limitation sho#e up in an earl! protot!peG the range of the source
%alues might not fit to the range of the target %alues) An o-%ious example is8 that
the range of :CC;*CMAI@4ARG&ME@T is [n, n] #hereas the range of
CC.CR4+ is [ 0,1] ) Because of its c!clicit! the hue channel #oul ha%e -een an
ieal match for %isualizing angles8 -ut the range aaption ha to -e sol%e) To
achie%e this t#o aitional SoSFFloat fiels ha%e -een put into SoMappingJ
Graph?ropert!ToVizFeatureG sc$le an offset) Their %alues allo# a linear transJ
formation of the %alues uring the mapping step8 the relation of a target %alue t to
a source %alue s #ill -eG t =sscae+!ffset ) This extents the interpretation of
ta-le 1G each cell contains not onl! an on0off %alue8 if it7s set to -e NonO8 it also
contains a scale an an offset %alue)
In the In%entor file format a single mapping loo$s li$e this8 the sho#n
%alues are the efault %aluesG
So%appinGraph&roperty'oVizFeature 0
source DO%I8N.3)I$
taret O1
offset /1/
scale 11/
2
All mappings8 in form of a list loo$ li$e thisG
SoComplexFunctionGraphVisualization 0
function)*aluator 111

mappin$ist No#e?it$ist&art 0
containerNo#e Separator 0
So%appinGraph&roperty'oVizFeature 0
source 111
taret 111
2
6D
So%appinGraph&roperty'oVizFeature 0
source 111
taret 111
2
So%appinGraph&roperty'oVizFeature 0
source 111
taret 111
2
111
2 < containerNo#e
2 < mappin$ist

2
!.2.$ 'ra%#(isuali)ation Configuration In%ut
&p this point all In%entor noes an fiels ha%e -een explaine8 that efine the
graph :in the SoComplexFunctionE%aluator name function9-$lu$tor; an the
%isual mapping :in a list of SoMappingGraph?ropert!ToVizFeature name m$p:
ping1ist;) Accoring to the %isualization pipeline this #oul -e e%er!thing
neee to generate the output an in fact the user can prouce sufficient function
graph representations) But still a num-er of %isualization parameter are missing
in the function9-$lu$tor an the m$pping1ist) These parameters ha%e -een
inclue into the noe $it SoComplexFunctionGraphVisualization8 the! are
referre to as Nconfiguration parts0fielsO an the! efineG
+ custom o-9ects8 that #ill -e use as NpointsO at the coorinates
+ line an arc connectors8 that efine ho# multiple coorinate %ectors from the
%isualization %alues set :Y10P10E18 )))8 Y30P30E3; #ill -e represente -! the
scene graph
+ arra! issol%ers8 that efine if 1*0=* su-sets shoul reall! -e ra#n as curJ
%es0meshes8 or as a set of points0lines instea
All these parameters are optional an not neee in man! cases)
3)=)>)1 Custom ?oint C-9ects
B! efault a point at a coorinate from the %isualization %alues set is renere %ia
a %er! small sphereG
Separator 0
Scale 0
scaleFactor /1/1 /1/1 /1/1
2
Sphere 0 2
2
In case there are mappings to the affine transformation components8 user
efine o-9ects #ill -e re5uire8 especiall! arro#s to sho# irections) For this
purpose SoComplexFunctionGraphVisualization has 3 optional partsG
+ point1C-9ect
+ point=C-9ect
+ point6C-9ect
+ point3C-9ect
6>
These parts are of t!pe SoSeparator8 so the! can contain ar-itrar! scene graph
moels) The content of point1C-9ect #ill -e sho#n at the :Y10P10E1; coorinate
of each element of the %isualization %alues set :-ut onl! if a mapping in the
mapping.ist to Y10P10E1 is efineQ other#ise if there is no mapping efine8 no
o-9ects #ill -e renere;) In the same #a! point=C-9ect #ill -e renere at each
:Y=0P=0E=;8 point6C-9ect at :Y60P60E6; an point3C-9ect at :Y30P30E3;)
The custom point o-9ect part coul also contain an empt! SoSeperatorG
point1Object Separator 0 2
This #oul result in nothing to -e ra#n at the coorinate e%en if a mapping to
this coorinate is efine) This is mostl! onl! interesting #hen line0arc
connectors :see su-section 3)=)>)=; are use)
A t!pical content of the custom o-9ect part #oul -e the follo#ingG
point1Object Separator 0
3otationOMP 0
anle 51194/;
axis P
2
Cone 0
bottom3a#ius /1/+
heiht /11
2
2
This is a small Cone in positi%e x irection8 the most simple arro# for
arro# plots)
3)=)>)= .ine an Arc Connectors
B! efault if mappings to all 3 possi-le coorinate targets exist8 the graph of a
single point set #oul -e 3 points :small spheres or custom point o-9ects; in
spaceQ the graph of a 1* su-set #oul -e 3 cur%es an the graph of a =* su-set
#oul -e 3 meshes)
But the multiple coorinates #here esigne to -e use as #ell li$e paralJ
lel coorinatesG a set of points connecte -! a line representing a NpointO in a
higher imensional space) To achie%e this > parts ha%e -een ae to SoComJ
plexFunctionGraphVisualization8 that can s#itch on an off a line -et#een each
possi-le pairG
+ point 1 an point =
+ point 1 an point 6
+ point 1 an point 3
+ point = an point 6
+ point = an point 3
+ point 6 an point 3
For each pair an o#n So*ra#St!le :line color8 thic$ness an line pattern; can -e
efine) If > -oolean fiels that s#itch the lines on an off an > more parts for
the ra# st!les #oul ha%e -een inclue into the noe $it8 an unnecessar!
reunanc! #oul ha%e emerge) To a%oi this8 onl! the ra# st!le parts #here
create as optional parts8 if the! are efine8 a line #ill -e generate8 other#ise
not) That7s #h! the parts #ere nameG
6/
+ use.ine?1To?=(ith*ra#St!le
+ use.ine?1To?6(ith*ra#St!le
+ use.ine?1To?3(ith*ra#St!le
+ use.ine?=To?6(ith*ra#St!le
+ use.ine?=To?3(ith*ra#St!le
+ use.ine?6To?3(ith*ra#St!le
An example for a line to -e ra#n -et#een each %isualization %ector7s
point 1 an point 6 #ith a thic$ ashe line #oul loo$ li$eG
SoComplexFunctionGraphVisualization 0
function)*aluator 111
mappin$ist 111

use$ine&1'o&(HithDra,Style Dra,Style 0
lineHi#th +19
line&attern /xff//
2
2
Another coorinate connector has -een implementeG An arc :a 5uarter
ellipse; starting at point 18 ening at point = an ha%ing its ellipse center at point
6) Such an arc can %isualize8 that point 1 an point 6 ha%e a similar relationship as
point = an point 6Q for example point 1 is at istance a-o%e point 6 an point =
is at istance left of point 6 - an arc #oul sho#8 that point 1 is Npro9ecte
o#nO to point =) As #ith the line connectors explaine a-o%e8 this is a part of
SoComplexFunctionGraphVisualization of t!pe So*ra#St!le an has the nameG
+ useArc?1To?=Aroun?6(ith*ra#St!le
3)=)>)6 Arra! *issol%ers
B! efault 1* su-sets are ra#n as cur%es an =* su-sets as meshes) But to the
%ertices of a cur%e or a mesh themsel%es no rotation an scaling coul -e applie)
(hat the user #ants in this case is custom point o-9ects to -e ra#n at each point
of the su-set8 as if each point #as a single point set) That7s #h! t#o -oolean fiels
ha%e -e ae to SoComplexFunctionGraphVisualizationG
+ cur%eAs?ointSet
+ surfaceAs?ointSet
The! are set to FA.SE -! efault8 -ut if set to TR&E 1*0=* su-sets are renere
as a set of points)
A relate functions has the -oolean fiel
+ surfaceAs.ineSet
#hich ma$es a =* su-set #ith MV@ %ertices treate as MT@ 1* su-sets8 the
resulting line set pro%ies in some cases a -etter %ie# :occlusions remo%e; an
sometimes a -etter impression of cur%ature)
!.2.1 (i)?b@ectDefinition0tate
All user input possi-ilities ha%e -een liste in the preceing sections) In orer to
ma$e the necessar! user input as simple an clear as possi-le8 some efault
-eha%iour has -een implemente into SoComplexFunctionGraphVisualization)
To unerstan the graph %isualization frame#or$ completel!8 this -eha%iour is
escri-e in the follo#ing) To organize the efault -eha%iour a state %ector has
6A
-een create for the %isualization noe $it) It is calle VizC-9ect*efinitionState
an has these mem-ers :all of them are -oolean %aria-les;G
+ mappingTo?oint1*efine + point1C-9ect*efine
+ mappingTo?oint=*efine + point=C-9ect*efine
+ mappingTo?oint6*efine + point6C-9ect*efine
+ mappingTo?oint3*efine + point3C-9ect*efine
+ mappingToAn!?oint*efine + useArc?1To?=Aroun?6
+ mappingToRGB*efine + use.ine?1To?=
+ mappingTo+SV*efine + use.ine?1To?6
+ mappingToTransparenc!*efine + use.ine?1To?3
+ mappingToAn!Color?ropert!*efine + use.ine?=To?6
+ mappingToRotationY*efine + use.ine?=To?3
+ mappingToRotationP*efine + use.ine?6To?3
+ mappingToRotationE*efine + useAn!.ine
+ mappingToScale*efine + cur%eAs?ointSet
+ mappingToAnimationFre5uenc!*efine + surfaceAs.ineSet
+ mappingToRotationYAnimation*efine + surfaceAs?ointSet
+ mappingToRotationPAnimation*efine
+ mappingToRotationEAnimation*efine
+ mappingToScaleAnimation*efine
This state collects the 6= %isualization %alues %ector components into 1A groups
:their names 7mappingTo)))*efine7 shoul -e self<explanator!;8 the! are automaJ
ticall! $ept in s!nc #ith the mapping matrix in m$pping1ist) Aitionall! the
state mirrors the configuration parts0fiels)
(hen a su-set is ae to the omain set8 a su-set is immeiatel! an
automaticall! ae to the %isualization geometr! set) *uring this setup the
follo#ing algorithm -uils up the scene graph o-9ects epening on the stateG
if mappin'oInyColor&ropertyDefine#
material A ne, So%aterial
SoSeparator pointDefaultObject
pointDefaultObject1a## SoScaleE/1/1F
pointDefaultObject1a## SoSphere
if point1ObjectDefine#
point1Object A parentGraphViz1point1Object
else
point1Object A pointDefaultObject
if point+ObjectDefine#
point+Object A parentGraphViz1point+Object
else
point+Object A pointDefaultObject
if point(ObjectDefine#
point(Object A parentGraphViz1point(Object
else
point(Object A pointDefaultObject
if point>ObjectDefine#
point>Object A parentGraphViz1point>Object
else
point>Object A pointDefaultObject
if mappin'o&oint1Define#
point1'ranslation A ne, So'ranslation
if mappin'o3otationODefine#
6B
if mappin'o3otationOInimationDefine#
point13otationO&en#ulum A ne, So&en#ulum
else
point13otationO A ne, So3otationOMP ,ith axisAO
if mappin'o3otationMDefine#
if mappin'o3otationMInimationDefine#
point13otationM&en#ulum A ne, So&en#ulum
else
point13otationM A ne, So3otationOMP ,ith axisAM
if mappin'o3otationPDefine#
if mappin'o3otationPInimationDefine#
point13otationP&en#ulum A ne, So&en#ulum
else
point13otationP A ne, So3otationOMP ,ith axisAP
if mappin'oScaleDefine#
if mappin'oScaleInimationDefine#
point1ScaleHobble A ne, SoHobble "" scale counterpart to So&en#ulum
else
point1Scale A SoScale
SoSeparator point1Sep
a## point1Sep
if mappin'oInyColor&ropertyDefine#
point1Sep1a## material
point1Sep1a## point1'ranslation
if mappin'o3otationODefine#
if mappin'o3otationOInimationDefine#
point1Sep1a## point13otationO&en#ulum
else
point1Sep1a## point13otationO
if mappin'o3otationMDefine#
if mappin'o3otationMInimationDefine#
point1Sep1a## point13otationM&en#ulum
else
point1Sep1a## point13otationM
if mappin'o3otationPDefine#
if mappin'o3otationPInimationDefine#
point1Sep1a## point13otationP&en#ulum
else
point1Sep1a## point13otationP
if mappin'oScaleDefine#
if mappin'oScaleInimationDefine#
point1Sep1a## point1ScaleHobble
else
point1Sep1a## point1Scale
point1Sep1a## point1Object
if mappin'o&oint+Define#
111 see mappin'o&oint1Define#7 but no rotation7 scale or animation
if mappin'o&oint(Define#
111 see mappin'o&oint1Define#7 but no rotation7 scale or animation
if mappin'o&oint>Define#
111 see mappin'o&oint1Define#7 but no rotation7 scale or animation
if useIrc&1'o&+Iroun#&(
a## SoSeparator arcSep
arcSep1a## ne, So$iht%o#el ,ith mo#elAJIS).CO$O3
if mappin'oInyColor&ropertyDefine#
arcSep1a## material
arcSep1a## ne, SoCoor#inate( arcCoor#inates
arcSep1a## ne, So$ineSet arc
if use$ine&1'o&+
a## SoSeparator line&1'o&+Sep
if mappin'oInyColor&ropertyDefine#
line&1'o&+Sep1a## material
line&1'o&+Sep1a## ne, SoCoor#inate( line&1'o&+Coor#inates
line&1'o&+Sep1a## ne, So$ineSet line&1'o&+
if use$ine&1'o&(
111 see use$ine&1'o&+
if use$ine&1'o&>
111 see use$ine&1'o&+
if use$ine&+'o&(
111 see use$ine&1'o&+
if use$ine&+'o&>
111 see use$ine&1'o&+
if use$ine&('o&>
111 see use$ine&1'o&+
As an example of #hat coul -e rea from the pseuo coe a-o%eG if accoring to
the VizC-9ect*efinitionState a mapping to an! color propert! :R8 G8 B8 +8 S or V;
32
is efine8 a SoMaterial noe is ae to the scene graph) In this case an!
material efine -efore in the scene graph is o%er#ritten -! this material) If no
mapping to an! color propert! is efine8 the material for the graph o-9ects is
ta$en from the scene graph outsie SoComplexFunctionGraphVisualization) This
sho#s the necessit! of the %isualization o-9ects efinition state8 -ecause e%en
#ithout an! mappings to the colors the %isualization %alues %ector contains color
%aluesG then these %alues are zero8 i)e) -lac$) (ithout the state all %ertices #oul
-e -lac$8 -ut #ith it #e $no#8 that the color is not -lac$8 -ut not mappe8 so no
SoMaterial is create) For the other efault -eha%iour see the algorithm a-o%e or
the extensi%e source coe ocumentation)
For the algorithm to set an upate the %alues for the scene graph noes
generate a-o%e see the follo#ing pseuo coeG
if mappin'oInyColor&ropertyDefine#
if mappin'oQSVDefine# SS mappin'o3GJDefine#
material1#iffuseColor A
*izValuesSubSet5@#ata1[3GJ] " + K
rbE*izValuesSubSet5@#ata1[QSV]F " +
else if mappin'oQSVDefine#
material1#iffuseColor A rbE*izValuesSubSet5@#ata1[QSV]F
else if mappin'o3GJDefine#
material1#iffuseColor A *izValuesSubSet5@#ata1[3GJ]
if mappin'o&oint1Define#
if mappin'o3otationODefine#
if mappin'o3otationOInimationDefine#
point13otationO&en#ulum1rotation/ A Sb3otationE
SbVec(fE17 /7 /F7
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.O]
F
point13otationO&en#ulum1rotation1 A Sb3otationE
SbVec(fE17 /7 /F7
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.O.IN8%]
F
point13otationO&en#ulum1spee# A
*izValuesSubSet5@#ata1[IN8%.F3)RN)NCM]
else
point13otationO1anle A
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.O]
if mappin'o3otationMDefine#
if mappin'o3otationMInimationDefine#
point13otationM&en#ulum1rotation/ A Sb3otationE
SbVec(fE17 /7 /F7
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.M]
F
point13otationM&en#ulum1rotation1 A Sb3otationE
SbVec(fE17 /7 /F7
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.M.IN8%]
F
point13otationM&en#ulum1spee# A
*izValuesSubSet5@#ata1[IN8%.F3)RN)NCM]
else
point13otationM1anle A
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.M]
if mappin'o3otationPDefine#
if mappin'o3otationPInimationDefine#
point13otationP&en#ulum1rotation/ A Sb3otationE
SbVec(fE17 /7 /F7
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.P]
F
point13otationP&en#ulum1rotation1 A Sb3otationE
SbVec(fE17 /7 /F7
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.P.IN8%]
F
point13otationP&en#ulum1spee# A
*izValuesSubSet5@#ata1[IN8%.F3)RN)NCM]
else
point13otationP1anle A
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.3O'I'8ON.P]
if mappin'oScaleDefine#
if mappin'oScaleInimationDefine#
point1ScaleHobble1scaleFactor/ A
31
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.SCI$)]
point1ScaleHobble1scaleFactor1 A
*izValuesSubSet5@#ata1[&O8N'1OJT)C'.SCI$).IN8%]
point1ScaleHobble1spee# A *izValuesSubSet5@#ata1[IN8%.F3)RN)NCM]
else
point1Scale A *izValuesSubSet5@#ata1[&O8N'1OJT)C'.SCI$)]
point1'ranslation A *izValuesSubSet5@#ata1[O1"M1"P1]
if mappin'o&oint+Define#
point+'ranslation A *izValuesSubSet5@#ata1[O+"M+"P+]
if mappin'o&oint(Define#
point('ranslation A *izValuesSubSet5@#ata1[O("M("P(]
if mappin'o&oint>Define#
point>'ranslation A *izValuesSubSet5@#ata1[O>"M>"P>]
if useIrc&1'o&+Iroun#&(
maUe arcCoor#inatesValues
from *izValuesSubSet5@#ata1[O1"M1"P1 " O+"M+"P+ " O("M("P(]
arcCoor#inates1point1setValuesEarcCoor#inatesValuesF
if use$ine&1'o&+
maUe lineCoor#inatesValues
from *izValuesSubSet5@#ata1[O1"M1"P1 " O+"M+"P+]
line&1'o&+Coor#inates1point1setValuesElineCoor#inatesValuesF
if use$ine&1'o&(
111 see use$ine&1'o&+
if use$ine&1'o&>
111 see use$ine&1'o&+
if use$ine&+'o&(
111 see use$ine&1'o&+
if use$ine&+'o&>
111 see use$ine&1'o&+
if use$ine&('o&>
111 see use$ine&1'o&+
3=
- .ser Interfaces and /&am%le 0etu%s
As the unerl!ing technolog! use in this implementation8 namel! the
Stuierstu-e A?I8 supports %arious input an output e%ices for man! ifferent
application en%ironment scenarios8 t#o setups rele%ant for the complex function
graph %isualization shall -e presente in this chapter)
Follo#ing the escription of each setup an its iscussion8 some
instructions for the reaer #ho #ants to tr! them him0herself are appene)
These instructions relate to the scene graph file8 that has to -e prepare -efore
starting the application for a specific %isualization tas$) In this file a scene
incluing the SoComplexFunctionGraphVisualization noe is escri-e8 all user
interaction has to -e efine therein as #ell)
+.1 #mmesive Setup
The first setup resem-les a setup use in the relate pro9ect Construct6* :see
section =)=)1;8 #here it has -een calle the NBasic AR .a- Multi<&ser SetupO
:escri-e in section D)1 of K==L;) +ere t#o colla-orating users #ear semi<
transparent +M*s for a share %irtual space an hol full! trac$e interaction
props in their hans) (hile Construct6* implements a full<feature menu
s!stem on a %irtual ta-let that is hapticall! represente an trac$e in space -! a
glass plate in the real #orl an o%erla!e -! a %irtual menu :this is calle the
?I?8 the person$l inter$ction p$nel K6=L;8 the complex function graph %isualizaJ
tion frame#or$ onl! nees a trac$e pen for interaction) A ?I? coul -e easil!
integrate8 -ut is no re5uirement in our case)
36
Figure 2): im$ge composition ,emonstr$ting the com!in$tion of re$l $n,
-irtu$l sp$ce
For renering of stereoscopic %ie#s for -oth users one eicate host
#ith t#o graphic ports is use) Trac$ing is one -! an ARTtrac$1 optical trac$ing
s!stem #ith four cameras that #e interface %ia the CpenTrac$er A?I) The
Construct6* user stuies sho#e8 that #hile a secon host coul easil! rener a
6
r
an a 3
th
%ie# of the scene8 the num-er of users is mainl! restricte -! the
num-er of cameras of the trac$ing s!stem) More users cause more occlusions an
it has -een foun8 that four camera are sufficient to trac$ t#o users in %er! high
5ualit! an trac$ing more than three users #oul re5uire more of the expensi%e
cameras)
This setup pro%ies a %er! goo -asis to percei%e spatial o-9ects8 not onl!
through the stereoscopic ispla! -ut much more through the possi-ilit! to #al$
aroun the o-9ects co<locate #ith the real #orl)
Interaction #ith the application is one -! ragging aroun o-9ects that
are connecte to parameters of the %isualization8 mostl! mo%ing an resizing the
su-sets of omain %alues an function parameters on the Complex plane)
-.1.1 Immersive 0etu% .ser Instructions
The scene graph file for such a setup #oul inclue at least one SoComplexFuncJ
tionGraphVisualization noe #hich efines the function8 the omain su-set an
the %isual mapping) If this #as the onl! noe in the scene8 a static %isualization
coul -e stuie -! the o-ser%ers8 the onl! interaction #oul -e their change of
%ie#points #hile communicating their insights to each other)
A next step to sho# more information coul -e to change the scene graph
file to let interesting parameters of the %isualization -eing animate) Technicall!
this means to replace a constant fiel %alue -! an acti%e ata source8 namel! an
In%entor t!pe of noe referre to as engine8 for example SoElapseTime8 #hich
continuousl! changes the fiel %alue) In this #a! a %isualization coul -e
o-ser%e for a certain range of a parameter instea of 9ust one fix %alue)
But still the use of engines #oul not increase the le%el of interaction) This
is easil! to -e achie%e -! using the So*rag,it o-9ect of the Stuierstu-e A?I)
That means #e on7t rag a %isualization o-9ect irectl!8 -ut a representation of a
coorinate :e)g) a small sphere; an ma$e fiel connections to %isualization
parameters8 for example the re$l an im$gin$r* fiels of a SoComplex*omainJ
Su-Set42*) This #oul result in the omain %alue -eing locate at the
coorinate of this small sphere) In this #a! the user can control the %alue of a
complex num-er z an o-ser%e the graph %isualization #hich is a %isual
com-ination of z an f ( z) ) +o# this %isualization loo$s8 epens highl! on the
%isual mapping efine in the %isualization $it)
33
+.2 $es)top Setup
This setup has -een create to ha%e the least har#are re5uirements possi-le) It
can -e run right from a C*RCM on a common ?C setup) Soft#are re5uirements
are a 6=-it %ersion of Microsoft (ino#s an a CpenG. compliant graphics
ri%er8 input e%ice is a mouse onl! an the efault ispla! is use for a
monoscopic %ie# on the scene)
The -ig a%antage of this setup is the #ie auience that can -e reache)
As an example all stuents of a course coul o their home#or$ using this
soft#are) Another a%antage is porta-ilit!) A teacher coul easil! -ring it on a
laptop computer to a lecture an illustrate some of his instructions interacti%el!
#hile sho#ing the screen content on a pro9ection #all)
The selection of the %ie#point #ithout the trac$ing s!stem #or$s as
follo#sG here #e use the functionalit! of Coin6* an its (in6= G&I -ining to
control the camera #ith the mouse) .eft clic$ an ragging results in a rotation
aroun the loo$<at point) Mile clic$ an ragging ena-les panning the loo$<at
point left0right an up0o#n) .eftTmile clic$ an ragging mo%es the e!e
point closer0farer to0from the loo$<at point)
Because the mouse ser%es -oth as camera control an as interaction
e%ice8 Coin6* implements t#o moes that can -e toggle #ith the escape $e! on
the $e!-oarG %ie#ing moe :rotate8 pan8 oll! the camera; or interaction moe
:clic$ an mo%e ragga-le o-9ects;)
-.2.1 Deskto% 0etu% .ser Instructions
Vie#ing static function %isualizations an animations using fiel connections to
engines #ithout user control8 re5uires in this setup the same preparations as in
the immersi%e setupG #rite exactl! the same scene escription into a scene graph
file an start the application)
For interaction an e5ui%alent of So*rag,it :see su-section D)1)1; has to -e
use in the scene) So*rag,it itself #oul re5uire $e!-oar an mouse control %ia
Stuierstu-e7s trac$ing la!er CpenTrac$er) Such CpenTrac$er moules exist8
ho#e%er8 Coin6* features more a%ance mouse interaction noes calle
,r$ggers8 #hich alrea! ha%e a ra! pic$ing functionalit! -uilt<in to ena-le
3D
Figure 2+: $ user wor.ing with the ,es.top setup
intuiti%e mouse ragging of hanles that can -e fiel<connecte to scene o-9ects)
Coin6* inclues e%en more sophisticate interaction noes on top of raggers8
calle manipulators) The! can simpl! replace a transform noe in the scene graph
an sho# a -ouning -ox of the affecte -ranch that can -e mo%e aroun #ith
the mouse) As in the immersi%e setup8 #e can again use a representation of a
coorinate :li$e a small sphere; an connect the translation fiels of its ragger
:or manipulator; to %isualization parameters)
3>
$ .sage /&am%les
To sho# the strength of the e%elope application8 in this chapter t#o actual
topics from the #orl of applie complex mathematics are %isualize #ith the
escri-e frame#or$)
,.1 -xploing t!e "ocess o. Factals Calculation
/#teative Complex Functions0
The Manel-rot set is the set of complex num-ers c 8 for #hich the iterati%e
calculation of
f ( z)=z
2
+c
8 starting at z=0 8 oes not ten to infinit!)
This set has -ecome famous -ecause it sho#s a %er! complicate structure
arising from a simple efinition on the one han an its aesthetic appeal on the
other han) In this section the calculation process itself for the Manel-rot set
shall -e examine #ith the e%elope %isualization application)
Tr!ing to in%estigate too man! features at once usuall! leas to an o%erJ
loae %isualization) So for the function that is examine8 ifferent reuce %iJ
sualizations are propose that each sho# their o#n aspects of the function)
$.1.1 /&%eriment *r. 1
The first experiment shoul simpl! sho# a single point f ( z) on the
complex plane #hile ragging aroun z an c ) For this purpose #e #rite a scene
graph file that contains the follo#ing elements :compare fig) 62 for results;G
a light source :has al#a!s to -e inclue in the scene;
a la-elG a s5uare #ith the opposite corners :<D8 <D8 2; an :D8 D8 2; #ith a
texture that sho#s a real axis #ith the range K<D8 DL on the x<axis an an
imaginar! axis #ith the range K<D8 DL on the !<axis
this represents the Complex plane that #e #or$ on
t#o raggers for interactionG So*rag,it or SoTa-BoxManip o-9ects
:epening on the immersi%e or es$top setup; containing a representation
of a point on the plane :a SoSphere #ith raius 2)6;
point z colore !ello#8 initiall! place at :18 28 2;
point c colore re8 initiall! place at :28 28 2;
gi%e them names8 that #e can use in fiel connectionsG
*EF *RAG4,IT41 ))) :ragger for z ;
*EF *RAG4,IT4= ))) :ragger for c ;
3/
a SoComplexFunctionGraphVisualization o-9ect for f ( z)
this o-9ect has a part name function9-$lu$tor of t!pe SoComplexJ
FunctionE%aluator8 #here insie #e efine the graph -! three input
elementsG the omain set8 the function an the parameter
the omain set is a part of the function9-$lu$tor #ith name ,om$in:
7u!7et1ist an t!pe @oe,it.ist?art
the content of ,om$in7u!7et1ist is containe in its part #ith the
name cont$iner<o,e an t!pe SoSeparator
insie the cont$iner<o,e #e put for our experiment one noe of
t!pe SoComplex*omainSu-Set42*8 #hich efines the omain set
as one single point
the t#o fiels of this omain su-set re$l an im$gin$r* get
fiel connections from the x an ! component of
*RAG4,IT41)translation
#e extract the components of the ragger7s %ector using an
engine8 for example SoCalculator8 that can output a scalar o$
from an input %ector A using the expression No$ > A?n@A8 #here
n in 2010= for x0!0z
as #e efine onl! one single omain point8 the graph #ill consist of
onl! t#o complex num-ersG z an f ( z)
function is a string<fiel of functionE%aluatorQ
f ( z)=z
2
+c
is efine
in the grammar explaine in section 3)=)6 as the string
Na:po#:z8:=;;8p1;O
the parameter p1 is efine -! functionE%aluator7s fiels p$r$meter1:
0e$l an p$r$meter18m$g
the! get fiel<connecte to *RAG4,IT4=)translation7s x an !
components using SoCalculators
the %isualization o-9ect no# nees to $no# ho# to o the %isual mapping
of the graph8 so #e efine its part m$pping1ist of t!pe @oe,it.ist?art to
contain t#o mappings :each a SoMappingGraph?ropert!ToVizFeature
noe;G
a mapping from CC*CMAI@4REA. to Y1 an
a mapping from CC*CMAI@4IMAGI@ARP to P1
finall! #e efine the output o-9ect to ha%e a -lue color using a SoMaterial
noe in front of the SoComplexFunctionGraphVisualization
In follo#ing the SoComplexFunctionGraphVisualization part of the scene
escri-e a-o%e in #ors is gi%en in the s!ntax of the scene graph fileG
SoComplexFunctionGraphVisualization 0
function)*aluator SoComplexFunction)*aluator 0
#omainSubSet$ist No#e?it$ist&art 0
containerNo#e Separator 0
SoComplexDomainSubSet./D 0
real 11/ A
Calculator 0
I A NS) D3IG.?8'.11translation
3A
expression Doa A I[/]D
21oa
imainary /1/ A
Calculator 0
I A NS) D3IG.?8'.11translation
expression Doa A I[1]D
21oa
2 < SoComplexDomainSubSet./D
2 < containerNo#e
2 < #omainSubSet$ist
function Da##Epo,Ez7E+FF7p1FD
parameter13eal /1/ A
Calculator 0
I A NS) D3IG.?8'.+1translation
expression Doa A I[/]D
21oa
parameter18ma /1/ A
Calculator 0
I A NS) D3IG.?8'.+1translation
expression Doa A I[1]D
21oa
2 < SoComplexFunction)*aluator
mappin$ist No#e?it$ist&art 0
containerNo#e Separator 0
So%appinGraph&roperty'oVizFeature 0
source CODO%I8N.3)I$
taret O1
2 < So%appinGraph&roperty'oVizFeature
So%appinGraph&roperty'oVizFeature 0
source CODO%I8N.8%IG8NI3M
taret M1
2 < So%appinGraph&roperty'oVizFeature
2 < containerNo#e
2 < mappin$ist
2 < SoComplexFunctionGraphVisualization
Fig) 62 sho#s results of this experiment as screenshots from a es$top setup) The
user can rag aroun the !ello# point : z ; an o-ser%e #here the -lue point :
f ( z) ; is going) Cne insight that can -e #on #hen oing this8 is that #hen the
user mo%es z once aroun the origin8 f ( z) mo%es t#ice aroun the origin) Then
the user can mo%e aroun the re point : c ; an o-ser%e8 that f ( z) is translate
-! the same translation) Mo%ing z once aroun the origin no# results in f ( z)
mo%ing t#ice aroun c )
3B
Figure 3/: experiment 1 result
screenshots
top left imageG
top right imageG
-ottom imageG
z=1+i
z=i
z=i
c=0
c=0
c=i
In an eucational context an AR setup coul -e use %er! effecti%el! in the
follo#ing #a!G In a setup using full! trac$e semi<transparent +M*s8 the comJ
plex plane of the scene a-o%e coul -e co<locate #ith a ta-le top surface in the
real #orl) The la-el coul -e remo%e from the %irtual scene an instea a large
piece of ra#ing paper #ith the la-ele axes coul -e use at the same location)
Still the re an the !ello# point coul -e ragge aroun freel!8 -ut this time
#ith a trac$e pen) A restriction of the location of the points to the plane :using
engines in the scene graph; #oul -e helpful) @o# the user coul use a real
!ello# ra#ing pen to ra# a shape :e)g) a circle; into the Complex plane8 !ello#
-ecause this is the color for the omain) Then he0she coul use the trac$e pen to
mo%e the %irtual !ello# point o%er the real !ello# shape) (ith the other han or
-! the help of another user8 using a real -lue pen :-lue as the color for the
coomain; the user coul ra# along the tra9ector! of the -lue point) In this #a!
the -eha%iour of the function coul -e examine thoroughl! in ho# it transforms
ar-itrar! shapes) This applies to a constant %alue of c 8 i)e) the re point #oul
ha%e to sta! in position)
To explore the function for ifferent %alues of the parameter c 8 other
sheets of paper coul -e use) B! holing t#o sheets -ehin each other into the
sunlight8 the functions for ifferent parameter %alues coul -e compare)
+a%ing examine the -eha%ior of the non<iterati%e e%aluation of the
function8 no# iterations coul -e follo#e) That means8 the user places the !ello#
point : z ; into the origin an mar$s the resulting position of the -lue point :
f ( z) ; #ith a pencil8 possi-l! #riting the iteration num-er :1; next to it) Then
he0she #oul mo%e the !ello# point to mar$ nr) 18 loo$ for the position of the
D2
-lue point an mar$ iteration num-er = an so on) @o# the follo#ing
funamental insight to unerstaning the Manel-rot set can -e gaineG
sometimes the iterations ten to#ars infinit! an sometimes the! $eep mo%ing
aroun the proximit! of the origin)
To spee up the experiment for t#o users8 t#o ifferent ragga-le !ello#
points for t#o ifferent omain %alues :#ith their accoring coomain %alues
-eing generate in -lue; coul -e use in the %irtual scene) Then each user coul
hol a !ello# point continuousl! on his trac$e pen tip an #hen the first user
starts #ith the first iteration #ith his !ello# point at the origin8 the secon user
coul alrea! place her0her !ello# point exactl! at the resulting -lue point
:secon iteration;) Then the first user coul immeiatel! continue #ith the thir
iteration -! placing his0her !ello# point at the -lue point from the secon
iteration an so on) In %er! short time the tenenc! of the iteration coul -e
foun) If the iteration oes not ten to#ars infinit!8 the location of the rea
point : c ; can -e mar$e8 that it -elong to the Manel-rot set an the same
proceure coul -e repeate for another %alue of c )
$.1.2 /&%eriment *r. 2
In the first experiment #e use a %er! simple function %isualizationG o-ser%ing a
single point in the omain set an its counterpart in the coomain set8 -oth in the
same plane) In experiment nr) = #e #ant to see more information at once -!
%isualizing not one point -ut a gri of @VM points from the omain set)
Aitionall! #e #ill use the 6
r
coorinate component to generate spatial o-9ects)
This #ill re5uire from the user a higher egree of a-straction to NreaO the
information from the representation8 -ut once he0she learne to interpret the
spatial o-9ects generate from the function8 more interepenencies can -e seen
an unerstoo)
In the experiment #e #ant to o-ser%e the real part an the imaginar! part
of f ( z) in epenence to z ) Therefore #e plot t#o surfaces :one for the real part8
the other for the imaginar!; o%er the Complex plane) So #e efine the scene as
follo#sG
light source an la-el ientical to experiment nr) 1
one ragger o-9ect holing one point on the Complex planeG this one
represents the parameter c of our function
t#o o-9ects of t!pe SoComplexFunctionGraphVisualization for the surfacesG
the first one efines the function9-$lu$tor to inclueG
the ,om$in7u!7et1ist #ith one polar gri :SoComplex*omainSu-J
Set4=*4Regular?olar;8 a isc shape set of @VM points aroun the
origin #ith the raius of =
the same function as in experiment nr) 1G Na:po#:z8:=;;8p1;O
the same p$r$meter10e$l0(((8m$g8 fiel<connecte to *RAG4,IT41)
translation
the function9-$lu$tor gets a name %ia N*EF GRA?+414?CJ
.AR4S&RFACEO
D1
the secon SoComplexFunctionGraphVisualization uses a share instance
of the same function9-$lu$tor %ia N&SE GRA?+414?C.AR4S&RFACE N
the first SoComplexFunctionGraphVisualization instance gets a m$pping:
1ist that efines a mapping to the components of a coorinateG
*CMAI@4REA. to Y1
*CMAI@4IMAGI@ARP to E1 #ith scale S <1
CC*CMAI@4REA. to P1
the negation of E1 con%erts the right<hane coorinate s!stem of
Stuierstu-e to a left<hane coorinate s!stem common in the fiel
of mathematics an geometr!
the secon SoComplexFunctionGraphVisualization7s m$pping1ist efiJ
nes another coorinateG
*CMAI@4REA. mappe to Y1
*CMAI@4IMAGI@ARP to E1 #ith scale S <1
CC*CMAI@4IMAGI@ARP to P1
finall! #e put a green Material noe in front of the real surface an a -lue
Material in front the imaginar! surface
This scene loo$s as sho#n in fig) 61) As the user mo%es aroun the re point8 the
graph changes) It can -e o-ser%e8 that the green :real; an -lue :imaginar!;
parts onl! mo%e up an o#n an sho# no other transformations in epenenc!
of the re point : c ;)
Figure 31: 9xperiment <r( 2 screenshots
@o# some impro%ements to the scene are propose) First8 the surfaces occlue
each other in man! parts8 important information might -e hien from some
%ie#points) So #e coul present them as #ell as gris of lines :see fig) 6=;) This is
one -! simpl! setting the fiel surf$ceAs1ine7et to &0B9 in -oth %isualization
o-9ects)
D=
Figure 32: 9xperiment <r( 2 screenshots
But as the figure a-o%e sho#s8 it is too ifficult for the resulting gris to tell
#hich surface is in front of the other) Some trae<off -et#een gris an shae
surfaces #oul -e helpful8 so the follo#ing solution is proposeG efine the t#o
SoComplexFunctionGraphVisualization o-9ects full! shae :as in fig) 61;8 -ut
no# #ith a Material noe #here ,iffuseColor is set to -lac$ an tr$nsp$renc* is
set to 2)A) Then efine a share instance of each SoComplexFunctionGraphViJ
sualization8 precee -! a Material noe efining the color as green or -lue
respecti%el! #ith no transparenc! an a *ra#St!le noe #ith st*le set to N.I@ESO
an line6i,th set to =)2) This results in the images sho#n in fig) 668 #hich are
clearl! -etter reaa-le than in fig) 6=)
Figure 33: 9xperiment <r( 2 screenshots
To unerstan the %isualization of separate surfaces for the real an imaginar!
part8 the user is re5uire to imagine a line normal to the Complex plane8
intersecting the plane at a %alue z an rea the intersections of this line #ith the
surfaces as the real an imaginar! part of a complex num-er f ( z) ) To help users
to imagine this concept8 a %isualization of these intersections is propose as a
further extension of experiment nr) =) +ere #e extent our scene -! a ragger for a
single omain %alue z :ientical to the !ello# point in experiment nr) 1; an t#o
further SoComplexFunctionGraphVisualization noes) The first one sho#s the
real part of f ( z) as a green point a-o%e or -elo# the !ello# point8 at that position
#here it lies irectl! on the green surface) The green point an the !ello# point
#ill also get connecte -! a otte line) The secon ne# %isualization noe oes
the same for the imaginar! part of f ( z) #ith a -lue point :see fig) 63;)
D6
In the s!ntax of the scene graph file this meansG (e a a ne# ragga-le
!ello# sphere an gi%e it the name *RAG4,IT4=) For the green point a SoComJ
plexFunctionGraphVisualization noe is ae that efines a ne# function:
9-$lu$tor -ecause the function9-$lu$tor that is alrea! efine for the surfaces
contains the right function #ith the right parameters8 -ut another omain set)
The ne# function9-$lu$tor contains a ,om$in7u!7et1ist #ith a single omain
su-set of t!pe SoComplex*omainSu-Set42* #hich is fiel<connecte to
*RAG4,IT4=)translation) The function an p$r$meter10e$lC(((8m$g fiels
shoul not -e reefine to a%oi inconsistencies8 -ut get fiel<connections from
the corresponing fiels of the function9-$lu$tor of the surface graph) Then #e
efine the m$pping1ist of the %isualization noe) There #e setup fi%e mappingsG
three mappings efine coorinate nr) 1 :the location for the green point;G
*CMAI@4REA. is mappe to Y1
*CMAI@4IMAGI@ARP to <E1
CC*CMAI@4REA. to P1
t#o mappings efine the =
n
coorinate at the omain %alue on the groun
plane #hich #ill ser%e as the en point of the connection line -et#een the
!ello# an the green point
*CMAI@4REA. is mappe to Y=
*CMAI@4IMAGI@ARP to <E=
nothing is mappe to P=8 i)e) it #ill al#a!s -e zero
@o# the %isualization noe of the green point is almost finishe8 #e onl! nee to
efine the fiel point2D!Eect as an empt! SoSeparator8 -ecause other#ise a
secon green point #oul -e renere at the same location as the !ello# point)
(e on7t #ant that8 #e 9ust nee the secon coorinate as the en point of the
connection line) Then8 -! efining the optional part use1ine41&o426ith5r$w:
7t*le as a *ra#St!le #ith line4$ttern N2x22ffO for a otte line -et#een cooriJ
nate 1 an coorinate = the real part of the %isualization is complete)
Fortunatel! the imaginar! part8 the secon %isualization noe that
generates the -lue point an its connection line8 is efine much shorter no#) It
uses the same function9-$lu$tor as the green point -! a share instance) Then a
m$pping1ist has to -e eclare that is almost the same as explaine a-o%e8 onl!
that CC*CMAI@4IMAGI@ARP is mappe to P1 instea of CC*CMAI@4REA.)
The empt! SoSeparator for point=C-9ect an the use.ine?1To?=(ith*ra#St!le
are the same)
D3
The last extension proposal for experiment nr) = is to sho# the green an the -lue
point :real an imaginar! part of f ( z) ; not onl! a-o%e z :i)e) on the ! axis;8 -ut
as #ell on the groun plane using the same axes as z :the x axis for the real part
an the < z axis for the imaginar! part;) In orer to sho# the ientit! of these t#o
representations of f ( z) connection lines an arcs are use as sho#n in the
follo#ing)
In our scene graph this extension again re5uires aing t#o ne# SoComJ
plexFunctionGraphVisualization noes) The first one #ill sho# copies of the
green point8 i)e) the real part of f ( z) in t#o ne# positionsG a-o%e the origin an
in the irection of the x axis from the origin :fig) 6D;) The other one #ill sho# t#o
copies of the -lue point8 a-o%e the origin an in the irection of the negati%e z
axis)
Fig) 6D sho#s the resulting scene #ith the surfaces an the -lue points
s#itche off8 so onl! c :re;8 z :!ello#; an the ifferent representations of f ( z)
:green; are left) The point annotate as point 1 is the same that #e alrea! ha in
fig) 638 it is f ( z) a-o%e z ) ?oint = is efine in the ne# %isualization noe -!
mapping CC*CMAI@4REA. to P1 :Y1 an E1 sta! at zero;) It s!m-olizes8 that
the first green point is mo%e horizontall! to the origin) Then #e generate the
point annotate in the figure -elo# as point 6 -! mapping CC*CMAI@4REA. to
Y= :P= an E= sta! at zero;) An arc aroun the origin shall s!m-olize8 that point =
is Npro9ecte o#nO to point 68 or -etter sai8 mo%e to another axis) For this arc
as #ell as for the lines connecting point = to the origin an point 6 to the origin
#e nee the coorinate of the origin as one of the 3 coorinate %ectors in the %iJ
sualization %alues set :see the explanation in section 3)=)1)1;) But no mapping to
DD
Figure 34: 9xperiment <r( 2 with intersection points screenshot
the origin in our m$pping1ist is necessar!8 #e 9ust map nothing to Y68 P6 an
E68 then their %alues sta! at zero) @o# #e use the optional configuration parts of
the %isualization noe $it to generate the arc :useArc41&o42Aroun,436ith:
5r$w7t*le; an the lines :use1ine41&o436ith5r$w7t*le an use1ine42&o43:
6ith5r$w7t*le;) For the connecting line -et#een the points calle 1 an = in the
figure -elo# #e nee the coorinate of the first point again in the ne#
m$pping1ist8 so #e map *CMAI@4REA. to Y38 *CMAI@4IMAGI@ARP to < E3
an CC*CMAI@4REA. to P3 an ena-le the line -! the part use1ine41&o44:
6ith5r$w7t*le)
Figure 35: 9xperiment <r( 2 with ,ifferent represent$tions of f(z); $nnot$te,
screenshot
The %isualization noe for the -lue point is efine analogousl!)
If the user no# interacts #ith the %isualization of the last extension of
experiment nr) =8 alrea! a %er! high loa of graphical o-9ects is present) In an
AR setup8 #here he0she can mo%e aroun the o-9ect an after ta$ing some time
to familiarize #ith the scene an learning the interrelations of the parameters8
the last extension can con%e! eep insight into the process of the iterati%e
calculation of
f ( z)=z
2
+c
)
,.2 12'an.om and 'ans.e Functions o. $igital Filtes
Section 1)=)6 alrea! mentione8 that a %isualization of a specific complex
function8 namel! the transfer function of a igital filter #oul -e helpful to
unerstan ho# to a9ust the filter parameters for a esire fre5uenc! omain
-eha%iour of a filter) In this section an example for such a %isualization #ith the
e%elope frame#or$ is presente)
First #e ha%e to loo$ at the mathematical -ac$grounG #e parameterize
the igital signal filter :for our experiment this #ill -e a finite impulse response
filter; -! efining its filter $ernel :also calle impulse response;8 a se5uence of
num-ers that can -e con%ol%e #ith the signal to appl! the effect K=L) A simple
example for such a $ernel might -e h(n) #ith h(0)=0.5 8 h(1)=0.33 8
h(2)=0.17 an h(n)=0 #here n0, 1, 2 ) The transfer function :the so calle
D>
E<transform of h(n) ; #hich is efine as H( z)=

n=

h( n)z
n
#oul e%aluate in
our example as
H( z)=h(0)z
0
+h(1)z
1
+h(2)z
2
=0.5+0.33z
1
+0.17z
2
)
This is the first function #e #ant to o-ser%e in our experiment)
Again a scene graph has to -e -uilt) As in section >)1 #e inclue a light
source an a texture s5uare #ith la-ele axes) First #e onl! ha%e a loo$ at the
magnitues of our function H( z) ) For this purpose a surface plot suffices) This is
%er! simple to efine in one SoComplexFunctionGraphVisualization noe :see
fig) 6>;G
its function9-$lu$tor contains a polar gri of %alues #ithin the proximit! of D
units aroun the origin
its function string #oul -e
Da##Ea##Ep17mulEp+7po,Ez7E51FFFF7mulEp(7po,Ez7E5+FFFFD
the three parameters ha%e to -e gi%en onl! #ith their real partG p$r$meter1:
0e$l set to 2)D8 p$r$meter20e$l to 2)66 an p$r$meter30e$l to 2)1/
The function string a-o%e represents p
1
+p
2
z
1
+p
3
z
2
) In orer to unerJ
stan its s!ntax #ith its man! parentheses8 a step#ise approach of #riting the
string Noutsie<to<insieO is recommeneG
:1; the term consists of t#o aitionsG Da##Ea##E.7.F7.FD
:=; more precisel!8 aitions of p1 an = prouctsG
Da##Ea##Ep17mulE.FF7mulE.FFD
:6; these proucts multipl! each a parameter #ith a po#erG
Da##Ea##Ep17mulEp+7po,E.FFF7mulEp(7po,E.FFFD
:3; these po#ers ta$e z to the po#er of <1 an <= respecti%el!8 #hich ma$es the
function string completeG
Da##Ea##Ep17mulEp+7po,Ez7E51FFFF7mulEp(7po,Ez7E5+FFFFD
The %isualization noe is finishe -! setting the m$pping1istG *CMAI@4REA. is
mappe to Y18 *CMAI@4IMAGI@ARP to Z E1 an CC*CMAI@4MAG@IT&*E
to P1) The la-el #oul no# -e occlue -! large parts of the surface) To rea it
an!#a! #e put a Material noe #ith the fiel tr$nsp$renc* set to 2)1 in front of
the %isualization noe8 #hich ena-les a slight transparenc!)
Figure 3": tr$nsfer function ex$mple screenshots
The transfer function clearl! sho#s t#o zeros an one pole a-o%e the origin8 for
more insight #e again exten our experiment as #ith the Manel-rot set example
of section >)1)
D/
To rea the fre5uenc! response of the filter #e nee to e%aluate
H( e
j D
)
instea of H( z) ) The term
e
j D
is a complex num-er c!cling aroun the unit
circle #ith the parameter D8 #hich relates to the fre5uenc! of the signal as
D=oT =2n
f
f
s
8 #here
f
s
is the sampling fre5uenc!) (e illustrate this -! a
%isualization noe almost ientical to the one sho#n a-o%e8 -ut #ith a ifferent
omain setG the points of the unit circle) Therefore #e use a SoComplex*omainJ
Su-Set41*4RegularCircle noe)
Figure 3%: freFuenc* response cur-e o-er the unit circle; screenshots
To rea this cur%e the user has to $no#8 that the fre5uencies #hose response
magnitue can -e rea from this cur%e are locate aroun the circle as follo#sG 2
+z is at 2X :a-o%e 1+0i ;8
1
4
f
s
is at B2X :a-o%e 0+1i ; an so on until
f
s
is at
6>2X co<locate #ith 2 +z) In the image sho#n a-o%e for our example filter
$ernel #e can rea8 that the lo# fre5uencies #ill ha%e a higher magnitue than
the fre5uencies aroun
1
2
f
s
#hich #ill -e ampe) So h(n) is a $in of a so<
calle Nlo# pass filterO)
*ispla!ing -oth %isualizations :surface an cur%e; com-ine #ill sho# the
interrelation of zero an poles of the transfer function an the fre5uenc!
response cur%e :fig) 6A;) The corresponing scene graph file contains the t#o
%isualization noes explaine a-o%e8 the! can use share instancing for the m$p:
ping1ist an fiel connections for the function an the parameters8 9ust the
,om$in7u!7et1ist has to -e reefine) To -etter istinguish -oth o-9ects from
each other8 ifferent colors shoul -e applie)
DA
Figure 3): com!ine, -iew of tr$nsfer function $n, freFuenc* response cur-e;
screenshots
@o# the engineer #ho #ants to esign a filter nees to a9ust the filter $ernel
interacti%el! an o-ser%e the %isual results) To achie%e this in an AR setup #e
coul use the personal interaction panel K6=L pro%ie in the Stuierstu-e
frame#or$ as a han<hel input e%ice #ith ragga-le %irtual controller
elements8 e)g) sliers as sho#n in fig) 6B)
Such sliers pro%ie num-ers :for our example the filter $ernel %alues
h(0) 8 h(1) an h(2) in the range [1, 1] ;8 that can -e fiel<connecte to our
function parameters) See the Stuierstu-e ocumentation K66L on ho# to setup
the ?I? :the example sho#n in fig) 6B re5uire setting the pen an pip parts of
the So&ser,it an the part contextGit(templ$te4ip7heet of the SoApplication,it;)
The example images -elo# sho# parameter settings for a high pass filter on the
left sie an a lo# pass filter on the right sie)
Figure 3+: inter$ction with the 484 (s$me -iewpoint); screenshot
As a last extension8 to o-ser%e ho# the phase of a signal is affecte in eJ
penenc! of the fre5uenc!8 arro#s that ispla! the arguments aroun the
fre5uenc! response cur%e shall -e ae :fig) 32;)
The corresponing %isualization noe #ill ha%e a SoComplex*omainSu-J
Set41*4RegularCircle omain set 9ust li$e the fre5uenc! response cur%e8 -ut
#ith a smaller num-er of samples aroun the circle) It shares the function an
the parameters from the existing noes an its m$pping1ist #ill ha%e the same
mappings to Y18 P1 an E18 -ut further mappings from CC*CMAI@4ARG&J
ME@T to ?CI@T1CBFECT4RCTATIC@4P an also from CC*CMAI@4ARG&J
ME@T to CC.CR4+) The point1D!Eect part no# has to inclue an arro# o-9ect8 a
DB
narro# Cone rotate to point into the positi%e x axis #ill suffice) Attention has to
-e pai to not forget to set the cur-eAs4oint7et fiel to TR&E8 -ecause no affine
transformation mappings :as ?CI@T1CBFECT4RCTATIC@4P; #ill -e applie to
the %ertices of a cur%e o-9ect8 the omain set has to -e treate as a num-er of
single points)
Figure 4/: tr$nsfer function -isu$liz$tion exten,e, !* $rrow plots; screenshot
To ra# a conclusion from this %isual experimentG Through an appropriate setup
of a scene for the complex function graph %isualization application8 the matter of
transfer functions an fre5uenc! response of igital finite impulse response filJ
ters in epenenc! of their filter $ernel can -e examine8 the interrelations can
-e unerstoo an filters #ith a esire -eha%iour can -e esigne -! interacting
#ith the parameters an o-ser%ing the results in real time)
>2
1 Conclusion
3.1 Findings
In this #or$ an extensi%e sur%e! of existing complex function graph %isualization
applications an relate #or$ has -een one that foun ifferent solutions for
%isual mappings from an a-stract set of num-ers to a graphical representation
that con%e!s important features of the complex function) Also concepts of using
augmente realit! technolog! to integrate %irtual o-9ects into real #orl en%iJ
ronments for eucational purposes #ere introuce in this context) Especiall!
#hen multiple users share an augmente space8 the -enefits of !namicall!
create %irtual o-9ects com-ine #ith the natural means of human communiJ
cation an interaction ser%e %er! #ell in a learning an teaching scenario)
A soft#are frame#or$ has -een e%elope8 that integrates a freel! confiJ
gura-le %isualization pipeline in a scene graph li-rar!) All steps of a complex
function graph %isualization from the e%aluation of the function for user efine
omain su-sets o%er an ar-itrar! %isual mapping of the a-stract ata to manifol
properties of a graphical o-9ect :shape an position8 shaing an e%en animation;
o%er configuration of aitional %isual clues8 li$e connection lines that %isualize
epenencies -et#een specific points in space8 to the renering can -e setup in
the scene graph) As the ata generation is also one in real time the user has
interacti%e control o%er a non<static set of ata8 #hich ena-les him0her to explore
mathematical interrelations of higher complexit!)
The feature of mapping function graph properties to time epenent
%isualization properties is a no%elt! not foun in the existing applications) As
each %isual mapping target has its o#n strengths an #ea$nesses8 the parameters
animation fre5uenc! an amplitue can cause high attention -! the e!e of the
o-ser%er -ut on7t allo# as exact conclusion to the actual %alue as for example
istance measures)
A concept of a ata flo# in multiple stages that allo#s user input in each
stage is propose8 that allo#s a high le%el of control at an minimal le%el of
necessar! recomputation of ata)
T#o en%ironment setups :an immersi%e one an a es$top setup; #ere
examine an their a%antages ha%e -een highlighte) (hereas the immersi%e
setup pro%ies an incompara-le spatial impression intensifie -! the possi-ilit!
to #al$ aroun the o-9ects co<locate #ith the real #orl8 the es$top setup
allo#s immeiate access to the frame#or$7s features #ith minimal har#are
re5uirements that suggest usage in classroom an home#or$ scenarios)
>1
T#o comprehensi%e usage examples on actual topics of applie complex
mathematics sho#e that scenes #ith complex function graph %isualization
o-9ects can -e setup %er! %ersatilel!) The! also sho#e that presenting too man!
features at once leas to a %isual o%erloa8 so a step<-!<step enhancement of
reuce scenes that onl! sho# selecte aspects of the function is propose)
It has -een sho#n8 that the process of calculating the Manel-rot set an
the relation of the $ernel of a igital finite impulse response filter an its transfer
function :incluing the fre5uenc! response; can -e presente purel! graphicall!
e%en #ithout re5uiring the o-ser%er to -e confient in complex calculus)
3.2 Futue 4o)
Cne t!pe of setup foun in a num-er of relate applications has not !et -een
follo#e in this pro9ectG a #e- application) It might -e interesting an it is
possi-le #ith the unerl!ing A?Is to set up a script on a ser%er #ith a #e- page
interface #here a user coul enter a complex function an %isualization
parameters into a ialog that in%o$es the generation of a VRM. file #hich he0she
can in%estigate from a #e- -ro#ser plug<in)
In the current %ersion of the application8 #hen changing the resolutions of
gris an cur%es at high spee some sta-ilit! issues arise) This -ug has -een
trac$e an locate -ut it is connecte to limitations of the Coin6* A?I) Fixing it
#oul re5uire a larger reesign of the frame#or$ from the current e%ent -ase
ata upates using Sensor o-9ects to a manage ata flo# organize -! a custom
scheuler)
As the soft#are resulting from this thesis pro9ect coul -e of interest to a
larger auience8 #riting a han-oo$ that #oul re5uire less pre%ious $no#lege
in setting up a scene graph #oul increase its possi-ilities for propagation) A
release %ersion of the -inaries #ith a short ocumentation an man! example
files is alrea! finishe)
>=
A%%endi& A2 A 0urve3 on Function 4lotters
A plethora of function plotter soft#are solutions has -een e%elope o%er the last
ecaes8 some of these tools are alrea! installe on man! computers8 a%aila-le
online or sol in soft#are shops) Reference K63L gi%es an o%er%ie# a-out current
plotting soft#are an the follo#ing su-sections sho# a num-er of examples)
*ifferent classifications of these programs #oul -e possi-le8 some
criteria to istinguish them areG
+ if programs plot onl! cur%es in =*8 or if the! also allo# graphs as 6* meshes
+ if the applications on7t onl! %isualize functions8 -ut generic ata sets as #ell
on the other han some applications on7t e%en ha%e a function e%aluator
inclue8 the! ha%e to -e fe #ith the graph ata from another program
+ if color can -e use per cur%e or per %ertex
+ if ispla! is interacti%e or 9ust generation of static pictures
+ if parameters can -e manipulate in real timeQ #ith a slier or a text fiel
+ if %ector plots are possi-le
+ supporte operating s!stems
+ licence t!pe8 price an support a%aila-ilit!
+ comprehensi%eness of ocumentation
+ source coe a%aila-ilit!
+ localization :language of user interface an ocumentation;
+ if it is an executa-le file or if a scripting language interpreter :li$e p!thon; is
re5uire
+ if it is a #e- -ase application an in this case if it is
ser%er sie :generate an image for a function an a set of parameters; or
client sie :9a%a0flash applet;
+ file import0export formats
Besies the eicate function plotter soft#are8 so<calle computer alge-ra
s!stems :CAS; an numerical anal!sis applications exist that offer a large set of
mathematics an computation functions -ut usuall! inclue plotting features as
#ell)
In this context also spreasheet applications ha%e to -e mentione8
espite that the! are the least specialize applications for function plotting in this
sur%e!8 the! are still often reference -ecause of their incompara-le spreaing on
a ma9orit! of es$top ?Cs) The! offer another #a! to generate ata through
e%aluation of a function an plot a graph of this ata)
Insie each section the lists are orere -! the num-er of references to
them foun uring this sur%e!)
>6
A.1 Function "lotte Applications
+ gnuplot K6DL
a comman<line ri%en interacti%e ata an function plotting utilit!
e%elope since 1BA>
+ .a-?lot K6>L
a ata anal!sis an %isualisation program
#ith an extensi%e parser for creating =8 6 functions
a ma9orit! of its features is relate to generic ata anal!sis
Figure 3=G .a-?lot screenshots
+ Grapher K6/L8 inclue #ith Apple CS Y 12)3 K6AL
a program to create = an 6 imensional graphs from real an complex
e5uations as #ell as from ifferential e5uations
function parameters can -e $ept separatel! from the function
a set of graphs can -e sho#n for a range of parameter %alues
an animation can -e generate for parameter %alues -eing interpolaJ
te in a gi%en range at a gi%en spee
successor of Cur%us ?ro Y soft#are :-ought -! Apple Inc) in =223;
>3
Figure 41: gnuplot screenshots
+ Cur%us ?ro K6BL
plot an e%aluate8 in =* an 6*8 explicit or implicit cur%es an graphs8
solutions of ifferential e5uations8 %ectorial or scalar fiels as #ell as
logical relations
preecessor of Grapher
+ pro Fit K32L
application for ata0function anal!sis8 plotting8 an cur%e fitting
emphasis on generic ata sets
>D
Figure 43: #r$pher screenshots
Figure 44: Cur-us 4ro screenshots
+ Sigma?lot K31L
comprehensi%e program to prouce high<5ualit! graphs of functions an
ata sets
emphasizes as #ell on generic ata sets
+ (inplot K3=L
general<purpose function plotting utilit!
=*8 6* an %ector plots
>>
Figure 45: pro Fit screenshot
Figure 4": 7igm$4lot screenshots
+ math3u= K36L
eucational mathematics s!stem
features parameter %alue sliers
+ ,aleiaGraph K33L
application for graphing8 regression anal!sis an statistical anal!sis
inclues a =* function plotter
+ *ea.ine K3DL
com-ines graph plotting #ith numerical Calculus
>/
Figure 4%: 6inplot screenshots
Figure 4): m$th4u2 screenshot
Figure 4+: G$lei,$#r$ph screenshot
+ *escartes K3>L
image8 ata8 an function plotter
runs on top of the ?!thon programming language
A.2 4e%2%ased Function "lottes
A.2.1 0erver 0ide 4lot Image 'enerators
+ MAFA function plotter K3/L
#e- interface for function plot images generate -! a ser%er sie ?+?
script
prouces static images
>A
Figure 5/: 5e$,1ine screenshots
Figure 51: 5esc$rtes screenshot
Figure 52: 'AFA function plotter we! p$ge
+ nanoGraph K3AL
concept similar to MAFA
A.2.2 ;avaAFlas# A%%lets
+ =* function graph plotter -! Arnt Br"nner K3BL
9a%a applet to ra# function graphs
>B
Figure 53: n$no#r$ph we! p$ge
Figure 54: function plotter $pplet screenshot
+ 6* function graph plotter -! Arnt Br"nner KD2L
similar to the applet sho#n a-o%e8 -ut here a 6*<plotter for functions
#here zSf:x8!;
+ mathe<online)at function plotter KD1L
another 9a%a applet to ra# =* function graphs
/2
Figure 55: 35 plotter $pplet screenshot
+ %i-os plotter KD=L
a =* function plotter implemente in Macromeia flash
A.3 Geneic $ata "lottes
+ Crigin KD6L
professional graphing an ata anal!sis soft#are for scientists an
engineers
exhausti%e set of generic ata set anal!sis features
/1
Figure 5": m$the=online($t function plotter $pplet screenshot
Figure 5%: -i!os plotter fl$sh $pplet screenshot
+ Hti?lot KD3L
ata anal!sis an scientific plotting
aims to -e an open source8 platform inepenent clone of Crigin
+ Grace KDDL
=* plotting tool
+ $st KD>L
/=
Figure 5): Drigin screenshots
Figure 5+: Hti4lot screenshots
Figure "/: #r$ce output im$ges
plotting an ata %ie#ing program
+ ,Chart KD/L
charting tool of the ,*E ,Cffice pac$age
+ ploticus KDAL
program for proucing plots an charts from ata
/6
Figure "1: .st screenshots
Figure "3: ploticus output im$ges
Figure "2: GCh$rt screenshot
A.& Mat! "ac)ages
A.!.1 5at#ematica
Mathematica KDBL is a #iel!<use computer alge-ra s!stem -! (olfram
Research Inc)) Its #e- site escri-es it asG NMathematica seamlessl! integrates a
numeric an s!m-olic computational engine8 graphics s!stem8 programming
language8 ocumentation s!stem8 an a%ance connecti%it! to other
applications)O) The output capa-ilities of this s!stem inclue =* an 6* plotting
as #ell as e%en soun output)
A.!.2 5atlab
Matla- K>2L is a numerical computing en%ironment an programming language)
NCreate -! The Math(or$s8 MAT.AB allo#s eas! matrix manipulation8 plotting
of functions an ata8 implementation of algorithms8 creation of user interfaces8
an interfacing #ith programs in other languagesO K>1L)
It inclues a set of plotting functions that are especiall! po#erful in
connection #ith its programming language)
/3
Figure "4: '$them$tic$ plotting
screenshots
Figure "5: '$tl$! plotting screenshots
A.+ Speads!eets
E%en this t!pe of applications allo# function plotting8 -ut a num-er of steps to
generate the ata an to select a proper graphing st!le :line chart; has to -e one
manuall!)
+ Microsoft Excel K>=L
a spreasheet program that features an intuiti%e interface an capa-le
calculation an graphing tools
+ CpenCffice)org Calc K>6L
a spreasheet similar to Microsoft Excel8 #ith a roughl! e5ui%alent range
of features
Figure "%: DpenDffice(org C$lc screenshots
+ Gnumeric K>3L
a spreasheet that is part of the G@CME es$top en%ironment
/D
Figure "": 'icrosoft 9xcel screenshots
/>
Figure "): #numeric screenshot
List of References
K1L +) ,aufmann an *) Schmalstieg8 WMathematics An Geometr! Eucation (ith
Colla-orati%e Augmente Realit!W8 Computers [ Graphics8 =/:6;8 =226)
K=L &) E\lzer8WFunamentals of *igital Signal ?rocessingW8 in W*AFY < *igital Auio
EffectsW8 Fohn (ile! [ Sons8 .t) :pu-lisher;8 pp) 1<628 =22=)
K6L #e- page8 W.ascaux Soft#areW8 last %isit 1>)23)=22>8
httpG00###)lascauxsoft#are)com0
K3L #e- page :#e-archi%e;8 Wg:z;G a tool for %isual complex anal!sisW8 last %isit
1>)23)=22>8
httpG00#e-)archi%e)org0#e-0=22312121A336/0httpG00###)cs)-ro#n)eu0people0l
a0ma1=>0
KDL #e- page8 WReal<Time Eooming Math Engine :rtzme;W8 last %isit 1>)23)=22>8
httpG00rtzme)sourceforge)net0
K>L #e- page8 WA Complex Function Vie#er :Fa%a;W8 last %isit 1>)23)=22>8
httpG00sunsite)u-c)ca0.i%ingMathematics0V221@210&BCExamples0ComplexVie#er
0complex)html
K/L #e- page8 WBom-elli < a FAVA Complex Function Vie#erW8 last %isit 1>)23)=22>8
httpG00###)mat)ufpe)-r0]ssc0-om-elli0
KAL #e- page8 WComplex Function GrapherW8 last %isit 1>)23)=22>8
httpG00###)math)$su)eu0]-ennett09omacg0
KBLG George A-o an ?aul Gofre!8 WTa-le of Conformal Mappings &sing
Continuous ColoringW8 #e- pu-lication8 last %isit 1>)23)=22>8
httpG00m!)fit)eu0]ga-o0
K12LG *ouglas @) Arnol8 WGraphics for Complex Anal!sisW8 #e- pu-lication8 last %isit
1>)23)=22>8 httpG00###)ima)umn)eu0]arnol0complex)html
K11LG Tom Banchoff an *a%ie Cer%one8 W&nerstaning Complex Function
GraphsW8 #e- pu-lication8 last %isit 1>)23)=22>8
httpG00###)geom)umn)eu0]p%c0CVM01BB/0210ucfg0#elcome)html
K1=LG Fran$ A) Farris8 WComplex Function VisualizationW8 #e- pu-lication8 last %isit
1>)23)=22>8 httpG00###<acc)scu)eu0]ffarris0complex)html
K16L F) A) Farris8 WRe%ie# of Visual Complex Anal!sis -! Tristan @eehamW8
American Mathematical Monthl! %ol) 12D8 Fune<Ful! issue8 1BBA)
K13L T) @eeham8 WVisual Complex Anal!sisW8 Clarenon ?ress8 Cxfor8 1BB/)
x
K1DL #e- pageQ ?aul Fish-ac$8 WResources for the Teaching of Complex Varia-lesW8
last %isit 1>)23)=22>8 httpG00facult!)g%su)eu0fish-acp0complex0complex)htm
K1>LG +ans .unmar$8 WVisualizing complex anal!tic functions using omain
coloringW8 #e- pu-lication8 last %isit 1>)23)=22>8
httpG00###)mai)liu)se0]halun0complex0complex)html
K1/L #e- pageQ M) ?ro-st8 WThe MathMap GIM? ?lug<InW8 last %isit 1>)23)=22>8
httpG00###)complang)tu#ien)ac)at0]schani0mathmap0
K1ALG Martin ?ergler8 W@e#ton7s metho8 Fulia an Manel-rot sets8 an complex
coloringW8 #e- pu-lication8 last %isit 1>)23)=22>8
httpG00users)arczip)com0pergler0mp0ocuments0ptr0
K1BL #e- pageQ Aguinalo Ro-inson e Souza8 WFunctions of one Complex Vara-le <
Visualization an Graphical InterpretationW8 last %isit 1>)23)=22>8 httpG00sorzal<
f)fc)unesp)-r0]e%alo0en0inex)htm
K=2L R) Azuma8 WA Sur%e! of Augmente Realit!W8 ?RESE@CEG Teleoperators an
Virtual En%ironments8 %ol) >8 pp) 6DD<6AD8 1BB/)
K=1L ?) Milgram8 +) Ta$emura8 A) &tsumi8 an F) ,ishino8 WAugmente realit!G a
class of ispla!s on the realit!<%irtualit! continuum8W ?roceeings of
Telemanipulator an Telepresence Technologies8 pp) =A=<=B=8 1BB3)
K==L +) ,aufmann8 WGeometr! Eucation #ith Augmente Realit!W8 ?h* thesis8
httpG00###)ims)tu#ien)ac)at0pu-lication4etail)php^ims4iS16D8 =223)
K=6L G) TaxMn an A) @ae%e8 WC!-erMathG Exploring Cpen Issues in VR<Base
.earningW8 SIGGRA?+ =221 Conference A-stracts an Applications8 pp) 3B<D18 =221)
K=3L C) *ee8 M) C) Salzman8 an R) B) .oftin8 WScienceSpaceG Virtual Realities for
.earning Complex an A-stract Scientific ConceptsW8 ?roceeings of IEEE VRAIS
7B>8 pp) =3><=D=8 1BB>)
K=DL A) Peh8 WVRMathG $no#lege construction of 6* geometr! in %irtual realit!
micro#orlsW8 C+I 723 extene a-stracts on +uman factors in computing s!stems8
pp) 12>1<12>=8 =223)
K=>L M) ,al$usch8 WCash Flo# < A Visualization Frame#or$ for 6* Flo# *ataW8
iploma thesis8 httpG00###)stuierstu-e)org0st-<thesis)php8 =22D)
K=/L Fosie (ernec$e) The In%entor MentorG Extening Cpen In%entor) pu-lG
Aison<(esle!8 =n eition eition8 1BB6)
K=AL *) Schmalstieg8 A) Fuhrmann8 G) +esina8 E) S) Szala%_ri8 .) M) Encarnacao8 M)
Ger%autz8 an () ?urgathofer8 WThe Stuierstu-e augmente realit! pro9ectW8
?resence<Teleoperators an Virtual En%ironments8 %ol) 118 pp) 66<D38 =22=)
K=BL G) Reitma!r an *) Schmalstieg8 WAn Cpen Soft#are Architecture for Virtual
Realit! Interaction8W in ACM S!mposium on Virtual Realit! Soft#are [ Technolog!
=221 :VRST =221;) Banff8 Al-erta8 Canaa8 =221)
xi
K62L R)B) +a-er an *)A) @c@a--8 WVisualisation IiomsG A Conceptual Moel for
Scientific Visualisation S!stemsW8 Visualisation in Scientific Computing8 G)M)
@ielson an B) Shri%er es)8 IEEE Computer Societ! ?ress8 1BB2)
K61L +) Schumann an () Mueller8 WVisualisierungW8 Springer8 =222)
K6=L S) Szala%_ri an M) Ger%autz8 WThe ?ersonal Interaction ?anel < A T#o<+ane
Interface for Augmente Realit!8W Computer Graphics Forum8 %ol)1>8 pp) 66D<63>8
1BB/)
K66L #e- page8 WStuierstu-e *ocumentationW8 last %isit 1>)23)=22>8
httpG00###)stuierstu-e)org0oc0st-0
K63L #e- page :#i$i;8 W.ist of information graphics soft#are < ?lottingW8 last %isit
1D)23)=22>8 httpG00en)#i$ipeia)org0#i$i0.ist4of4graphing4soft#are`?lotting
K6DL #e- page8 Wgnuplot homepageW8 last %isit 1D)23)=22>8 httpG00###)gnuplot)info0
K6>L #e- page8 W.a-?lot +omepageW8 last %isit 1D)23)=22>8
httpG00la-plot)sourceforge)net0
K6/L #e- page :#i$i;8 WGrapherW8 last %isit 1D)23)=22>8
httpG00en)#i$ipeia)org0#i$i0Grapher
K6AL #e- page8 WApple < Mac CS YW8 last %isit 1D)23)=22>8
httpG00###)apple)com0macosx0
K6BL #e- page8 WCur%us ?roW8 last %isit 1D)23)=22>8 httpG00###)arizona<
soft#are)ch0classic0cur%uspro0en0
K32L #e- page8 WHuantumSoft an pro FitG plotting8 ata anal!sis an cur%e fitting for
Mac CSW8 last %isit 1D)23)=22>8 httpG00###)5uansoft)com0
K31L #e- page8 WS!stat Soft#are Inc) < Sigma?lotW8 last %isit 1D)23)=22>8
httpG00###)s!stat)com0proucts0Sigma?lot0
K3=L #e- page8 W(inplotW8 last %isit 1D)23)=22>8
httpG00math)exeter)eu0rparris0#inplot)html
K36L #e- page8 Wmath3u=W8 last %isit 1D)23)=22>8 httpG00###)math3u=)e0
K33L #e- page8 W,aleiaGraph < scientific graphing8 cur%e fitting8 ata anal!sis
soft#areW8 last %isit 1D)23)=22>8 httpG00###)s!nerg!)com0$graph)htm
K3DL #e- page8 WSol%e e5uations8 plot graphs free) *ea.ine Cn.ine eucational
soft#areW8 last %isit 1D)23)=22>8 httpG00ealine)6x)ro0
K3>L #e- page8 WescartesW8 last %isit 1D)23)=22>8 httpG00escartes)sourceforge)net0
K3/L #e- pageQ *aniel Schmit<.oe-e8 WFunction plotter < ?lot !our graphs an
charts easil!aW8 last %isit 1>)23)=22>8 httpG00###)mathe<fa)e0en
xii
K3AL #e- page8 WnanoGraphKBETALW8 last %isit 1>)23)=22>8
httpG00nanographer)nanosouffle)net0
K3BL #e- pageQ A) Br"nner8 WFun$tionsgraphen plotten < *er Fun$tionsplotterW8 last
%isit 1>)23)=22>8 httpG00###)arnt<-ruenner)e0mathe09a%a0plotter)htm
KD2L #e- pageQ A) Br"nner8 W6*<?lotterW8 last %isit 1>)23)=22>8 httpG00###)arnt<
-ruenner)e0mathe09a%a0plotter6)htm
KD1L #e- page8 Wmathe online Fun$tions<?lotterW8 last %isit 1>)23)=22>8
httpG00###)mathe<online)at0fplotter0fplotter)html
KD=L #e- pageQ +) ,raub8 W###)%i-os)e < Fun$tionsplotterW8 last %isit 1>)23)=22>8
httpG00###)hutschorf)e0flash0plotter)htm
KD6L #e- page8 WCrigin.a- < Crigin < scientific graphing8 ata anal!sis8 cur%e fitting
soft#areW8 last %isit 1>)23)=22>8 httpG00###)originla-)com0
KD3L #e- page8 WHti?lotW8 last %isit 1>)23)=22>8
httpG00soft)proinepenent)com05tiplot)html
KDDL #e- page8 WGrace +omeW8 last %isit 1>)23)=22>8 httpG00plasma<
gate)#eizmann)ac)il0Grace0
KD>L #e- page8 W$st < plots scientific ataW8 last %isit 1>)23)=22>8 httpG00$st)$e)org0
KD/L #e- page8 WThe ,Cffice ?ro9ect < ,ChartW8 last %isit 1>)23)=22>8
httpG00###)$office)org0$chart0
KDAL #e- page8 WploticusW8 last %isit 1>)23)=22>8 httpG00ploticus)sourceforge)net0
KDBL #e- page8 WMathematicaG The (a! the (orl CalculatesW8 last %isit 1>)23)=22>8
httpG00###)#olfram)com0proucts0mathematica0inex)html
K>2L #e- page8 WThe Math(or$s < MAT.ABc < The .anguage of Technical
ComputingW8 last %isit 1>)23)=22>8 httpG00###)math#or$s)com0proucts0matla-0
K>1L #e- page :#i$i;8 WMAT.ABW8 last %isit 1>)23)=22>8
httpG00en)#i$ipeia)org0#i$i0Matla-
K>=L #e- page8 WMicrosoft Cffice CnlineG Excel =226 +ome ?ageW8 last %isit
1>)23)=22>8 httpG00office)microsoft)com0excel
K>6L #e- page8 WCalcW8 last %isit 1>)23)=22>8
httpG00###)openoffice)org0prouct=0calc)html
K>3L #e- page8 WG@CME Cffice 0 GnumericW8 last %isit 1>)23)=22>8
httpG00###)gnome)org0pro9ects0gnumeric0
xiii

Das könnte Ihnen auch gefallen