Пример #1
0
        //Converts a pair of screen coordinates to graph coordinates
        private void ScreenToGraph(double xScreen, double yScreen, out double xGraph, out double yGraph)
        {
            double[] rScreen = new double[3];
            double[] rGraph  = new double[3];

            rScreen[0] = xScreen;
            rScreen[1] = yScreen;
            rScreen[2] = 1.0;

            NuGenMath.MatrixMultiply3x1(rGraph, screenToGraph, rScreen);

            xGraph = rGraph[0];
            yGraph = rGraph[1];
        }
Пример #2
0
        //Converts a pair of graph coordinates to screen coordinates
        private void GraphToScreen(double xGraph, double yGraph, out double xScreen, out double yScreen)
        {
            if (!(ValidAxes || ValidScale))
            {
                throw new InvalidOperationException("No valid axes or scale");
            }

            double[] rScreen = new double[3];
            double[] rGraph  = new double[3];

            rGraph[0] = xGraph;
            rGraph[1] = yGraph;
            rGraph[2] = 1.0;

            NuGenMath.MatrixMultiply3x1(rScreen, graphToScreen, rGraph);

            xScreen = rScreen[0];
            yScreen = rScreen[1];
        }
Пример #3
0
        public static void Test()
        {
            double[,] r_screen = new double[3, 3];
            double[][] r_graph = { new double[3], new double[3], new double[3] };


            r_screen[0, 0] = 69;
            r_screen[1, 0] = 68;
            r_screen[2, 0] = 626;
            r_screen[0, 1] = 577;
            r_screen[1, 1] = 84;
            r_screen[2, 1] = 576;
            r_screen[0, 2] = 1;
            r_screen[1, 2] = 1;
            r_screen[2, 2] = 1;

            r_graph[0][0] = 0;
            r_graph[1][0] = 0;
            r_graph[2][0] = 30;
            r_graph[0][1] = -1;
            r_graph[1][1] = 1;
            r_graph[2][1] = -1;
            r_graph[0][2] = 1;
            r_graph[1][2] = 1;
            r_graph[2][2] = 1;

            double[,] s2g = new double[3, 3];
            double[,] g2s = new double[3, 3];

            ScreenToGraph(r_graph, r_screen, s2g, g2s);

            double[] rScreen = new double[3];
            double[] rGraph  = new double[3];

            rScreen[0] = 300;
            rScreen[1] = 300;
            rScreen[2] = 1.0;

            NuGenMath.MatrixMultiply3x1(rGraph, s2g, rScreen);

            double xGraph = rGraph[0];
            double yGraph = rGraph[1];
        }