WebTeechart.NET V2 Zoom
-
- Newbie
- Posts: 9
- Joined: Mon Jul 04, 2005 4:00 am
- Location: Belgium
- Contact:
WebTeechart.NET V2 Zoom
Hi,
I must develop an asp.net application where it's possible to zoom on scientific line charts. It's a demand of my business client. I experienced problems of precision with zoom function. If I zoom once on a small part of the chart, I've got generally a zoom of the part that I selected. If I a re-rezoom on a part of the previous zoom, I don't generally have the good part of the graph.
Generally, if you make a zoom on a very small area of the graph, it fails and it doesn't show a good image of the zoomed part.
I want to make possible "precision zooms" on the charts of my application. I also choiced Steema component for the zoom function present in V2.
You can experience the same problem with your example:
http://www.steema.net/TeeChartForNET/In ... 202&y1=221
Can you tell how it's possible to make good zooms....
thanks
I must develop an asp.net application where it's possible to zoom on scientific line charts. It's a demand of my business client. I experienced problems of precision with zoom function. If I zoom once on a small part of the chart, I've got generally a zoom of the part that I selected. If I a re-rezoom on a part of the previous zoom, I don't generally have the good part of the graph.
Generally, if you make a zoom on a very small area of the graph, it fails and it doesn't show a good image of the zoomed part.
I want to make possible "precision zooms" on the charts of my application. I also choiced Steema component for the zoom function present in V2.
You can experience the same problem with your example:
http://www.steema.net/TeeChartForNET/In ... 202&y1=221
Can you tell how it's possible to make good zooms....
thanks
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi GLE client,
Thank you very much for reporting that. Yes, you are right. I've already added this to our deffect list to be fixed for future releases.
Thank you very much for reporting that. Yes, you are right. I've already added this to our deffect list to be fixed for future releases.
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 9
- Joined: Mon Jul 04, 2005 4:00 am
- Location: Belgium
- Contact:
Update date
Hi,
thanks to reply me. I need the zoom function in the web project for my client. Could you tell me when a correction for this bug will be released? Is the beta version of 21st July. 2005 patchs this problem?
Thanks
thanks to reply me. I need the zoom function in the web project for my client. Could you tell me when a correction for this bug will be released? Is the beta version of 21st July. 2005 patchs this problem?
Thanks
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi GLE client,
The example you pointed to in your previous message seems to work fine for me now. Could you please test it and confirm that?
Thanks in advance.
The example you pointed to in your previous message seems to work fine for me now. Could you please test it and confirm that?
Thanks in advance.
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 9
- Joined: Mon Jul 04, 2005 4:00 am
- Location: Belgium
- Contact:
zoom problem
Hi, well I tested the debug version 2.0.2027.21317 and the problem with zoom is always the same. At the first zoom, there is no stress. From the 2nd zoom, the zoomed part does not correspond any more to the selected rectangle. The problem is not with Y values but with X values I think.
In The code below, analyze de values of a,b,c,d and you will see that a and b are good but c and d are not good.
For the test, I taked a blank page, putted a webchart on it with a sample line serie and a zoom tool.
The code:
In The code below, analyze de values of a,b,c,d and you will see that a and b are good but c and d are not good.
For the test, I taked a blank page, putted a webchart on it with a sample line serie and a zoom tool.
The code:
Code: Select all
private void Page_Load(object sender, System.EventArgs e)
{
//check whether zoom request is being sent
string zoom=Request.QueryString["zoom"];
if ((zoom!=null))
if (zoom=="0")
{
WebChart1.Chart.Zoom.Undo();
//clear any saved zoom information
Session.Remove("ch1Zoomed");
}
else
{
//each new call to the server is an independent call for the Chart
//so non-Chart information must be saved. An Arraylist is used
//here to save current Axis information to a session variable.
//add new list for saved zoom state
ArrayList axes = new ArrayList();
//check if existing zoom state exists
ArrayList zoomedChart=(ArrayList)Session["ch1Zoomed"];
if (zoomedChart!=null)
{
//apply existing zoom condition to Chart before applying new zoom condition
((Steema.TeeChart.Tools.ZoomTool)WebChart1.Chart.Tools[0]).SetSavedZoom(zoomedChart);
}
int x0=Convert.ToInt32(Request.QueryString["x0"]);
int y0=Convert.ToInt32(Request.QueryString["y0"]);
int x1=Convert.ToInt32(Request.QueryString["x1"]);
int y1=Convert.ToInt32(Request.QueryString["y1"]);
//convert selected co-ordinates to new zoom
axes=((Steema.TeeChart.Tools.ZoomTool)WebChart1.Chart.Tools[0]).Zoom(new Rectangle(x0,y0,x1-x0,y1-y0));
double a= WebChart1.Chart.Axes.Left.CalcPosPoint(y0);
double b= WebChart1.Chart.Axes.Left.CalcPosPoint(y1);
double c= WebChart1.Chart.Axes.Bottom.CalcPosPoint(x0);
double d= WebChart1.Chart.Axes.Bottom.CalcPosPoint(x1);
//save new Axes' ranges to a session variable
//for further zoom support
Session.Add("ch1Zoomed",axes);
}
}
-
- Newbie
- Posts: 9
- Joined: Mon Jul 04, 2005 4:00 am
- Location: Belgium
- Contact:
Hello,
The Width and Height dimensions of the Chart are not correctly initialised. The problem begins to become easily apparent when Charts are drag-sized to a non-standard aspect ratio.
We'll fix this internally to TeeChart for the next release so that no additional coding be required but as a workaround to allow you to continue now please add the following to your code:
Below:
add:
That should resolve the issue.
FYI. - Not directly related.
We'll post a project shortly that shows multiple-zoomable Charts on the same page. There are some refinements to the page code.
Regards,
Marc Meumann
The Width and Height dimensions of the Chart are not correctly initialised. The problem begins to become easily apparent when Charts are drag-sized to a non-standard aspect ratio.
We'll fix this internally to TeeChart for the next release so that no additional coding be required but as a workaround to allow you to continue now please add the following to your code:
Below:
Code: Select all
int x0=Convert.ToInt32(Request.QueryString["x0"]);
int y0=Convert.ToInt32(Request.QueryString["y0"]);
int x1=Convert.ToInt32(Request.QueryString["x1"]);
int y1=Convert.ToInt32(Request.QueryString["y1"]);
add:
Code: Select all
WebChart1.Chart.Width=(int)WebChart1.Width.Value;
WebChart1.Chart.Height=(int)WebChart1.Height.Value;
FYI. - Not directly related.
We'll post a project shortly that shows multiple-zoomable Charts on the same page. There are some refinements to the page code.
Regards,
Marc Meumann
Steema Support
-
- Newbie
- Posts: 9
- Joined: Mon Jul 04, 2005 4:00 am
- Location: Belgium
- Contact:
Zoom bug
Well, if I take your web example WebAppZoomChart.aspx and i add the C# lines like you say. I've got the same result than before:
Can you tell me when a debug version with the correction of this bug will be released? Thanks
Don't you have another trick to have good zooms because I must release the project for my client in few days.....
Thanks
Code: Select all
private void Page_Load(object sender, System.EventArgs e)
{
// // Put user code to initialize the page here
// WebChart1.Chart[0].FillSampleValues(10);
// WebChart2.Chart[0].FillSampleValues(10);
// WebChart3.Chart[0].FillSampleValues(10);
// ****************************************************
//The data load code for WebChart1 demostrates a technique to save
//data between page calls. The Chart is saved as a TeeChart template
//to a session variable.
// ****************************************************
Steema.TeeChart.Chart ch1=WebChart1.Chart;
MemoryStream tmpChart=new MemoryStream();
if (Session["ch1"]==null)
{
//setup Chart
if (ch1.Series.Count<2)
{
ch1.Series.Add(new Steema.TeeChart.Styles.Points());
ch1.Series.Add(new Steema.TeeChart.Styles.Points());
}
//((Steema.TeeChart.Tools.ZoomTool)ch1.Tools[0]).ZoomPenColor=Color.Yellow;
((Points)ch1.Series[0]).Pointer.Pen.Visible=false;
((Points)ch1.Series[1]).Pointer.Pen.Color=Color.FromArgb(79,79,255);
ch1.Series[0].Color=Color.FromArgb(255,199,26);
ch1.Series[1].Color=Color.FromArgb(106,106,255);
ch1.Series[0].FillSampleValues(36);
ch1.Series[1].FillSampleValues(36);
//export Chart to a MemoryStream template
ch1.Export.Template.Save(tmpChart);
//save template to a Session variable
Session.Add("ch1",tmpChart);
}
else
{
//retrieve the session stored Chart
tmpChart=(MemoryStream)Session["ch1"];
//set the Stream position to 0 as the last read/write
//will have moved the position to the end of the stream
tmpChart.Position=0;
//import saved Chart
WebChart1.Chart.Import.Template.Load(tmpChart);
//check whether zoom request is being sent
string zoom=Request.QueryString["zoom"];
if ((zoom!=null) && (Request.QueryString["chart"]==WebChart1.ID))
if (zoom=="0")
{
ch1.Zoom.Undo();
//clear any saved zoom information
Session.Remove("ch1Zoomed");
}
else
{
//each new call to the server is an independent call for the Chart
//so non-Chart information must be saved. An Arraylist is used
//here to save current Axis information to a session variable.
//add new list for saved zoom state
ArrayList axes = new ArrayList();
//check if existing zoom state exists
ArrayList zoomedChart=(ArrayList)Session["ch1Zoomed"];
if (zoomedChart!=null)
{
//apply existing zoom condition to Chart before applying new zoom condition
((Steema.TeeChart.Tools.ZoomTool)WebChart1.Chart.Tools[0]).SetSavedZoom(zoomedChart);
}
int x0=Convert.ToInt32(Request.QueryString["x0"]);
int y0=Convert.ToInt32(Request.QueryString["y0"]);
int x1=Convert.ToInt32(Request.QueryString["x1"]);
int y1=Convert.ToInt32(Request.QueryString["y1"]);
WebChart1.Chart.Width=(int)WebChart1.Width.Value;
WebChart1.Chart.Height=(int)WebChart1.Height.Value;
//convert selected co-ordinates to new zoom
axes=((Steema.TeeChart.Tools.ZoomTool)WebChart1.Chart.Tools[0]).Zoom(new Rectangle(x0,y0,x1-x0,y1-y0));
//save new Axes' ranges to a session variable
//for further zoom support
Session.Add("ch1Zoomed",axes);
}
}
}
Don't you have another trick to have good zooms because I must release the project for my client in few days.....
Thanks
Hello,
The integer sensitivity might also be a factor in the problem as you see it on the demo Form as it will force a zoom to round to the nearest integer. The maintenance release due out next week includes support for non-integer min/max values.
You can cross-check that on the example by adding the data in larger steps instead of the single integer increment FillSampleValues.
eg.
You should notice improved precision on the zooms.
Regards,
Marc Meumann
The integer sensitivity might also be a factor in the problem as you see it on the demo Form as it will force a zoom to round to the nearest integer. The maintenance release due out next week includes support for non-integer min/max values.
You can cross-check that on the example by adding the data in larger steps instead of the single integer increment FillSampleValues.
eg.
Code: Select all
for (int i=0; i<500 ; i=i+10)
{
ch1.Series[0].Add(i,r.Next());
ch1.Series[1].Add(i,r.Next());
}
Regards,
Marc Meumann
Steema Support