我有一个在时间 t 返回图形的 PointPairList 的方法,但我想用它来绘制一个“移动”图形,“移动”是指图形应该及时演变,有没有人知道我如何可以做到这一点。我尝试使用 RollingPointPairList,但它不起作用。
问问题
618 次
1 回答
1
进化是什么意思?您想随着时间的推移向曲线添加点,还是要更改曲线已有的点的位置?对于第一个选项,我使用计时器和 DrawPoint 方法作为向曲线添加点的处理程序。第二个选项可能更复杂一点,我没有尝试改变一个点的坐标,但也许它是可能的......在最坏的情况下你将不得不删除你的旧点并绘制新点......无论如何这里是一部分我的代码添加一个点(实际上有很多点,因为我正在使用超过 1 条曲线)
tmr.Interval = 6;
tmr.Tick += new EventHandler(tmr_Tick);
tmrActive = true;
tmr.Start();
void tmr_Tick(object sender, EventArgs e)
{
DrawPoint(zedGraphControl1, points, num); //points is an PointPair array of length num with the new points that i want to add to my Curves(1 point for each Curve)
zedGraphControl1.AxisChange();
zedGraphControl1.Refresh();
if (Start.Enabled == false) Freeze.Enabled = true;
}
private void DrawPoint(ZedGraphControl zgc, PointPair[] p, int num)
{
GraphPane myPane = zgc.GraphPane;
if (myPane.CurveList.Count < num)
{
DrawCurves(zgc, num);
}
for (int i = 0; i < num; i++)
{
myPane.CurveList[i].AddPoint(p[i]);
}
actPos = p[0].X;
mResize(zgc, actPos);
}
于 2012-10-05T07:08:57.060 回答