Visualization of Oriented Matroids
Finite sets of points and lines in the plane lead to an abstraction called "oriented matroids". They are significant tools with applications in Mathematics and in Computational Geometry. Oriented matroids are quite difficult to understand, since they are explained in very theoretical ways in books and research articles. My project was to develop a tool for visualizing them. We used Java 1.2 with its new philosophy of separating Model, View and Control. This object-oriented programming approach minimizes the dependence between interface and application, leading to a cleaner design. Because of the above, Java has been a very useful tool for computational geometers to visualize research related drawings.
The project undertaken this summer had the purpose of developing a software tool, to visualize oriented matroids. The software is intended to have a user-friendly interface that allows the researchers to view theoretical geometric figures instantaneously.
The latest version of Java was chosen for this project because of the Model-View-Control (MVC) approach. The first step to the project was to learn this new philosophy; where "model" is the interface independent application, "view" is the updated appearance of the applet and "control" is the part that causes the changes on the model. After experimenting and working on some smaller projects it was clear that this was the most suitable approach for this project. The next step was to work on the major part of the project - the user-friendly interface. The software consists of two applets composed of three frames (two canvases and a text area) that appear with the click on a button on the screen. In both of the applets one of the two canvases is active whereas the other is passive. One of the applets has the point canvas as the active one whereas the other has the line canvas. The user can draw on the active canvas a point or a line depending on which applet is in use. As the user draws the figure on the active canvas, the dual of the figure appears on the other one. The next step for creating this software was to work on the object used to store information about the figure drawn on the active canvas. Initially SetOfPoints and SetOfLines (the user-created objects) were modified arrays. However, it turned out to be very complicated because of the numerous properties of these figures that can be manipulated by the menu items on the frames. The final version had the object as a linked list that also made the idea of moving or inserting some figures to the sets easier.
Throughout this research many other problems came up. These include Layout Manager problem that was important for browser and platform flexibility, analytic geometry applications to be used for changing the coordinate systems on the canvases, floating point numbers that caused problems on accurate drawing of the figures and their duals, and many others...
There are still lots of changes and improvements that can be made on this software that visualizes oriented matroids. For example, various dualities other than that of points and lines can be visualized with a more complex tool. Rather than working only on the duality other aspects of matroids can be analyzed and visualized. Other improvements could be to add more options to the menus and to develop the features of the user created object. This software tool project that had been initiated is a long-term one and can be improved in many ways, but here we set it up on a solid foundation. (Supported by the Schultz Fellowship Foundation).
Advisor: Prof. Ileana Streinu