数学概念:画线跟随鼠标,有半径限制

Maths Concept: Draw line to follow mouse, with a radius limit

这不是特定于一种编程语言的问题,更多的是数学概念上的问题,但为了以防万一,我在 Visual Studio.

上使用 C++

基本上,我当前的代码画了一条线,从中心(window)开始,在任何时候,每一帧都在我的鼠标位置结束 - 我以下面的线结束我的鼠标,从中间开始。

我的问题是,除了无论我的鼠标离开中心多远,线仍将遵循矢量的方向 'centerToMouse',我将如何得到完全相同的系统,但是它的长度永远只会是 100 个单位(一旦 MousePos 和中心之间的距离超过 100),这样我的鼠标后面就会有一条线(extends/shrinks),但是一旦我达到 100 个单位以上中心,只要我的鼠标距离超过 100 个单位,这条线就会保持 100 个单位。

如果这个问题措辞不当,我很抱歉,在我看来它是有道理的,但我不知道如何表达它。

我不一定需要 C++ 的代码答案,只需要概念。我已经尝试了一些涉及归一化、单位向量等的方法。但我只是被卡住了。

非常感谢您抽出宝贵时间!

转述我上面的评论:

radius = 100; 
angle = atan2(mouse_position.y-center.y, mouse_position.x-center.x);
if (distance(center, mouse_position) < radius){
    line_position = mouse_position;
}
else{
    line_position = center + Vector(radius*cos(angle), radius*sin(angle));
}