Exemple #1
0
        private void InitLogistics()
        {
            var tree = new TreeNode("Logistics")
            {
                //DefaultOpened = true,
                FrameType = IToolTreeNode.TreeNodeFrameType.Framed
            };

            Group.AddComponent(tree);
            var line = graph.AddData(CalcLogistics(DataBase.Data.Count, 0.3f, DataBase.Data.Count > 0 ? DataBase.Data.First.Value : 0, (int)graph.MaxY));

            line.Color = new Color(255, 255, 255, 0);
            var colorEdit = new ColorEdit("Color", new Color(255, 255, 255))
            {
                EditAlpha = false
            };

            colorEdit.ColorChanged += (x, y) =>
            {
                var c = y.NewValue;
                c.A        = line.Color.A;
                line.Color = c;
            };
            tree.AddComponent(colorEdit);
            var inputFloat_R = new InputFloat1("r", 0.3f)
            {
                Max = 1.0f,
                Min = 0.0f
            };

            inputFloat_R.ValueChanged += (x, y) => updateLogisticsLine?.Invoke(false);
            tree.AddComponent(inputFloat_R);
            var inputInt_K = new InputInt1("K", (int)graph.MaxY)
            {
                Min = 1
            };

            inputInt_K.ValueChanged += (x, y) => updateLogisticsLine?.Invoke(false);
            tree.AddComponent(inputInt_K);
            var checkBox = new CheckBox("Shown", false);

            checkBox.ChangeChecked += (x, y) =>
            {
                var color = line.Color;
                color.A    = y.NewValue ? (byte)255 : default;
                line.Color = color;
            };
            tree.AddComponent(checkBox);
            updateLogisticsLine = (x) =>
            {
                if (x)
                {
                    inputInt_K.Value = (int)graph.MaxY;
                }
                line.Data = CalcLogistics(DataBase.Data.Count, inputFloat_R.Value, DataBase.Data.Count > 0 ? DataBase.Data.First.Value : 0, inputInt_K.Value);
            };
        }
Exemple #2
0
        private void InitChaos()
        {
            var tree = new TreeNode("Chaos")
            {
                //DefaultOpened = true,
                FrameType = IToolTreeNode.TreeNodeFrameType.Framed
            };

            Group.AddComponent(tree);
            var line  = graph.AddData(Array.Empty <Vector2F>());
            var color = new Color(255, 255, 100, 0);

            line.Color = color;
            color.A    = 255;
            var colorEdit = new ColorEdit("Color", color)
            {
                EditAlpha = false
            };

            colorEdit.ColorChanged += (x, y) =>
            {
                var c = y.NewValue;
                c.A        = line.Color.A;
                line.Color = c;
            };
            tree.AddComponent(colorEdit);
            var inputFloat_Init = new InputFloat1("InitValue", 0.1f)
            {
                Min = 0.0f,
                Max = 1.0f
            };

            inputFloat_Init.ValueChanged += (x, y) => updateChaosLine?.Invoke(false);
            tree.AddComponent(inputFloat_Init);
            var inputFloat_Lamda = new InputFloat1("lamda", 1.0f)
            {
                Min = 0.0f,
                Max = 4.0f,
            };

            inputFloat_Lamda.ValueChanged += (x, y) => updateChaosLine?.Invoke(false);
            tree.AddComponent(inputFloat_Lamda);
            var inputFloat_Arg = new InputFloat1("Arg", 1.0f)
            {
                Min = 0.0f
            };

            inputFloat_Arg.ValueChanged += (x, y) => updateChaosLine?.Invoke(false);
            tree.AddComponent(inputFloat_Arg);
            var inputInt_Count = new InputInt1("Count", 50)
            {
                Min = 1
            };

            inputInt_Count.ValueChanged += (x, y) => updateChaosLine?.Invoke(false);
            tree.AddComponent(inputInt_Count);
            var checkBox = new CheckBox("Shown", false);

            checkBox.ChangeChecked += (x, y) =>
            {
                var c = line.Color;
                c.A        = y.NewValue ? byte.MaxValue : default;
                line.Color = c;
            };
            tree.AddComponent(checkBox);
            updateChaosLine = x =>
            {
                if (x)
                {
                    inputFloat_Arg.Value = graph.MaxY;
                }
                line.Data = CalcChaos(inputInt_Count.Value, inputFloat_Lamda.Value, inputFloat_Init.Value, inputFloat_Arg.Value);
            };
        }