Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Community » U++ community news and announcements » New graph packages
Re: New graph packages [message #35826 is a reply to message #35680] Mon, 26 March 2012 23:53 Go to previous messageGo to previous message
Didier is currently offline  Didier
Messages: 680
Registered: November 2008
Location: France
Contributor
Hi all,

My graph package is taking form so I'm going to publish a first version.

The design guideline I followed was to make it the most configurable possible, in order to be able to do a lot of things (at least for 2D graphs)

GraphDraw is based on the followinf principles:
  • A coordinate manager is in charge of each graph<->screen conversion => a unique instance is used for plotting, grid/axis management
  • The plot can be decorated with "GraphElements" (Left, right, top, bottom, over the whole graph, ...) just like Ctrls. They are stacked on each side of the plot. You can create whatever class you need for you're graph (like drawing exclusion zones on a graph, ...) One nice feature of GraphElements is that they have a callback that is called when mouse clicks on it ==> In the example try clicking on the axis Razz
  • The Grid and Axis drawing are grouped in one class that can be overloaded (in fact it is a GraphElement)
  • The tick management is dedicated to a specific class: GridStepManager : it calculates the positions where ticks/grid needs to be drawn. The intent of this class is to allow custom step calculation (log, ...)

The main classes are:
  • CoordinateConverter : it manages the coordinate conversion and can be overloaded for custom needs
  • GraphLementFrame :
  • GridAxisDraw
  • GridStepManager
  • GraphDraw
  • EmptyGraphDraw |
  • StdGraphDraw | helper classes intended to ease the use



The code is pretty dirty and not cleaned at all ( lots and lots of templates, I will kick them out once architecture and optimisations are finished )
The easyest way to use it to use the 'StdGraphCtrl' as in the example

Many functions are missing (zoom, scroll, ...) but the code architecture is pretty much finished although a lot of work is still to be done .

The data management is 100% compatible with ScatterDraw since it uses the same interface.
You can put as many axis as you wan't

index.php?t=getfile&id=3695&private=0

[Updated on: Tue, 27 March 2012 00:02]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message icon14.gif
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: New pick/clone notation now merged into trunk
Next Topic: Testing of migrated and upgraded forum
Goto Forum:
  


Current Time: Fri May 10 23:22:41 CEST 2024

Total time taken to generate the page: 0.03904 seconds