I'm trying to chart at least 6000 (& preferably up to 10000) 3D points using a Points3D series. From there I want to allow the user to rotate, zoom etc to get a feel for the waveform. Although I'm doing this on a fairly high spec'd PDA (HTC HD2), I'm finding the rotation does not run smoothly. I've tried improving this by just rotating the outline (rotate1.Pen.Visible = true), but have found that the chart itself doesn't rotate (as expected), but the outline that is supposed to rotate is not visible.
Can you advise if I'm doing something wrong here, or there is some other way to make this work better? I've included an extract of code just in case it helps.
Thanks,
Michael L
This code is in the form's constructor:
Code: Select all
tChart1 = new Steema.TeeChart.Pocket.TChart();
points3D1 = new Steema.TeeChart.Styles.Points3D(tChart1.Chart);
this.SuspendLayout();
this.tChart1.Aspect.ZOffset = 0;
this.tChart1.Axes.Bottom.Title.Transparent = true;
this.tChart1.Axes.Depth.Title.Transparent = true;
this.tChart1.Axes.DepthTop.Title.Transparent = true;
this.tChart1.Axes.Left.Title.Transparent = true;
this.tChart1.Axes.Right.Title.Transparent = true;
this.tChart1.Axes.Top.Title.Transparent = true;
this.tChart1.Location = new System.Drawing.Point(0, 0);
this.tChart1.Name = "tChart1";
this.tChart1.Size = new System.Drawing.Size(480, 560);
this.tChart1.TabIndex = 0;
tChart1.Panel.Color = Color.Wheat;
tChart1.Header.Text = "TeeChart for SmartDevice";
tChart1.Aspect.Orthogonal = false;
tChart1.Aspect.Chart3DPercent = 100;
tChart1.Aspect.ClipPoints = true;
Steema.TeeChart.Tools.Rotate rotate1 = new Steema.TeeChart.Tools.Rotate(tChart1.Chart);
rotate1.Pen.Visible = true;
//rotate1.Pen.Color = Color.Black;
tChart1.Tools.Add(rotate1);
tChart1.Zoom.Allow = false;
points3D1.ColorEach = false;
points3D1.Pointer.Visible = false;
Controls.Add(this.tChart1);
this.ResumeLayout(false);
Code: Select all
List<Double>[] waveforms = motionAnalyser.xyzData.waveForms;
tChart1.AutoRepaint = false;
//points3D1.FillSampleValues();
//for (int i = 0; i < 10; i++) {
// points3D1.Add(0, 0, i);
// points3D1.Add(10, 0, i);
// points3D1.Add(10 + 5 - i, 10, i);
// points3D1.Add(0 + 5 - i, 10, i);
// points3D1.Add(0, 0, i);
//}
for (int sampi = 0; sampi < waveforms[0].Count; sampi++) {
points3D1.Add(waveforms[0][sampi], waveforms[1][sampi], waveforms[2][sampi]);
}
tChart1.Axes.Left.AdjustMaxMin();
tChart1.Axes.Left.AutomaticMaximum = false;
tChart1.Axes.Left.AutomaticMinimum = false;
tChart1.Axes.Left.MinimumOffset = 50;
tChart1.Axes.Left.MaximumOffset = 50;
tChart1.Axes.Bottom.AdjustMaxMin();
tChart1.Axes.Bottom.AutomaticMaximum = false;
tChart1.Axes.Bottom.AutomaticMinimum = false;
tChart1.Axes.Bottom.MinimumOffset = 50;
tChart1.Axes.Bottom.MaximumOffset = 50;
tChart1.Axes.Depth.AdjustMaxMin();
tChart1.Axes.Depth.AutomaticMaximum = false;
tChart1.Axes.Depth.AutomaticMinimum = false;
tChart1.Axes.Depth.MinimumOffset = 50;
tChart1.Axes.Depth.MaximumOffset = 50;
tChart1.Legend.Visible = false;
tChart1.AutoRepaint = true;
tChart1.Refresh();