Ejemplo n.º 1
0
        // Create a ValueRangePalette to present SurfaceGrid's data.
        private ValueRangePalette CreatePalette(SurfaceGridSeries3D series)
        {
            // Creating palette for SurfaceGridSeries3D.
            var palette = new ValueRangePalette(series);

            // LightningChart has some preset values for palette steps.
            // Clear the preset values from palette before setting new ones.
            foreach (var step in palette.Steps)
            {
                step.Dispose();
            }
            palette.Steps.Clear();

            // Add steps into palette.
            // Palette is used for presenting data in SurfaceGrid with different colors based on their value.
            palette.Steps.Add(new PaletteStep(palette, Color.Blue, -25));
            palette.Steps.Add(new PaletteStep(palette, Color.DodgerBlue, 0));
            palette.Steps.Add(new PaletteStep(palette, Color.LawnGreen, 25));
            palette.Steps.Add(new PaletteStep(palette, Color.Yellow, 50));
            palette.Steps.Add(new PaletteStep(palette, Color.Orange, 75));
            palette.Steps.Add(new PaletteStep(palette, Color.Red, 100));
            palette.Type     = PaletteType.Gradient;
            palette.MinValue = -50;

            // Return the created palette.
            return(palette);
        }
Ejemplo n.º 2
0
        // Safe disposal of LightningChart components when the form is closed.
        private void Form_Closed(Object sender, FormClosedEventArgs e)
        {
            // Dispose Chart.
            _chart.Dispose();
            _chart = null;

            // Dispose SurfaceGrid.
            _surfaceGrid.Dispose();
            _surfaceGrid = null;
        }
Ejemplo n.º 3
0
        // Create chart instance.
        public void CreateChart()
        {
            // Create chart.
            _chart = new LightningChartUltimate();

            // Set chart control into the parent container.
            _chart.Parent = this;
            _chart.Dock   = DockStyle.Fill;

            // Disable rendering before updating chart properties to improve performance
            // and to prevent unnecessary chart redrawing while changing multiple properties.
            _chart.BeginUpdate();

            // 1. Set View3D as active view and set Y-axis range.
            _chart.ActiveView = ActiveView.View3D;
            _chart.View3D.YAxisPrimary3D.SetRange(-50, 100);

            // Set a LegendBox into a chart with vertical layout.
            _chart.View3D.LegendBox.Layout = LegendBoxLayout.Vertical;

            // 2. Create a new SurfaceGrid instance as SurfaceGridSeries3D.
            _surfaceGrid = new SurfaceGridSeries3D(_chart.View3D, Axis3DBinding.Primary, Axis3DBinding.Primary, Axis3DBinding.Primary);

            // 3. Set range, size and color saturation options for SurfaceGrid.
            _surfaceGrid.RangeMinX = MinX;
            _surfaceGrid.RangeMaxX = MaxX;
            _surfaceGrid.RangeMinZ = MinZ;
            _surfaceGrid.RangeMaxZ = MaxZ;
            _surfaceGrid.SizeX     = _columns;
            _surfaceGrid.SizeZ     = _rows;

            // Stronger colors.
            _surfaceGrid.ColorSaturation = 80;

            // 4. Create ValueRangePalette for coloring SurfaceGrid's data.
            ValueRangePalette palette = CreatePalette(_surfaceGrid);

            _surfaceGrid.ContourPalette = palette;

            // 5. Define WireFrameType and ContourLineType for SurfaceGrid.
            _surfaceGrid.WireframeType    = SurfaceWireframeType3D.WireframePalettedByY;
            _surfaceGrid.ContourLineType  = ContourLineType3D.ColorLineByY;
            _surfaceGrid.ContourLineWidth = 2;

            // Add SurfaceGridSeries to chart.
            _chart.View3D.SurfaceGridSeries3D.Add(_surfaceGrid);

            #region Hidden polishing
            // Customize chart.
            CustomizeChart(_chart);
            #endregion

            // Call EndUpdate to enable rendering again.
            _chart.EndUpdate();
        }
