表达式的值不会改变

本文关键字:改变 表达式 | 更新日期: 2023-09-27 18:02:45

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

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);
        }
    }

表达式的值不会改变

尝试使用float:

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