160 likes | 298 Views
GeoSVG. A Web-oriented Dynamic Geometry Software. Introduction to GeoSVG. GeoSVG is a Dynamic Geometry Software (DGS) to support diagramming, interactive learning, and easy authoring of geometrical manipulatives The authoring environment is written in SVG and Javascript
E N D
GeoSVG A Web-oriented Dynamic Geometry Software
Introduction to GeoSVG • GeoSVG is a Dynamic Geometry Software (DGS) to support diagramming, interactive learning, and easy authoring of geometrical manipulatives • The authoring environment is written in SVG and Javascript • SVG, which stands for Scalable Vector Graphics, is an XML application • Javascript manipulates the object model of an SVG document • Complete Web Orientation • Both authoring and viewing manipulatives can be done online via browsers
GeoSVG Architecture and Components • The GeoSVG toolkit --- an SVG-coded library for authoring (creating, editing, publishing plane geometry manipulatives and for their display, animation, and user interaction). • The GeoSite --- a Web site that makes the GeoSVG toolkit available and stores manipulatives for access, searching, and sharing.
GeoSite: Server-side Support for GeoSVG • Virtual hard drive management • Logged-in user can create folders under his/her account and store manipulatives under any folder • Direct Online Publishing of Manipulatives • Users can create new manipulative, edit existing manipulative or delete a manipulative • Manipulative sharing • A user can link or copy other user’s manipulative • Access control can be defined • Convenient search • Search is based on manipulative classification, keywords assigned by the author and text within each manipulative • Manipulative can be embedded in pages outside GeoSite
Authoring Supports • Drawing primitives: Making it simple to create basic geometric shapes such as points, lines (segments, rays and vectors), circles (ellipses and arcs), polygons, etc. • Geometric object construction: Constructing a new geometric object by combining existing objects that are subject to user-specified rules and constraints. For example, picking a point and a line to construct a new line through the point parallel to the existing line. • Measurement: Measuring length, slope, radius, distance, area, circumference, perimeter, angle, coordinate positions. • Loci and Envelops: Constructing loci of moving points and envelops of moving lines. • Animation: Visualizing the movement of objects to illustrate concepts much better than still pictures.
Authoring Supports (cont.) • Iteration: Generating a sequence of objects according to iteration rules defined by a user. • Calculation: A dynamic calculator updates results when statuses of dependent objects change. • Graphing: Plotting points and function graph in coordinate systems. • Geometric transforms: Allowing users to define center and mirror for translation, reflection, dilation, and rotation of objects. • Defining Macros: Condensing a series of steps in to one software command. • Graphical User Interface(GUI): Combining menus, buttons, mouse actions, and keyboard inputs to provide an intuitive and convient authoring environment.
Three Modes of a Manipulative • Three groups of users • Teachers who are very familar with the software • Teachers who want to use the manipulative • Students • Authoring mode • An author has the comprehensive authoring supports • Configuration mode (still under study) • A user can customize a manipulative in a configuration page • Manipulation mode • A user can do basic operations such as object dragging and data entry • In case some authoring mode operations are needed for a manipulative, the author in the authoring mode can export them as buttons or menu items.
Object-oriented Design and Implementation of GeoSVG • Object-oriented components • The classes MyMenu, MyButtonBar, MyButton, MyInput, MySelect, etc. to support a set of GUI widgets • The class GeoObject and its subclasses whose instances represent the objects an author creates on the canvas. • The class Canvas whose instance represents a bounded area on which a user can create and manipulate objects. • The class System which provides many useful utilities. • The class EventHandler which handles mouse and keyboard events. • The classes Property, TabGroup and Tab for display and configuration of properties of an object. • The class Calculator which supports dynamic calculation.
Property Box of an Object • An interface language, which is similar to html forms, is designed for display and configuration of properties of an object • Each GeoObject is associated with at least one piece of codes as below. This describes one tab in the property box. • Example: setting the rotation angle of an axis <tab name=“angle” > <!-- defines the tab name --> <text text=“The angle at which the axis rotates:” x=“0” y=“1” /> <!-- shows static text --> <valueSrc x=“0” y=“3” prehandler=“Axis.anglePrehandler()” posthandler=“Axis.anglePosthandler()” / <!-- property defined by the calculator --> </tab> ValueSrc in the example defines a special control that corresponds to a computation defined by the dynamic calculator. • This interface language will also be used for incorporating third-party manipulatives.
Dynamic Calculator • The dynamic calculator can • Set properties of an object • Define relations between objects • Define math functions that can use existing objects as coefficients and parameters • Create new measurements • Result can be updated dynamically • ValueSrc control defined in the interface language will invoke the dynamic calculator to configure an object
Additional features of GeoSVG • Submission-type manipulatives • The author exports an “Submit” button into the manipulative during authoring. • A thread led by the original manipulative is created under the author’s account on GeoSite. • All of the submissions are placed under this thread. • Authoring assistance such as built-in functions for duplicating a group of objects • Multiple coordinate systems • Rulers and Protractor (size configurable) • Multiple canvases will be provided in the future
Future work • Optimize algorithms (refering to an open source DGS system C.a.R.) • Implement Undo/Redo, Macro, and Loci • Test the interface language to integrate third party manipulatives • Re-implement GeoSite using getURL and postURL instead of inter-document communication to save a manipulative • Design and implement the configuration mode • Provide interface to interact with WME • Have a stable version around September