Abstract There is an existing program that allows students to visualize geometric shapes that a hand-drawn illustration just can’t match. Professor Cervone.

Slides:



Advertisements
Similar presentations
Interaction Design: Visio
Advertisements

WHAT IS ELINK? Thermoflow, Inc.
Grey Level Enhancement Contrast stretching Linear mapping Non-linear mapping Efficient implementation of mapping algorithms Design of classes to support.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Technical BI Project Lifecycle
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
1 A Web-Based Integral Evaluator: A Demonstration of the Successful Integration of WebEQ, Maple, and Java Wanda M. Kunkle Department of Mathematics & Computer.
ART: Augmented Reality Table for Interactive Trading Card Game Albert H.T. Lam, Kevin C. H. Chow, Edward H. H. Yau and Michael R. Lyu Department of Computer.
Theoretical & Industrial Design of Aerofoils P M V Subbarao Professor Mechanical Engineering Department An Objective Invention ……
Systems Analysis I Data Flow Diagrams
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
1 iSee Player Tutorial Using the Forest Biomass Accumulation Model as an Example ( Tutorial Developed by: (
by Chris Brown under Prof. Susan Rodger Duke University June 2012
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Team 1 Jesus Weibo Mina Yunming. Client’s Needs  Short term, medium term, long term plans  Simulation of energy system to provide affordable future.
Introduction In recent years, products are required to follow the trend of fashion. It is very popular in using freeform surface to design the model of.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Rendering Adaptive Resolution Data Models Daniel Bolan Abstract For the past several years, a model for large datasets has been developed and extended.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
© The McGraw-Hill Companies, 2006 Chapter 4 Implementing methods.
1 Quality Center 10.0 NOTE: Uninstall the current version of QC before downloading QC All QC 10.0 documents can be located on the BI Shared Services.
Presented by: Mohammad Shabbir Hasan REPRESENTING GEOMETRIC CONSTRUCTIONS AS PROGRAMS Author: Bruce Sherin School of Education and Social.
Smart Forms 2010 CAMIS Conference July 29,  Session Overview  Smart Form Process Flow  Understanding the Initial Procedures  Scan Process in.
(c) University of Washington08-1 CSC 143 Models and Views Reading: Ch. 18.
Process Control. Module 11 Process Control ♦ Introduction ► A process is a running occurrence of a program, including all variables and other conditions.
Shadows via Projection Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Wednesday, November 5, 2003.
Summer Computing Workshop. Introduction  Boolean Expressions – In programming, a Boolean expression is an expression that is either true or false. In.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many others 1.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
FUNCTIONS AND MODELS 1. The fundamental objects that we deal with in calculus are functions.
Abstract ESOLID is a computational geometry system that performs boundary evaluation using exact computation. Boundary Evaluation Exact computation Problem.
1 FUNCTIONS - I Chapter 5 Functions help us write more complex programs.
CSE & CSE6002E - Soft Computing Winter Semester, 2011 Neural Networks Videos Brief Review The Next Generation Neural Networks - Geoff Hinton.
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
© TMC Computer School HC20203 VRML HIGHER DIPLOMA IN COMPUTING Chapter 2 – Basic VRML.
Image Segmentation in Color Space By Anisa Chaudhary.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
1 CA203 Presentation Application Reviewing and Sharing a Presentation Lecture # 11.
Internal and Confidential Cognos CoE COGNOS 8 – Event Studio.
MBAT User Workflows View an Atlas Open Data Upload Data Run a Query –Search Data Further Examination Microarray Data Further Examination of 2D Data –Search.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Multiplication of Common Fractions © Math As A Second Language All Rights Reserved next #6 Taking the Fear out of Math 1 3 ×1 3 Applying.
Application: Multiresolution Curves Jyun-Ming Chen Spring 2001.
Introduction to Computer Programming - Project 2 Intro to Digital Technology.
1 Prof. Dr. Nizamettin AYDIN
Executive Summary - Human Factors Heuristic Evaluation 04/18/2014.
M1G Introduction to Programming 2 2. Creating Classes: Game and Player.
Warm Up 1/4/15 Turn to a neighbor and tell them about a fun experience you had over break. Be prepared to share with the class!
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
1 Berger Jean-Baptiste
Graphics Programming. Graphics Functions We can think of the graphics system as a black box whose inputs are function calls from an application program;
CSE 110: Programming Language I Matin Saad Abdullah UB 404.
Main characteristics of Vector graphics  Vector graphics provide an elegant way of constructing digital images (diagrams, technical illustration and.
ITK 9.3. Level Set Segmentation Shape Detection Segmentation
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
John D. McGregor Session 9 Testing Vocabulary
System Design.
John D. McGregor Session 9 Testing Vocabulary
Controlled Topology Simplification (Voxel Based Object Simplification)
© University of Wisconsin, CS559 Fall 2004
John D. McGregor Session 9 Testing Vocabulary
Visualizing Geometric Shapes
Model, View, Controller design pattern
ECE 352 Digital System Fundamentals
Presentation transcript:

Abstract There is an existing program that allows students to visualize geometric shapes that a hand-drawn illustration just can’t match. Professor Cervone uses this program in his multi-variable calculus class to help students understand the geometry behind the functions they use, like the ones shown on the right. One part of this existing program is Geomview, a tool that displays geometric objects. The other part of the program is a suite of modules called StageTools. These modules create and manipulate the geometric objects that are displayed in Geomview. The problem is it takes too much time and effort to set-up the program, which prevents most people from using this tool. I would like all students and professors to be able to use the program, so I am redesigning the program to run in an applet that can be put on the web. The new version will no longer need Geomview to display the images. All the original features will be implemented in the new program, and new features can be easily added. A redesign of the whole program would take many years, so I am redesigning one module of StageTools, called CenterStage. This module creates the geometric objects that will later be manipulated and displayed. Essentially, I am working on the back-end computational models of the geometric objects. My project is designed to be more flexible then the original program, so new features can be implemented. Even uses someone may want to have in the future can be applied with a minimal amount of extra work. My project does not complete the whole new program, but it allows future students to finish the program later on, without changing my design. The project will help make this type of math tool more accessible to students and professors. DomainCreator This is the type of display that the geometric object will be seen as. It can be a grid, filled-in patches, stripes, single points, etc. The user will input the range of values in which the geometric object will lie, and specify how many points in that range will be used. This class generates 2-D points and the proper connections between points, as designated by the type of display. MapSetToSet A function just maps one set of points to another set. So, a surface and a curve are just different types of mappings. A SurfaceClass and a CurveClass would just take the set of points, generated by the DomainCreator and map the points to a 3-D set of points. Hence, these classes have been abstracted so that any geometric object’s function can be represented by this class. MapSetToSet only manipulates the input points. The connections between the points, however, are not modified in any way by this mapping process. Polyhedron The polyhedron is defined by a set of points and a set of connections. The user explicitly determines the points and connections, which are then stored in the Polyhedron object as a Data object. Data This class holds the set of points and set of connections on those points. Then, the modified version of the Data is passed along the pipeline until it is passed to the viewer, which will display the image. User Input The user will use a GUI to create a geometric object. But, there will also be interfaces, such as sliders, check boxes, and type-in boxes, that will change the object’s parameters once it has been created. Before a function-defined geometric object, like a surface, can be created, the user must specify a domain and identify how detailed he/she wants the image. A domain consists of multiple ranges, one for each parameter of the geometric object’s function. A surface has two parameters, so it will need two ranges, while a curve will only need one. A range is a set of three numbers, a minimum value for the parameter, a maximum value for the parameter, and the number of intervals that will be calculated inside that range. The level of detail is dependent upon the number of points used in the domain. If the user wants more detail, he/she should increase the number of intervals in the domain. Transform - Color / Rotate / Slice / … There are many other operations that can be done on a set of data. The geometric object can be colored based on some coloring function. Or, it could be rotated. The mathematical object could also be sliced, so pieces of the object are separated. GroupSet This class merges the data from many different geometric objects into one set of data. The group’s geometric objects can then be manipulated in the same way, as if it were one object. GridCreatorPatchCreatorStripeCreatorDotCreator Data Flow Diagram Component implemented in project Component implemented later Dynamic Changes To Parameters A parameter can be changed by the user after the geometric object has been created. The possible changes could affect the domain or the function of a geometric object. A DomainCreator listens for domain changes, while MapSetToSet listens for changes in the incoming Data object and in its function. When a change is detected these listeners recalculate its points and/or connections and propagate the changes down the pipeline. The change below affects the intervals in the domain, so the GridCreator is notified of the particular change. Then, the GridCreator regenerates the points and connections based on this new parameter. The new points and connections are stored in the Data object. Now, the MapSetToSet instance, that had evaluated this GridCreator’s points earlier, receives notification that its incoming Data has been altered. The MapSetToSet instance then reevaluates all the new points in the Data and stores the new points with the new connections. From here, the Data from the MapSetToSet instance notifies any object that uses it, and this propagation continues. Example: Consider an instance of MapSetToSet that is represented by the function f(u,v) = (u, v, u*v). If the user wanted this surface to be displayed as a grid, then a GridCreator will pass its Data to this MapSetToSet object. Now, the points in the Data will be evaluated based on the function and the new points will replace the incoming points. The connections remain the same, however. Now the geometric object looks like the image below. Points from GridCreator: Points after Evaluation: { (-1, 2), (-1, 3), (-1, 4), { (-1, 2, -2), (-1, 3, -3), (-1, 4, -4), (0, 2), (0, 3), (0, 4), (0, 2, 0), (0, 3, 0), (0, 4, 0), (1, 2), (1, 3), (1, 4) } (1, 2, 2), (1, 3, 3), (1, 4, 4) } Connections: { [0,1], [1,2], [3,4], [4,5], [6,7], [7,8], [0,3], [3,6], [1,4], [4,7], [2,5], [5,8] } Example: If the domain was { -1 ≤ u ≤ 1 and 2 ≤ v ≤ 4 } and the user wanted 9 points in the image, then u takes on the value -1, 0, or 1, while v has value 2, 3, or 4. Here are the points and connections generated by a GridCreator and stored in the Data object. The connections use an index into the set of points. Points: { (-1, 2), (-1, 3), (-1, 4), (0, 2), (0, 3), (0, 4), (1, 2), (1, 3), (1, 4) } Connections: { [0,1], [1,2], [3,4], [4,5], [6,7], [7,8], [0,3], [3,6], [1,4], [4,7], [2,5], [5,8] } Example: The user might input something like this to get a surface whose input values are in the region { -1 ≤ u ≤ 1 and 2 ≤ v ≤ 4 } in the xy-plane, contains 9 points, and is displayed as a grid. Input for domain: [-1, 1, 2] [2, 4, 2] Input for function of the surface: f(u,v) = (u, v, u*v) Input for display type: grid Output SurfaceCurve Polyhedron User Input DomainCreator GroupSet MapSetToSet Data Polyhedron Data Viewer Transform Data