170 likes | 637 Views
GeoSVG: An Interactive Geometry Authoring Tool. Existing Interactive Geometry Software. Geometer’s SketchPad Cabri Geometry II Can export file to TI calculator C.a.R. (open source, in Java) Kseg (open source, in C++) Cinderella (in Java)
E N D
Existing Interactive Geometry Software • Geometer’s SketchPad • Cabri Geometry II • Can export file to TI calculator • C.a.R. (open source, in Java) • Kseg (open source, in C++) • Cinderella (in Java) • Euclidean Geometry, hyperbolic geometry, elliptic geometry and projective geometry • Euklides (in Java) • Can deal with conics (hyperbola, parabola, ellipse)
What can Interactive Geometry Software do • Dynamic geometric object construction and manipulation • All mathematical relations are preserved while objects are being dragged by mouse or values are changing. • Parallelogram / Box-and-Whisker examples • Transformation of geometric objects • Translate, Rotate, Dilate, and Reflect • Half Head.gsp • Measurement • Area.gsp
What can Interactive Geometry Software do (cont.) • Animation • Parametric Functions.gsp • Calculation • A dynamic calculator • Analytic Geometry • Plot function • Coordinate System View.gsp • Calculus • Integration.gsp • Compute derivative
What can Interactive Geometry Software do(cont.) • Locus • a totality of all points, satisfying the certain given conditions • Thought Experiment.gsp • Iteration • Geometric iteration and numerical iteration • Integration.gsp • Fractal Gallery.gsp • Script/Macro • A sequence of steps that can be defined as a new function • Sample Tools.gsp
Deficiency of Geometer’s SketchPad • No separate view of authoring phase and manipulation phase • Students need to learn the software or may be deviated from the what a teacher has constructed. • SketchPad can export what is constructed as a Java applet, which is used in the manipulation phase. However, the applets only have a subset of the capability of the software.
Deficiency of Geometer’s SketchPad (cont.) • No special object types to ease composing • Philosophy of SketchPad: Many or Few • This is an advantage, but also a disadvantage • Lots of hidden objects to help construct a manipulative • Example: Hard to copy a shape • No Linux version • Some other small deficiency • No user input • No function to handle a sequence of numbers • Not very good support for multiple coordinates systems • No ruler and Protractor
Deficiency of Geometer’s SketchPad (cont.) • Big Deficiency: NOT web-oriented • A tool called JavaSketchPad can convert what Geometer’s SketchPad generates to Java applets. However: • Some constructions such as iteration cannot be converted. • User can only manipulate objects, but cannot construct new objects. • The applet supports much fewer mathematical constructions than the desktop software. • Author needs to have the software installed in his/her machine. Then the author needs to know how to publish a web page online, and may also need to know how to embed an applet in a web page. • This small obstacle may stop many teachers from using the software
GeoSVG • Written in SVG and Javascript • SVG, which stands for Scalable Vector Graphics, is an application of XML that makes it possible to represent graphic information in a compact, portable form • Inherent web-oriented • What GeoSVG generates automatically can be viewed and manipulated online • The whole GeoSVG authoring tool can be a web page • User does NOT need to install software and compose web pages • We may set up a web site for GeoSVG users. File open, File edit, and File save are all online.
GeoSVG (cont.) • Platform independent (Windows/Mac/Linux) • Can also be developed into a standalone application using Batik • Batik gives developers a set of core modules which can be used together or individually to support specific SVG solutions. Examples of modules are the SVG Parser, the SVG Generator and the SVG DOM. • Manipulatives can have the full power of the capacity of GeoSVG by exporting menu functions
Algorithms • All the objects form an acyclic directed graph • Ancestors/Parents/Children • Independent Points are the source of the graph • A change of a top-level object invalidates all its descendents. All descendents need to recalculate its status. • Geometric Reversibility: a change of a descendent affects its ancestor(s). • Selection of a segment is equivalent to selection of two end points.
Algorithms (cont.) • Philosophy: Many or few? What objects should be atoms? • Special objects to help ease composing • Pivot Point: ease the work to copy a shape • Angle Point: fixed angle and changeable distance. Help to create a axis. • Useful Action Buttons: • Show/Hide: Show or Hide a group of objects • Movement: Animation • Presentation: Execute a sequence of action buttons • CircularEvents: Circular execution of a sequence of action buttons. Execute one per button click.
Algorithms (cont.) • As a geometry software, there are lots of mathematical computation algorithms. • Translate • Rotation • Intersection • Parallel/Perpendicular • Determine if a point is on an object (line/circle/polygon) • And etc.
Difficulty in Developing GeoSVG • GeoSVG is currently an online authoring tool, which cannot save files to local disk, and cannot utilize copy-and-paste provided by OS. • Current Solution: Under Windows IE, the data can be exported to an textarea. User needs to copy and save it. • Future Solution: next slide • SVG-XHTML communication problem. • http://www.svg.org/wiki/index.php/CrossBrowserScripting • With all the existing Interactive Geometry Software, do I still need to develop a new one? • Applet is not a problem. Once it’s loaded, it’s also fast.
Batik SVG Toolkit • Batik is a Java(tm) technology based toolkit for applications or applets that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation or manipulation. • Examples of modules are an SVG parser, an SVG generator and an SVG DOM implementations. • Batik contains a Swing component that can add SVG viewing capability to all Java technology applications or applets. • With Batik, a desktop software of GeoSVG can be developed.
What is GeoSVG capable of now • Create basic shape: point, line, circle, polygon • Measurement: length, slope, distance, angle, area, perimeter, circumference, coordinates • Calculation: sorting a sequence of values, max, min, Q1, Q3, mean, count • Ruler, Protractor, and Simple Grids • Simple animation • Action Buttons / User Input / Plain Text • Show/Hide Object, and Set Object(s) Manipulable • Save what is constructed as a string • Export menu functions: Manipulatives have all the capability of the authoring environment.
Future Work • Learn more advanced SVG topics • Learn more XML technology and browser plugin technology • Optimize several algorithms • Implement more functions for analytic geometry • Implement algorithms for locus, script, and iteration. • Integrate Batik with GeoSVG