void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 30.0;
            const double dIntervalZ  = 30.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y  = (x * x) - (z * z);
                    y += 200 * Math.Sin(x / 4.0) * Math.Cos(z / 4.0);

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
        private void FillModeComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            NGridSurfaceSeries surface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            switch (FillModeComboBox.SelectedIndex)
            {
            case 0:
                surface.FillMode = SurfaceFillMode.Uniform;
                break;

            case 1:
                surface.FillMode      = SurfaceFillMode.ZoneTexture;
                surface.SmoothPalette = false;
                surface.PaletteSteps  = 8;
                break;

            case 2:
                surface.FillMode      = SurfaceFillMode.ZoneTexture;
                surface.SmoothPalette = true;
                surface.PaletteSteps  = 7;
                break;
            }

            nChartControl1.Refresh();
        }
        private void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX = 8.0;
            const double dIntervalZ = 8.0;

            double dIncrementX = (dIntervalX / nCountX);
            double dIncrementZ = (dIntervalZ / nCountZ);

            z = 0;

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = Math.Sin(x * 1.2) * Math.Sin(z * 1.2);

                    if (y < 0)
                    {
                        y = -y;
                    }

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
        private void UpdateSurfaceData()
        {
            NGridSurfaceSeries surface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            TimeSpan span = startTime - DateTime.Now;
            double   t    = 0.002 * span.TotalMilliseconds;

            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 50.0;
            const double dIntervalZ  = 50.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = -Math.Sin(t + x * z * 0.04) * Math.Cos(t + x * 0.4);

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
Exemple #5
0
        private void CreateSurface(NChart chart)
        {
            NGridSurfaceSeries surface = new NGridSurfaceSeries();

            chart.Series.Add(surface);
            surface.Name        = "Surface";
            surface.FillMode    = SurfaceFillMode.Uniform;
            surface.FrameMode   = SurfaceFrameMode.None;
            surface.ShadingMode = ShadingMode.Smooth;
            surface.Data.SetGridSize(30, 30);
            surface.SyncPaletteWithAxisScale       = false;
            surface.ValueFormatter.FormatSpecifier = "0.00";

            Color color = Color.FromArgb(190, 130, 189);

            NFillStyle     fillStyle = new NColorFillStyle();
            NMaterialStyle material  = fillStyle.MaterialStyle;

            material.Ambient   = color;
            material.Diffuse   = color;
            material.Specular  = Color.FromArgb(120, 120, 120);
            material.Emissive  = Color.Black;
            material.Shininess = 10;

            surface.FillStyle = fillStyle;

            FillSurfaceData(surface);
        }
Exemple #6
0
        private void GenerateSurfaceData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 50.0;
            const double dIntervalZ  = 50.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = (x * z / 64.0) - Math.Sin(z / 2.4) * Math.Cos(x / 2.4);
                    y = Math.Abs(y);
                    double tmp = (1 - x * x - z * z);
                    y -= tmp * tmp * 0.000006;

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
        private void HasFillingCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            NGridSurfaceSeries gridSurface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            gridSurface.FillMode = HasFillingCheckBox.Checked ? SurfaceFillMode.CustomColors : SurfaceFillMode.None;
            nChartControl1.Refresh();
        }
        private void SmoothShadingCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            NGridSurfaceSeries gridSurface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            gridSurface.ShadingMode = SmoothShadingCheckBox.Checked ? ShadingMode.Smooth : ShadingMode.Flat;
            nChartControl1.Refresh();
        }
