表达式的值不会改变

时间:2013-03-07 21:49:52

标签: c#

我正在尝试使用线性插值移动光标。我的问题是y0 + (y1 - y0) * ((x - x0) / (x1 - x0))的值永远不会改变,尽管x发生了变化。我无法弄清楚我错过了什么。

public void MoveCursor(int x1, int y1)
    {
        int y, y0, x, x0;

        y0 = Cursor.Position.Y;
        x0 = Cursor.Position.X;

        for (x = x0; x >  x1; x--)
        {
            y = y0 + (y1 - y0) * ((x - x0) / (x1 - x0));

            this.Cursor = new Cursor(Cursor.Current.Handle);
            Cursor.Position = new Point(x,y);
            Cursor.Clip = new Rectangle(this.Location, this.Size);

            Console.Out.WriteLine("X:{0} Y:{1}", x, y);

            System.Threading.Thread.Sleep(100);

        }
    }

1 个答案:

答案 0 :(得分:0)

尝试使用浮动:

 y = (int)(y0 + (float)(y1 - y0) * (x - x0) / (x1 - x0));