Ejemplo n.º 4
0
 private void CreateSurface()
 {
     if (m_surface == null)
     {
         m_surface = new SurfaceGridSeries3D(rpm3Dchart.View3D, Axis3DBinding.Primary, Axis3DBinding.Primary, Axis3DBinding.Primary);
         rpm3Dchart.View3D.SurfaceGridSeries3D.Add(m_surface);
     }
     m_surface.InitialValue     = 0;
     m_surface.Title.Text       = string.Empty;
     m_surface.WireframeType    = SurfaceWireframeType.None;
     m_surface.ContourLineType  = ContourLineType.None;
     m_surface.FadeAway         = 0;
     m_surface.SuppressLighting = false;
     m_surface.BaseColor        = Colors.White;
     m_surface.ContourPalette   = CreatePalette(m_surface, 10);
 }
Ejemplo n.º 5
0
        private void SetupGrid()
        {
            (Content as Grid).Children.Insert(0, Chart);

            Chart.Title = new ChartTitle {
                Text = ""
            };
            Chart.ActiveView = ActiveView.View3D;

            Chart.View3D.YAxisPrimary3D.SetRange(-5, maxValue);
            Chart.View3D.XAxisPrimary3D.SetRange(0, width);
            Chart.View3D.ZAxisPrimary3D.SetRange(0, height);
            Chart.View3D.LegendBox.Visible = false;


            grid = new SurfaceGridSeries3D(Chart.View3D,
                                           Axis3DBinding.Primary,
                                           Axis3DBinding.Primary,
                                           Axis3DBinding.Primary)
            {
                RangeMinX       = 0, RangeMinZ = 0, RangeMaxX = width, RangeMaxZ = height,
                SizeX           = width, SizeZ = height,
                ColorSaturation = 50, ToneColor = Colors.SkyBlue,
                Fill            = SurfaceFillStyle.Toned
            };


            Chart.View3D.SurfaceGridSeries3D.Add(grid);

            ground = new SurfaceGridSeries3D(Chart.View3D,
                                             Axis3DBinding.Primary,
                                             Axis3DBinding.Primary,
                                             Axis3DBinding.Primary)
            {
                RangeMinX       = 0, RangeMinZ = 0, RangeMaxX = width, RangeMaxZ = height,
                SizeX           = width, SizeZ = height,
                ColorSaturation = 25, ToneColor = Colors.DimGray,
                Fill            = SurfaceFillStyle.Toned
            };

            Chart.View3D.SurfaceGridSeries3D.Add(ground);
        }
Ejemplo n.º 6
0
 private void CreateSurface()
 {
     if (m_surface == null)
     {
         m_surface = new SurfaceGridSeries3D(time3Dchart.View3D, Axis3DBinding.Primary, Axis3DBinding.Primary, Axis3DBinding.Primary);
         time3Dchart.View3D.SurfaceGridSeries3D.Add(m_surface);
     }
     m_surface.InitialValue    = 0;
     m_surface.Title.Text      = string.Empty;
     m_surface.WireframeType   = SurfaceWireframeType.None;
     m_surface.ContourLineType = ContourLineType.None;
     // m_surface.SetSize(150, 150);
     m_surface.FadeAway         = 0;
     m_surface.SuppressLighting = false;
     m_surface.BaseColor        = Colors.White;
     m_surface.SetSize(400, 100);
     m_surface.SetRangesXZ(time3Dchart.View3D.XAxisPrimary3D.Minimum, time3Dchart.View3D.XAxisPrimary3D.Maximum,
                           time3Dchart.View3D.ZAxisPrimary3D.Minimum, time3Dchart.View3D.ZAxisPrimary3D.Maximum);
     m_surface.ContourPalette = CreatePalette(m_surface, 10);
     m_surface.TraceMouseCell = true;
 }