Exemple #9
0
        private void GenerateWaves()
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 30.0;
            const double dIntervalZ  = 30.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = CalulateWavesAtPoint(x, z);

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
        private void UpdateSurface()
        {
            NGridSurfaceSeries surface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            switch (paletteModeCombo.SelectedIndex)
            {
            case 0:
                surface.AutomaticPalette         = true;
                surface.SyncPaletteWithAxisScale = false;
                paletteStepsCombo.IsEnabled      = true;
                break;

            case 1:
                surface.AutomaticPalette         = true;
                surface.SyncPaletteWithAxisScale = true;
                paletteStepsCombo.IsEnabled      = false;
                break;

            case 2:
                surface.AutomaticPalette    = false;
                paletteStepsCombo.IsEnabled = false;
                break;
            }

            if ((bool)smoothPaletteCheck.IsChecked)
            {
                surface.SmoothPalette = true;
                surface.PaletteSteps  = paletteStepsCombo.SelectedIndex + 1;
            }
            else
            {
                surface.SmoothPalette = false;
                surface.PaletteSteps  = paletteStepsCombo.SelectedIndex + 2;
            }
        }
Exemple #11
0
        private void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 10.0;
            const double dIntervalZ  = 10.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y  = 10 - Math.Sqrt((x * x) + (z * z) + 2);
                    y += 3.0 * Math.Sin(x) * Math.Cos(z);

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
Exemple #12
0
        private void SurfaceSizeCombo_SelectedIndexChanged(object sender, EventArgs e)
        {
            NGridSurfaceSeries surface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            string heightMapName = "";

            switch (surfaceSizeCombo.SelectedIndex)
            {
            case 0:
                heightMapName = "HeightMap0500.png";
                break;

            case 1:
                heightMapName = "HeightMap1024.png";
                break;

            default:
                return;
            }

            Bitmap bitmap = NResourceHelper.BitmapFromResource(this.GetType(), heightMapName, "Nevron.Examples.Chart.WinForm.Resources");

            surface.Data.InitFromBitmap(bitmap);
            bitmap.Dispose();

            nChartControl1.Refresh();
        }
Exemple #13
0
        void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 20.0;
            const double dIntervalZ  = 20.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y  = Math.Sqrt((x * x) + (z * z) + 2);
                    y -= 0.08 * Math.Sqrt(Math.Abs(Math.Sinh(x)));

                    if (x < 0)
                    {
                        y += 0.11 * x * x;
                    }

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
Exemple #14
0
        private void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX  = 30.0;
            const double dIntervalZ  = 30.0;
            double       dIncrementX = (dIntervalX / nCountX);
            double       dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = (x * z / 64.0) - Math.Sin(z / 2.4) * Math.Cos(x / 2.4);
                    y = 10 * Math.Sqrt(Math.Abs(y));

                    if (y <= 0)
                    {
                        y = 1 + Math.Cos(x / 2.4);
                    }

                    surface.Data.SetValue(i, j, y);
                }
            }
        }
Exemple #15
0
        private void FillModeCombo_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            switch (fillModeCombo.SelectedIndex)
            {
            case 0:
                surface.FillMode           = SurfaceFillMode.None;
                smoothShadingCheck.Enabled = false;
                break;

            case 1:
                surface.FillMode           = SurfaceFillMode.Uniform;
                smoothShadingCheck.Enabled = true;
                break;

            case 2:
                surface.FillMode           = SurfaceFillMode.Zone;
                smoothShadingCheck.Enabled = true;
                break;
            }

            nChartControl1.Refresh();
        }
        private void SmoothShadingCheckBox_Clicked(object sender, System.Windows.RoutedEventArgs e)
        {
            NGridSurfaceSeries gridSurface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            gridSurface.ShadingMode = SmoothShadingCheckBox.IsChecked.Value ? ShadingMode.Smooth : ShadingMode.Flat;
            nChartControl1.Refresh();
        }
        private void HasFillingCheckBox_Clicked(object sender, System.Windows.RoutedEventArgs e)
        {
            NGridSurfaceSeries gridSurface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            gridSurface.FillMode = HasFillingCheckBox.IsChecked.Value ? SurfaceFillMode.CustomColors : SurfaceFillMode.None;
            nChartControl1.Refresh();
        }
        private void GridSizeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            int gridSize = 0;

            switch (GridSizeComboBox.SelectedIndex)
            {
            case 0:
                gridSize = 250;
                break;

            case 1:
                gridSize = 500;
                break;

            case 2:
                gridSize = 1000;
                break;
            }

            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.Data.SetSize(gridSize, gridSize);
            GenerateWaves();
        }
