2012-04-12 82 views
4

如果我有一个页面绘制2线

如何将我的动画第一线到达第二条线的位置在2号线?

回答

2

添加“计数器”变量,这将是线已经在两个位置之间行进的距离的百分比。将它初始化为零,因为它从开始位置开始。添加一个计时器,每次滴答你增加“计数器”并使客户区域无效,以便重新绘制。一旦“计数器”达到100,并且达到目标的100%,就可以禁用不再需要的计时器。

在油漆日常你已经知道的起始位置和结束位置,以便只是划清界线,在这两者之间的“柜台”的百分比。所以,如果你知道startX并且你知道endX你的绘制版本是startX +(((endX-startX)/ 100 * counter)。针对每条线的顶部,左侧,右侧和底部执行此操作,然后完成。

+0

我编辑我的问题。我以为我可以用w和w和h2比较w2,直到它们相等,然后停止...但是...这不起作用。你能扩展你的想法吗? – BigBug 2012-04-12 05:26:26

+0

更换(W *(INT)帧)与(W +((W2 - W)*帧)) – 2012-04-12 05:31:24

+0

它并不完全工作...行只是向右移动过去的目标行.... – BigBug 2012-04-12 05:43:47

1

如果我没有错,你有眨眼,这是你的问题? 尝试使用此BufferedGraphics 小例子

System.Drawing.Graphics g = this.CreateGraphics(); 
    System.Drawing.BufferedGraphicsContext dc = new BufferedGraphicsContext(); 
    BufferedGraphics backbuffer = dc.Allocate(g, new Rectangle(new Point(0, 0), g.VisibleClipBounds.Size.ToSize())); 
    backbuffer.Graphics.DrawLine(Pens.White, 10, 10, 10, 100); 
    backbuffer.Render(g); 
+0

如果我错了,我会删除这个答案 – Likurg 2012-04-12 08:01:30