示例#1
0
        public FuncControl()
        {
            _f = (x) => 0; //y=0;
            //_f = Math.Sin; // double Sin(double a);
            //_f = (x) => x * x; //lambda double q (double x){return x*x;}; _f=q;
            //_f = (x) => Math.Pow(x, 2); // Pow non ha la stessa signature del delegate

            //_f = Math.Sqrt;
            //_f = (x) => Math.Sqrt(x);
            //_f = (x) => { double y = Math.Sqrt(x); return y + 2; };
            //_f = Foo;

            //double y = _f(2.5);
        }
示例#2
0
        private void mandelbrotClick(object sender, System.EventArgs e)
        {
            Function2D m = new Function2D();

            //The source represents the body of the following function:
            //double[] p, dfdp;
            //double f(double x, double y) {
            //  ...
            //}
            m.source = "double xn = 0, yn = 0, x2 = 0, y2 = 0;" +
                       "for (int n = 0; n < 500; n++) {" +
                       "  yn = 2*xn*yn + y;" +
                       "  xn = x2 - y2 + x;" +
                       "  x2 = xn*xn; y2 = yn*yn;" +
                       "  if (x2 + y2 > 4) return n;" +
                       "} return 0;";
            m.Compile(true);
            graph.SetRange(graph.x0, graph.x1, graph.y0, graph.y1, 0, 20);
            graph.Model.Items.Add(m);
            graph.Invalidate();
        }
示例#3
0
 static Flap()
 {
     a_a6                      = new Function2D(a_a6_ar, a_a6_a_a6);
     lamda1                    = new Function2D(lamda1_c_cf, lamda1_lamda1);
     lamda2_planeFlap          = new Function2D(lamda2_planeFlap_delta, lamda2_planeFlap_lamda2);
     lamda2_splitFlap_tc012    = new Function2D(lamda2_splitFlap_tc012_delta, lamda2_splitFlap_tc012_lamda2);
     lamda2_splitFlap_tc021    = new Function2D(lamda2_splitFlap_tc021_delta, lamda2_splitFlap_tc021_lamda2);
     lamda2_splitFlap_lamda2   = (new Function2D[] { lamda2_splitFlap_tc012, lamda2_splitFlap_tc021 });
     lamda2_splitFlap          = new Function3D(lamda2_splitFlap_t_c, lamda2_splitFlap_lamda2);
     lamda2_slottedFlap_tc012  = new Function2D(lamda2_slottedFlap_tc012_delta, lamda2_slottedFlap_tc012_lamda2);
     lamda2_slottedFlap_tc021  = new Function2D(lamda2_slottedFlap_tc021_delta, lamda2_slottedFlap_tc021_lamda2);
     lamda2_slottedFlap_lamda2 = (new Function2D[] { lamda2_slottedFlap_tc012, lamda2_slottedFlap_tc021 });
     lamda2_slottedFlap        = new Function3D(lamda2_slottedFlap_t_c, lamda2_slottedFlap_lamda2);
     mu1_tc012                 = new Function2D(mu1_tc012_c_cf, mu1_tc012_mu1);
     mu1_tc021                 = new Function2D(mu1_tc021_c_cf, mu1_tc021_mu1);
     mu1_tc030                 = new Function2D(mu1_tc030_c_cf, mu1_tc030_mu1);
     mu1_mu1                   = (new Function2D[] { mu1_tc012, mu1_tc021, mu1_tc030 });
     mu1 = new Function3D(mu1_t_c, mu1_mu1);
     delta1_pFsP_tc012 = new Function2D(delta1_pFsF_tc012_c_cf,
                                        delta1_pFsF_tc012_delta1);
     delta1_pFsP_tc021 = new Function2D(delta1_pFsF_tc021_c_cf,
                                        delta1_pFsF_tc021_delta1);
     delta1_pFsP_tc030 = new Function2D(delta1_pFsF_tc030_c_cf,
                                        delta1_pFsF_tc030_delta1);
     delta1_pFsF_delta1 = (new Function2D[] { delta1_pFsP_tc012,
                                              delta1_pFsP_tc021, delta1_pFsP_tc030 });
     delta1_pFsF = new Function3D(delta1_pFsF_t_c, delta1_pFsF_delta1);
     delta1_slottedFlap_tc012030 = new Function2D(
         delta1_slottedFlap_tc012030_c_cf,
         delta1_slottedFlap_tc012030_delta1);
     delta1_slottedFlap_tc021 = new Function2D(
         delta1_slottedFlap_tc021_c_cf, delta1_slottedFlap_tc021_delta1);
     delta1_slottedFlap_delta1 = (new Function2D[] {
         delta1_slottedFlap_tc012030, delta1_slottedFlap_tc021,
         delta1_slottedFlap_tc012030
     });
     delta1_slottedFlap = new Function3D(delta1_slottedFlap_t_c,
                                         delta1_slottedFlap_delta1);
     delta2_planeFlap = new Function2D(delta2_planeFlap_delta,
                                       delta2_planeFlap_delta2);
     delta2_splitFlap_tc012 = new Function2D(delta2_splitFlap_tc012_delta,
                                             delta2_splitFlap_tc012_delta2);
     delta2_splitFlap_tc021 = new Function2D(delta2_splitFlap_tc021_delta,
                                             delta2_splitFlap_tc021_delta2);
     delta2_splitFlap_tc030 = new Function2D(delta2_splitFlap_tc030_delta,
                                             delta2_splitFlap_tc030_delta2);
     delta2_splitFlap_delta2 = (new Function2D[] { delta2_splitFlap_tc012,
                                                   delta2_splitFlap_tc021, delta2_splitFlap_tc030 });
     delta2_splitFlap = new Function3D(delta2_splitFlap_t_c,
                                       delta2_splitFlap_delta2);
     delta2_slottedFlap_tc012 = new Function2D(
         delta2_slottedFlap_tc012_delta, delta2_slottedFlap_tc012_delta2);
     delta2_slottedFlap_tc021 = new Function2D(
         delta2_slottedFlap_tc021_delta, delta2_slottedFlap_tc021_delta2);
     delta2_slottedFlap_tc030 = new Function2D(
         delta2_slottedFlap_tc030_delta, delta2_slottedFlap_tc030_delta2);
     delta2_slottedFlap_delta2 = (new Function2D[] { delta2_slottedFlap_tc012, delta2_slottedFlap_tc021, delta2_slottedFlap_tc030 });
     delta2_slottedFlap        = new Function3D(delta2_slottedFlap_t_c, delta2_slottedFlap_delta2);
     ka_cfc1 = new Function2D(ka_cfc1_delta, ka_cfc1_ka);
     ka_cfc2 = new Function2D(ka_cfc2_delta, ka_cfc2_ka);
     ka_cfc3 = new Function2D(ka_cfc3_delta, ka_cfc3_ka);
     ka_cfc4 = new Function2D(ka_cfc4_delta, ka_cfc4_ka);
     ka_ka   = (new Function2D[] { ka_cfc1, ka_cfc2, ka_cfc3, ka_cfc4 });
     ka      = new Function3D(ka_cfc, ka_ka);
 }
