【问题标题】:How to animate a chart in Visual Studio C#?如何在 Visual Studio C# 中为图表设置动画?
【发布时间】:2016-04-19 13:57:38
【问题描述】:

有没有办法在 Visual Studio 2013 的 C# 表单应用程序中为图表设置动画,以便在按下按钮后显示线条逐渐绘制到屏幕上?在此先感谢:)

【问题讨论】:

  • 是的,有一种方法......到目前为止你尝试了什么?
  • 当然。对于 Winforms 中的动画,请使用 Timer。你用的是winforms吗?? 总是正确标记您的问题。
  • 我还没有尝试过任何事情,因为我不知道从哪里开始,是的,我在 Visual Studio 中使用 Windows 窗体应用程序,我将如何使用计时器?

标签: c# visual-studio animation charts


【解决方案1】:

这是一个可以帮助您入门的示例。它首先创建测试数据,然后使用Timer 显示它们..:

List<PointF> data = new List<PointF>();
Timer timer = new Timer();

private void button1_Click_1(object sender, EventArgs e)
{
    data.Clear();

    for (int i = 0; i < 400; i++)
    {
        float x = i / 50f * (float)( Math.Cos(i / 10f));
        float y = i / 50f * (float)(Math.Sin(i / 10f));
        data.Add(new PointF(x,y));
    }

    chart1.Series.Clear();
    Series S1 = chart1.Series.Add("S1");
    Series S2 = chart1.Series.Add("S2");

    S2.MarkerSize = 2;
    S2.MarkerStyle = MarkerStyle.Circle;
    S2.Color = Color.Green;
    S1.Color = Color.FromArgb(64, Color.Red);
    S1.BorderWidth = 9;

    S2.ChartType = SeriesChartType.Point;
    S1.ChartType = SeriesChartType.Line;
    chart1.ChartAreas[0].AxisX.Minimum = -10;
    chart1.ChartAreas[0].AxisX.Maximum = 10;
    chart1.ChartAreas[0].AxisY.Minimum = -10;
    chart1.ChartAreas[0].AxisY.Maximum = 10;
    chart1.ChartAreas[0].BackColor = Color.White;

    timer.Interval = 15;
    timer.Start();
}

请注意,我使用PointF 结构来存储测试数据,因为它是一个方便 浮点结构..

这是Timer.Tick 事件。别忘了hook it up!在这里,我们绘制所有数据,直到完成;然后我们停止Timer

void timer_Tick(object sender, EventArgs e)
{
    Series S1 = chart1.Series[0];
    Series S2 = chart1.Series[1];
    int pointsSoFar = S1.Points.Count;
    if (pointsSoFar < data.Count)
    {
        S1.Points.AddXY(data[pointsSoFar].X, data[pointsSoFar].Y);
        S2.Points.AddXY(data[pointsSoFar].X, data[pointsSoFar].Y);
    }
    else
    {
        timer.Stop();
        chart1.ChartAreas[0].BackColor = Color.AntiqueWhite;
    }
}

请注意,我选择以半透明颜色绘制线条。看线段强重叠的结果很有启发!

这里..

..结果..

.. 动画..:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2013-02-25
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多