Ejemplo n.º 1
0
        // function for testing 3d scatter plot
        public void TestScatterPlot(int nDotNo)
        {
            // 1. set scatter chart data no.
            m_3dChart = new ScatterChart3D();
            m_3dChart.SetDataNo(nDotNo);

            // 2. set property of each dot (size, position, shape, color)
            Random randomObject = new Random();
            int    nDataRange   = 200;

            for (int i = 0; i < nDotNo; i++)
            {
                ScatterPlotItem plotItem = new ScatterPlotItem();

                plotItem.w = 4;
                plotItem.h = 6;

                plotItem.x = (float)randomObject.Next(nDataRange);
                plotItem.y = (float)randomObject.Next(nDataRange);
                plotItem.z = (float)randomObject.Next(nDataRange);

                plotItem.shape = randomObject.Next(4);

                Byte nR = (Byte)randomObject.Next(256);
                Byte nG = (Byte)randomObject.Next(256);
                Byte nB = (Byte)randomObject.Next(256);

                plotItem.color = Color.FromRgb(nR, nG, nB);
                ((ScatterChart3D)m_3dChart).SetVertex(i, plotItem);
            }

            // 3. set the axes
            m_3dChart.GetDataRange();
            m_3dChart.SetAxes();

            // 4. get Mesh3D array from the scatter plot
            ArrayList meshs = ((ScatterChart3D)m_3dChart).GetMeshes();

            // 5. display model vertex no and triangle no
            UpdateModelSizeInfo(meshs);

            // 6. display scatter plot in Viewport3D
            WPFChart3D.Model3D model3d = new WPFChart3D.Model3D();
            m_nChartModelIndex = model3d.UpdateModel(meshs, null, m_nChartModelIndex, this.mainViewport);

            // 7. set projection matrix
            float viewRange = (float)nDataRange;

            m_transformMatrix.CalculateProjectionMatrix(0, viewRange, 0, viewRange, 0, viewRange, 0.5);
            TransformChart();
        }
Ejemplo n.º 2
0
        public void TestSimpleScatterPlot(double[,] coordinates, int numberOfPointsInCuttingRegion)
        {
            distance++;
            mygrid.UpdateLayout();
            int nDotNo = coordinates.GetLength(0);

            // 1. set the scatter plot size
            m_3dChart = new ScatterChart3D();
            m_3dChart.SetDataNo(nDotNo);

            // 2. set the properties of each dot
            Random randomObject = new Random();
            int    nDataRange   = 40;

            for (int i = 0; i < nDotNo; i++)
            {
                ScatterPlotItem plotItem = new ScatterPlotItem();

                plotItem.x = (float)coordinates[i, 0];
                plotItem.y = (float)coordinates[i, 1];
                plotItem.z = (float)coordinates[i, 2];

                if (numberOfFlutes == 0)
                {
                    label.Content = "Distance travelled by tool = " + distance + " mm.";
                    if (i < numberOfPointsInCuttingRegion)
                    {
                        plotItem.w     = 0.25f;
                        plotItem.h     = 0.10f;
                        plotItem.shape = (int)Chart3D.SHAPE.BAR;
                        plotItem.color = Color.FromArgb(200, (byte)(160), (byte)(5), (byte)(5));
                    }
                    else
                    {
                        plotItem.w     = 0.05f;
                        plotItem.h     = 0.1f;
                        plotItem.shape = (int)Chart3D.SHAPE.BAR;
                        plotItem.color = Color.FromArgb(200, (byte)(160), (byte)(160), (byte)(160));
                    }
                }
                else
                {
                    label.Content = ("");
                    if (((int)(i / Lp)) % (Kp / numberOfFlutes) == 0)
                    {
                        int n = (int)(((int)(i / Lp)) / (Kp / numberOfFlutes));
                        plotItem.w     = 0.8f;
                        plotItem.h     = 0.20f;
                        plotItem.shape = (int)Chart3D.SHAPE.PYRAMID;
                        //plotItem.color = Color.FromArgb(200, (byte)(80), (byte)(80), (byte)(60));
                        plotItem.color = Color.FromArgb(1, (byte)(60 + 20 * n), (byte)(60 + 20 * n), (byte)(30 + 40 * n));
                    }
                    else
                    {
                        plotItem.w     = 0.2f;
                        plotItem.h     = 0.10f;
                        plotItem.shape = (int)Chart3D.SHAPE.BAR;
                        plotItem.color = Color.FromArgb(1, (byte)(160), (byte)(160), (byte)(160));
                    }
                }
                ((ScatterChart3D)m_3dChart).SetVertex(i, plotItem);
            }
            // 3. set axes
            m_3dChart.GetDataRange();
            m_3dChart.SetAxes();

            // 4. Get Mesh3D array from scatter plot
            ArrayList meshs = ((ScatterChart3D)m_3dChart).GetMeshes();

            // 5. display vertex no and triangle no.
            UpdateModelSizeInfo(meshs);

            // 6. show 3D scatter plot in Viewport3d
            WPFChart3D.Model3D model3d = new WPFChart3D.Model3D();
            m_nChartModelIndex = model3d.UpdateModel(meshs, null, m_nChartModelIndex, this.mainViewport);

            // 7. set projection matrix
            float viewRange = (float)nDataRange;

            m_transformMatrix.CalculateProjectionMatrix(0, viewRange, 0, viewRange, 0, viewRange, 0.5);
            TransformChart();
            mainViewport.UpdateLayout();
        }