Как нарисовать линейный график в C#,
namespace VistaBalanceAlgorithms { public class VerticalForce { public static float SteadyStateTotalForce = 1; public static bool SteadyState = false; public VerticalForce(float[] frameValues) { Left = 0; Right = 0; Total = 0; if (frameValues != null) { float leftForce = frameValues.Take(frameValues.Length / 2).Sum(); float rightForce = frameValues.Skip(frameValues.Length / 2).Sum(); Left = (int)((leftForce / SteadyStateTotalForce) * 100); Right = (int)((rightForce / SteadyStateTotalForce) * 100); Left = Left < 0 ? 0 : Left; Right = Right < 0 ? 0 : Right; Total = Left + Right; } } public int Left { get; protected set; } public int Right { get; protected set; } public int Total { get; protected set; } } public class VerticalForceGraph { private List<VerticalForce> vtfList = new List<VerticalForce>(); public int BufferSize { get; set; } public void Add(VerticalForce vtf) { vtfList.Add(vtf); } public void Reset() { vtfList.Clear(); } public int Count {get{return vtfList.Count;} } public float[] GetLeftVTF() { return vtfList.Select(x => (float)x.Left).ToArray(); } public float[] GetLeftVTF(int startPoint, int count) { return vtfList.GetRange(startPoint, count).Select(x => (float)x.Left).ToArray(); } public float[] GetRightVTF() { return vtfList.Select(x => (float)x.Right).ToArray(); } public float[] GetRightVTF(int startPoint, int count) { return vtfList.GetRange(startPoint, count).Select(x => (float)x.Right).ToArray(); } public float[] GetTotalVTF() { return vtfList.Select(x => (float)x.Total).ToArray(); } public float[] GetTotalVTF(int startPoint, int count) { return vtfList.GetRange(startPoint, count).Select(x => (float)x.Total).ToArray(); } } }
Я хочу вызвать эти методы и нарисовать линейный график для каждого из них
Что я уже пробовал:
Это моя главная форма.
private void toolStripMenuItemVtfGraphicalView_Click(object sender, EventArgs e) { m_viewMode = viewModes.VTF_GRAPHICAL_VIEW; panelHeatMap.viewMode = m_viewMode; toolStripDropDownViewMode.Text = toolStripMenuItemVtfGraphicalView.Text; chart1.Visible = true; for (int i = 10; i < 100; i += 50) { chart1.Series["Left Vtf"].Points.AddXY(vtfGraph.GetLeftVTF(),i); chart1.Series["Right Vtf"].Points.AddXY(vtfGraph.GetRightVTF(),i); chart1.Series["Total Vtf"].Points.AddXY(vtfGraph.GetTotalVTF(),i); } }
BillWoodruff
И что происходит сейчас, что вы хотите изменить ?