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); }; }
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); }; }