Exemple #19
0
        void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int    nCountX = surface.Data.GridSizeX;
            int    nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX = 8.0;
            const double dIntervalZ = 8.0;

            double dIncrementX = (dIntervalX / nCountX);
            double dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for (int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for (int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = Math.Log(Math.Abs(x) * Math.Abs(z));

                    if (y > -3)
                    {
                        surface.Data.SetValue(i, j, y);
                    }
                    else
                    {
                        surface.Data.SetValue(i, j, DBNull.Value);
                    }
                }
            }
        }
        private void SurfaceSizeComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            NGridSurfaceSeries surface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            string heightMapName = "";

            switch (SurfaceSizeComboBox.SelectedIndex)
            {
            case 0:
                heightMapName = "HeightMap0500.png";
                break;

            case 1:
                heightMapName = "HeightMap1024.png";
                break;

            default:
                return;
            }

            using (Bitmap bitmap = NResourceHelper.BitmapFromResource(this.GetType(), heightMapName, "Nevron.Examples.Chart.Wpf.Resources.Images"))
            {
                surface.Data.InitFromBitmap(bitmap);
            }

            nChartControl1.Refresh();
        }
Exemple #21
0
        private void PaletteLegendModeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.Legend.PaletteLegendMode = (PaletteLegendMode)PaletteLegendModeComboBox.SelectedIndex;
            nChartControl1.Refresh();
        }
Exemple #22
0
        private void PositionModeCombo_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.PositionMode = (SurfacePositionMode)positionModeCombo.SelectedIndex;
            nChartControl1.Refresh();
        }
Exemple #23
0
        private void CustomValueScroll_ValueChanged(object sender, Nevron.UI.WinForm.Controls.ScrollBarEventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.PositionValue = customValueScroll.Value;
            nChartControl1.Refresh();
        }
Exemple #24
0
        private void CustomValueScrollBar_ValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs <double> e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.PositionValue = CustomValueScrollBar.Value * 20.0f;
            nChartControl1.Refresh();
        }
        private void DrawContourBorderCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            NGridSurfaceSeries surface = (NGridSurfaceSeries)nChartControl1.Charts[0].Series[0];

            surface.DrawContourBorder = DrawContourBorderCheckBox.Checked;

            nChartControl1.Refresh();
        }
        private void EnableGPURenderingCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.EnableShaderRendering = EnableShaderRenderingCheckBox.Checked;
            nChartControl1.Refresh();
        }
Exemple #27
0
        public override void Initialize()
        {
            base.Initialize();

            // Enable GPU acceleration
            nChartControl1.Settings.RenderSurface = RenderSurface.Window;

            nChartControl1.Controller.Tools.Add(new NPanelSelectorTool());
            nChartControl1.Controller.Tools.Add(new NTrackballTool());

            // set a chart title
            NLabel title = new NLabel("Surface With Empty Data Points");

            title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, FontStyle.Italic);
            title.TextStyle.FillStyle = new NColorFillStyle(GreyBlue);

            // setup chart
            NChart chart = nChartControl1.Charts[0];

            chart.Enable3D = true;
            chart.Width    = 60.0f;
            chart.Depth    = 60.0f;
            chart.Height   = 25.0f;
            chart.Projection.SetPredefinedProjection(PredefinedProjection.PerspectiveTilted);
            chart.LightModel.SetPredefinedLightModel(PredefinedLightModel.ShinyTopLeft);

            // setup axes
            NOrdinalScaleConfigurator ordinalScale = (NOrdinalScaleConfigurator)chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator;

            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Floor, true);
            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Back, true);
            ordinalScale.DisplayDataPointsBetweenTicks = false;

            ordinalScale = (NOrdinalScaleConfigurator)chart.Axis(StandardAxis.Depth).ScaleConfigurator;
            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Floor, true);
            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Left, true);
            ordinalScale.DisplayDataPointsBetweenTicks = false;

            // add the surface series
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series.Add(SeriesType.GridSurface);

            surface.Name          = "Surface";
            surface.Legend.Mode   = SeriesLegendMode.SeriesLogic;
            surface.PositionValue = 10.0;
            surface.Data.SetGridSize(40, 40);
            surface.SyncPaletteWithAxisScale       = false;
            surface.PaletteSteps                   = 8;
            surface.ValueFormatter.FormatSpecifier = "0.000";
            surface.FillMode = SurfaceFillMode.ZoneTexture;

            FillData(surface);

            // apply layout
            ConfigureStandardLayout(chart, title, nChartControl1.Legends[0]);

            smoothShadingCheck.Checked = true;
        }
