Group: Forum Members
Last Active: 15 Years Ago
Posts: 3,
Visits: 1
|
Hello,
Can somebody point me in the right direction?
I am plotting a 3D Chart - mesh surface. When the chart renders, it is automatically stretching the Y (elevation) points based on its overall range... a nice feature for some, but I need control over this. Any thoughts where I can find this property and what is it called? - Thanks! Darren
|
Group: Nevron Team
Last Active: 14 Years Ago
Posts: 48,
Visits: 1
|
Hi, There are lots of settings in the scale configurator object that is accessible through the ScaleConfigurator property of the axis. You can also take a look at the View and PagingView properties of the axis, but for now I cannot be more specific, since I don't know what exactly you are trying to achieve. Best Regards, Milen
|
Group: Forum Members
Last Active: 15 Years Ago
Posts: 3,
Visits: 1
|
Thanks Milen.... yes I have been playing around with the NLinearScaleConfigurator settings all day.
In a nut shell, there are buttons on the demo WinForm C# 2008 example called "Increase Chart Depth", "Decrease Chart Depth", and so on...
If I knew how these buttons are being used I think I could solve my problem. Any thoughts?
I have tried to rescale the data going into the series, and the layout of the surface chart just appears to adapt accordingly. I tried attaching a screenshot of the chart, but this web site is not letting me. Here is what the prepare code looks like before I add the series...
// setup chart NChart chart = chartControl.Charts[0]; chart.Enable3D = true; chart.Projection.SetPredefinedProjection(PredefinedProjection.PerspectiveTilted);
// setup X NLinearScaleConfigurator linearScale = new NLinearScaleConfigurator(); linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Floor, true); linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Back, true); linearScale.RoundToTickMax = false; linearScale.RoundToTickMin = false; chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = linearScale; chart.BoundsMode = BoundsMode.None;
// setup Z linearScale = new NLinearScaleConfigurator(); linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Floor, true); linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Left, true); linearScale.RoundToTickMax = false; linearScale.RoundToTickMin = false; chart.Axis(StandardAxis.Depth).ScaleConfigurator = linearScale;
// setup Y (surface) NMeshSurfaceSeries surface = (NMeshSurfaceSeries)chart.Series.Add(SeriesType.MeshSurface); surface.Name = "Surface"; surface.Legend.Mode = SeriesLegendMode.SeriesLogic; surface.FillMode = SurfaceFillMode.Zone; surface.PositionValue = .5; surface.SyncPaletteWithAxisScale = false; surface.PaletteSteps = 8; surface.ValueFormatter.FormatSpecifier = "0.00"; surface.FillStyle = new NColorFillStyle(System.Drawing.Color.Yellow); chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator = linearScale;
- Darren
|
Group: Forum Members
Last Active: 15 Years Ago
Posts: 3,
Visits: 1
|
never mind.... chart.Width, chart.Height, & chart.Depth
That is it. opps... !
|
Group: Forum Members
Last Active: 13 Years Ago
Posts: 5,
Visits: 1
|
Hi darren,
setting the chart.width, chart.height and chart.depth will help, if you want to controll the Elavation-Scaling ( it still does change the min, max ranges according to the surface, surfaces displayed) you should use this:
axis.View = new NRangeAxisView(new NRange1DD(0, 10));
to have always the sam axis range.
|