
Your ideas looks most promising. I'll look at your code more fully when I get a moment. I'm impressed how easy it is to knock up some simple and small encodings of graphs using SVG. You may be amused at my quick play-about attached. I am now convinced that the basic idea of using SVG for this sort of job is right. The file size is 3 kb and that is in a fairly verbose style and includes comments - it could probably be nearly halved with more care. Good luck with your GSoC application. Paul PS I'd be interested to know which browsers can display the attached file - Adobe SVG viewer is needed for IE6 at least. --- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Jake Voytko Sent: 02 April 2007 07:21 To: boost@lists.boost.org Subject: [boost] Summer of Code rapid prototype: "Visualization of STLContainers"
Greetings, Boost!
I've been in the application process for Google's "Summer of Code", and John Maddock brought up the idea of rapid prototyping in order to start finalizing design ideas. Over a couple of days I worked out a rough sketch of how the user interface would be organized. The "Initial Proposal" below has a detailed description of what the project is about, but the rough idea is that I need to visualize data in STL containers using the SVG (Scalable Vector Graphics) format. The sample code provided uses std::vector<double> containers currently, and I will extend the idea to generic STL containers during the summer.
Dr. Maddock had the idea that the class could use a stream-like interface, sampled below.
svg_graph my_graph("file.svg");
my_graph<<x_scale(-10, 10)<<y_scale(-10, 10);
my_graph<<plot_range(my_cont.begin(), my_cont.end());
I have the basic idea of streams working, but I haven't yet implemented multiple streams working in conjunction (as in line 2). Again, this is a rapid prototype that I squeezed in between schoolwork! I intend the main bulk of the work to be done during the summer, and I feel that I still need to do some refactoring of the code.
I am looking for suggestions of directions people would like to see this project go. What would you like to customize in the output? Do you have a better idea for an interface? Am I taking the implementation in the wrong direction? How would you like invalid data to appear? Not at all? As a gray dot on an axis? I'd like to get a conversation going about what the user should/should not be able to do with this.
Initial Proposal: http://www.tcnj.edu/~voytko2/proposal.txt
Suggestions by mentors: http://www.tcnj.edu/~voytko2/suggestions.txt
Zip file of code: http://www.tcnj.edu/~voytko2/svg.zip
Output of sample code: http://www.tcnj.edu/~voytko2/first.svg
The code compiles in both MS Visual Studio 8.0 and g++ 4.0.3.