Exemple #28
0
        /// <summary>
        /// Called to initialize the example
        /// </summary>
        /// <param name="chartControl"></param>
        public override void Create()
        {
            // set a chart title
            NLabel title = nChartControl1.Labels.AddHeader("Wireframe Surface");

            title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, System.Drawing.FontStyle.Italic);
            title.TextStyle.FillStyle = new NColorFillStyle(GreyBlue);

            // setup chart
            m_Chart          = nChartControl1.Charts[0];
            m_Chart.Enable3D = true;
            m_Chart.Width    = 60.0f;
            m_Chart.Depth    = 60.0f;
            m_Chart.Height   = 25.0f;
            m_Chart.Projection.SetPredefinedProjection(PredefinedProjection.PerspectiveTilted);
            m_Chart.LightModel.SetPredefinedLightModel(PredefinedLightModel.ShinyTopLeft);
            nChartControl1.Controller.Tools.Add(new NTrackballTool());

            // setup axes
            NOrdinalScaleConfigurator ordinalScale = (NOrdinalScaleConfigurator)m_Chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator;

            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Floor, true);
            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Back, true);
            ordinalScale.DisplayDataPointsBetweenTicks = false;

            ordinalScale = (NOrdinalScaleConfigurator)m_Chart.Axis(StandardAxis.Depth).ScaleConfigurator;
            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Floor, true);
            ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Left, true);
            ordinalScale.DisplayDataPointsBetweenTicks = false;

            // add the surface series
            m_Surface           = (NGridSurfaceSeries)m_Chart.Series.Add(SeriesType.GridSurface);
            m_Surface.Name      = "Surface";
            m_Surface.FillMode  = SurfaceFillMode.None;
            m_Surface.FrameMode = SurfaceFrameMode.Mesh;
            m_Surface.Data.SetGridSize(30, 30);
            m_Surface.SyncPaletteWithAxisScale       = false;
            m_Surface.ValueFormatter.FormatSpecifier = "0.00";
            m_Surface.FrameColorMode = SurfaceFrameColorMode.Zone;
            m_Surface.Legend.Mode    = SeriesLegendMode.SeriesLogic;
            m_Surface.SmoothPalette  = true;
            m_Surface.PaletteSteps   = 7;
            m_Surface.Legend.Format  = "<zone_value>";

            FillData();

            nChartControl1.Controller.Tools.Add(new NPanelSelectorTool());
            nChartControl1.Controller.Tools.Add(new NTrackballTool());

            // apply layout
            ConfigureStandardLayout(m_Chart, title, nChartControl1.Legends[0]);

            // inti form controls
            SmoothPaletteCheckBox.IsChecked = true;
            PaletteFrameCheckBox.IsChecked  = true;
            AntialiasingCheckBox.IsChecked  = true;
        }
Exemple #29
0
        private void GenerateDataButton_Click(object sender, EventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            GenerateXValues(surface);
            GenerateZValues(surface);

            nChartControl1.Refresh();
        }
Exemple #30
0
        private void FrameModeCombo_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            NChart             chart   = nChartControl1.Charts[0];
            NGridSurfaceSeries surface = (NGridSurfaceSeries)chart.Series[0];

            surface.FrameMode = (SurfaceFrameMode)frameModeCombo.SelectedIndex;
            nChartControl1.Refresh();

            // form controls
            frameColorModeCombo.Enabled = (surface.FrameMode != SurfaceFrameMode.None);
        }