Dear All
I am using a Rectangle tool with a ColorGrid (displaying 50x2048 points). Chart updating does seem faster with the new version (from 28th Aug). However moving and resizing a Rectangle tool on the ColorGrid chart is not very responsive. The hand cursor for moving the tool, and arrow cursor for resizing the tool do not seem to appear unless the left mouse button is depressed and the rectangle is not updated until the left mouse button is raised again.
Also I would like to restrict the Rectangle tool just to the boundaries of the ColorGrid.
If there is a better way to draw a rectangle on the chart please let me know. I would like something like the zoom in rectangle but with the ability to move and resize interactively if possible.
Thanks
jenb
ColorGrid with Rectangle Tool
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi jenb,
This is because of the size of the ColorGrid series. Using the code below it takes aroung 2500 milliseconds to draw the chart at my machine (Pentium IV 3.2 GHZ, 2 GB RAM and 256 MB Nvidia GeForce FX 5700). Could you please try running it at your end and let us know how it goes?I am using a Rectangle tool with a ColorGrid (displaying 50x2048 points). Chart updating does seem faster with the new version (from 28th Aug). However moving and resizing a Rectangle tool on the ColorGrid chart is not very responsive. The hand cursor for moving the tool, and arrow cursor for resizing the tool do not seem to appear unless the left mouse button is depressed and the rectangle is not updated until the left mouse button is raised again.
Code: Select all
public Form1()
{
InitializeComponent();
InitializeChart();
}
private void InitializeChart()
{
Random y = new Random();
for (int x = 0; x < 50; x++)
{
for (int z = 0; z < 2048; z++)
{
colorGrid1.Add(x, y.Next(), z);
}
}
//colorGrid1.FillSampleValues();
Bitmap bmp = tChart1.Bitmap;
Rectangle Rect = tChart1.Chart.ChartRect;
rectangleTool1.Shape.CustomPosition = true;
rectangleTool1.Left = Rect.Left;
rectangleTool1.Top = Rect.Top;
}
private void rectangleTool1_Dragging(object sender, EventArgs e)
{
Rectangle Rect = tChart1.Chart.ChartRect;
if (rectangleTool1.Left < Rect.Left)
{
rectangleTool1.Left = Rect.Left;
}
if (rectangleTool1.Top < Rect.Top)
{
rectangleTool1.Top = Rect.Top;
}
if (rectangleTool1.Left + rectangleTool1.Width > Rect.Right)
{
rectangleTool1.Left = Rect.Right - rectangleTool1.Width;
}
if (rectangleTool1.Top + rectangleTool1.Height > Rect.Bottom)
{
rectangleTool1.Top = Rect.Bottom - rectangleTool1.Height;
}
}
private void rectangleTool1_Resizing(object sender, EventArgs e)
{
Rectangle Rect = tChart1.Chart.ChartRect;
if (rectangleTool1.Left < Rect.Left)
{
rectangleTool1.Left = Rect.Left;
}
if (rectangleTool1.Top < Rect.Top)
{
rectangleTool1.Top = Rect.Top;
}
if (rectangleTool1.Left + rectangleTool1.Width > Rect.Right)
{
rectangleTool1.Width = Rect.Right - rectangleTool1.Left;
}
if (rectangleTool1.Top + rectangleTool1.Height > Rect.Bottom)
{
rectangleTool1.Height = Rect.Bottom - rectangleTool1.Top;
}
}
private long startTime, now;
private void tChart1_BeforeDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
{
startTime = DateTime.Now.Ticks;
}
private void tChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
{
//calculate elapsed time
now = DateTime.Now.Ticks;
TimeSpan elapsedTime = new TimeSpan(now - startTime);
label1.Text = "Elapsed time: " + elapsedTime.TotalMilliseconds.ToString() + " ms";
}
I also implemented this in Rectangle's Dragging and Resizing events in the code above.Also I would like to restrict the Rectangle tool just to the boundaries of the ColorGrid.
Some kind of custom drawing could be quicker as it doesn't repaint the chart. I'll try to arrange an example for you.If there is a better way to draw a rectangle on the chart please let me know. I would like something like the zoom in rectangle but with the ability to move and resize interactively if possible.
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 |
Hi Narcis
My system is 2.8 GHz, 2 GB RAM, with Pentium R(D). With your example I found that not running through the IDE update time is around 109 ms, though the visual studio IDE (debug mode) update time is around 2821 ms. Behaviour of the cursor with the rectangle tool was fine in both cases
However I found something interesting with your example. If I change the x axis grid to 2048 points, and the z axis grid to 50 points (i.e. swapped the axes) then update times are slower (generally around 600 ms outside VS IDE and over 4000 ms inside). Would it be possible to make this the same speed as with the axes in the original?
I think that some of the problems with my code (e.g. cursor not displaying properly) is that the TeeChart control is part of a Windows User Control that is then inside a form - is this correct? If so then I will change it.
A custom drawing example would be good if possible.
Thanks
jenb
My system is 2.8 GHz, 2 GB RAM, with Pentium R(D). With your example I found that not running through the IDE update time is around 109 ms, though the visual studio IDE (debug mode) update time is around 2821 ms. Behaviour of the cursor with the rectangle tool was fine in both cases
However I found something interesting with your example. If I change the x axis grid to 2048 points, and the z axis grid to 50 points (i.e. swapped the axes) then update times are slower (generally around 600 ms outside VS IDE and over 4000 ms inside). Would it be possible to make this the same speed as with the axes in the original?
I think that some of the problems with my code (e.g. cursor not displaying properly) is that the TeeChart control is part of a Windows User Control that is then inside a form - is this correct? If so then I will change it.
A custom drawing example would be good if possible.
Thanks
jenb
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi jenb,
Sorry but we tried to do something as FastCursor property in CursorTool but this is much more complicated than what we expected. Anyway, I've added a request to our wish-list to implement such property for Rectangle tool too.
Yes, as you have experienced, running the applications from the IDE slows them significantly. Also, if you build your application in Release mode you'll gain some performance as well.My system is 2.8 GHz, 2 GB RAM, with Pentium R(D). With your example I found that not running through the IDE update time is around 109 ms, though the visual studio IDE (debug mode) update time is around 2821 ms. Behaviour of the cursor with the rectangle tool was fine in both cases
I've been able to reproduce this here and added this issue to our wish-list to be enhanced for future releases. There's no way to improve this that I can think of.However I found something interesting with your example. If I change the x axis grid to 2048 points, and the z axis grid to 50 points (i.e. swapped the axes) then update times are slower (generally around 600 ms outside VS IDE and over 4000 ms inside). Would it be possible to make this the same speed as with the axes in the original?
It shouldn't be a problem. However, drawing the chart in a different container may improve its performance a little bit. You could try doing this test at your end.I think that some of the problems with my code (e.g. cursor not displaying properly) is that the TeeChart control is part of a Windows User Control that is then inside a form - is this correct? If so then I will change it.
A custom drawing example would be good if possible.
Sorry but we tried to do something as FastCursor property in CursorTool but this is much more complicated than what we expected. Anyway, I've added a request to our wish-list to implement such property for Rectangle tool too.
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 |