Abstract

Spherical Easel (https://easelgeo.app) is a free web application for researching, teaching, and learning spherical geometry written in Typescript. The authors have created an open-source code base in VueJS v3 that combines several design patterns, global data structures, and cloud-based storage for storing and retrieving spherical constructions. Spherical constructions are made up of interdependent geometric objects (like lines and circles). Interdependencies means that while being moved, updates to a single object must propagate to other dependent objects. The application stores the dependency structure using a directed acyclic graph to allow these updates to propagate correctly. In this paper, we describe how Spherical Easel employs the Command and Composite design patterns (fully integrated with various VueJS supporting libraries) to maintain a history of construction edits, allowing users to undo and redo edits, and to store a final construction script in a cloud database. To guarantee correct rendering of the spherical objects when loading a construction, the stored script also preserves the structure of the directed acyclic graph. The construction script parser built is also designed to take advantage of the (Composite) Command design pattern. Using this innovative design, adding new object types does not require a major redesign of the script parser. Keywords: Spherical geometry, software design patterns, web application

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.