我试图将光标平滑地移动到随机点

Im trying to move the cursor smoothly to random points

本文关键字:移动 随机 平滑 光标      更新时间:2023-10-16

我正在尝试制作一个在不同点随机移动光标的程序,但我不希望它只是传送,因此我需要让它传送到逐渐点到它的目的地。我想我可以只做 x 和 y 坐标 1,然后 ++ 它看起来很平滑。这行得通吗?

对不起,如果我看起来很菜鸟,那是因为我 2 周前刚刚学习了 C++。 :)

class CursFluidity {
public:
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), ++y);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), ++X);
}
}

你需要一个变量来跟踪时间(或呼叫次数或其他东西(。我们称之为t.在进行多个调用时,您还需要源和目标位置。比方说:

class CursFluidity {
public:
void gotoxy(int x0, int y0, int x1, int y1, float t);

假设您经常调用它,t从 0.0 变为 1.0。然后

float x = x1 * t + x0 * (1.0 - t);
float y = y1 * t + y0 * (1.0 - t);

会给你一个介于 (x0, y0( 和 (x1, y1( 之间的点,当 t = 0.0 时,(x0, y0( 和 (x1, y1( 当 t = 1.0 时。

我会让你把它们组装在一起,然后根据需要提出具体问题。