This project is to make the graphics window for an application that I have written in VB.net 2005.
The program is at the state now where it computes 10 arrays of values that I need to graph. Something similar to the image shown at the following link but I hope to have a better appearing graph than this this example.
[login to view URL]
In addition to the basic graph, grids, and legends, I need the ability to pan and zoom.
I already have a blank graphics window that can pan and zoom that was made for me but I have lost contact with the author so if I can't find him I need someone to continue where he left off or start again from the beginning.
I have attached some files that give further information.
The image '[login to view URL]' is about what I would like to do.
If you can suggest some improvements, I am open to hear them.
To do list
The purpose of this program is to graph the motion of a valve that is
moved by a cam in an automotive engine.
These are the needs for the graphics work.
1. Set the object boundary of the graphics area:
The graphics area X-axis represents 720 degrees of crankshaft rotation
so we can use a fixed boundary for the objecs of:
X = 720 + margin and Y = 600 + margin
(The margin is an empty space on the left side of the graphics area
and on the top to be used for text (explained later))
2. Regulate the zoom of the graphics area:
The graphics area should be limited to the following minimum and maximum zoom:
Minimum Zoom: The graphics are should not show more than the X object boundary
Maximum Zoom: 10X the Minimum zoom
3. Regulate zoom as window size changes:
If the user drags the window to become larger, the zoom should change to keep
the same proportion in the graphics area
4. Grid in the graphics area
Since this is a graph, I would like to have reference lines in the graphics area.
You can see an image of what I want to have in graphics.jpg.
5. Graphing
The X-axis zero-point is the TDC (top dead center)
There are two sets of data to br graphed; Intake and Exhaust
The data for the Intake and Exhaust are computed at 0, so when they are
graphed, they must be offset by the 'Intake Offset' and 'Exhaust Offset'
which is specified on [login to view URL] as 'Exhaust Center' and 'Intake Center'
Y-axis =
The Y-axis is used to graph multiple different types of data.
Each of the different types of data will be graphed at a different scale.
The scale of each data is set on the Scale section of [login to view URL]
The scale is the maximum value of y to be represented in the graphics.
This is done so that a set of data that has a maximum value of 0.001 can
be graphed together with another that has a maximum value of 0.500.
The list of data to be graphed is as follows:
Draw lines of different colors between each pair of the array values:
For example a line would be drawn from:
EO_spline_controls_X(0)
EO_spline_controls_Y(0)
to:
EO_spline_controls_X(1)
EO_spline_controls_Y(1)
and from
EO_spline_controls_X(1)
EO_spline_controls_Y(1)
to:
EO_spline_controls_X(2)
EO_spline_controls_Y(2)
all the way up to the end of the array at (22)
Do this for EO, EC, IO, and IC
Draw a curve for each of these 4 arrays:
The number of steps is: EO_n_steps
The x values: EO_x_value
The y values:
EO_y_value
EO_Vel
EO_Accl
EO_Jerk
The arrays for the data are found on [login to view URL]
The data is computed for the arrays by clicking the Compute buttons on Form1
Ex open, Ex Close, In Open, In Close
(note it takes about 6 seconds for each of the computations to complete.)
I would like to control the display on/off and color of the curves with the
controls shown in [login to view URL]
6. Graph Legends:
X-Axis; This is fairly basic and will be as shown in the example image.
One complexity is that when the window is zoomed and panned that:
6a. The legend should pan with the graphs
6b. The text should remain at a constant size regardless of the zoom.
6c. When the graphics area is panned to see the lower area of the graphics
the X-Axis legend will remain visible (not pan off the screen).
Y-Axis; The Y-Axis legend will have an option menu at the top to display
a variety of option scales from [login to view URL] to display in the legend.
When an option is chosen the legend will display the values for that scale.
Dear Sir!
We are a Hungarian software development company specializing in .net software development. We have created lots of custom controls and components mainly for internal use. We have developed custom buttons, custom trackbars etc. So we can create a chart displaying component easily.
I have 10+ years experience in hospital and finance related graphical (GDI in .Net and Win32 API) interfaces. Please send more details about the project.
Hi
I'm a Technology consultant working for a MNC in India and having experience of 9 years in Microsoft Technologies. I'm having well experience in GDI+ domain and have done a project management GUI with graphics for an ERP domain project and many more. IF you want to see the sample screenshot of it I can send you.I read your requirement details and understodd most of it and to suggest more enhancements I need to see your existing application and then we can discuss further. As far as this requirement is concerned I can do it easily. Please let me know your interest so that we can proceed further and execute the work.
Cheers
Ashok