示例#4
0
    public void draw(string function)
    {
        string s = sub(function, 0, function.IndexOf("="));

        Debug.Log(s);
        string f = sub(function, function.IndexOf("=") + 1, function.Length);

        Debug.Log(f);
        IObj obj = null;

        if (f.Contains(","))
        {
            f = sub(f, 1, f.Length - 1);
            string[] comp = f.Split(',');
            if (s.Contains("(x,y,z)"))
            {
                GameObject gameObject = Instantiate(vectorField3DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject;
                gameObject.transform.localScale = new Vector3(10, 10, 10);
                VectorField3D vectorField3D = gameObject.GetComponent <VectorField3D>();
                vectorField3D.sex = comp[0];
                vectorField3D.sey = comp[1];
                vectorField3D.sez = comp[2];
                obj = vectorField3D;
                //vectorField3D.update();
            }
            else if (s.Contains("(x,y)"))
            {
                GameObject gameObject = Instantiate(vectorField2DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject;
                gameObject.transform.localScale = new Vector3(10, 10, 10);
                VectorField2D vectorField2D = gameObject.GetComponent <VectorField2D>();
                Debug.Log("vector2d");
                Debug.Log(comp[0]);
                Debug.Log(comp[1]);
                vectorField2D.sex = comp[0];
                vectorField2D.sey = comp[1];
                obj = vectorField2D;
                //vectorField2D.update();
            }
        }
        else
        {
            Debug.Log(function);
            Regex r = new Regex("([a-zA-Z0-9]*?)\\^\\((.+?)\\)");
            Match m = r.Match(function);

            if (m.Success)
            {
                function = r.Replace(function, "Pow($1,$2)");
                Debug.Log(m.Groups[1]);
                Debug.Log(m.Groups[2]);
            }
            Debug.Log(function);
            if (s.Contains("(x,y)"))
            {
                GameObject gameObject = Instantiate(function3DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject;
                gameObject.transform.localScale = new Vector3(10, 10, 10);
                Function3D function3D = gameObject.GetComponent <Function3D>();
                function3D.function = f;
                function3D.start();
                function3D.compile();
                obj = function3D;
                //function3D.update();
            }
            else if (s.Contains("(x)"))
            {
                GameObject gameObject = Instantiate(function2DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject;
                gameObject.transform.localScale = new Vector3(100, 100, 100);
                Function2D function2D = gameObject.GetComponent <Function2D>();
                Debug.Log("2D");
                function2D.function = f;
                obj = function2D;
                //function2D.update();
            }
        }
        if (obj != null)
        {
            Debug.Log("Queue");
            main.unassigned.Enqueue(obj);
            Debug.Log(main.unassigned.Count);
        }
    }