Javascript 如何缩短a点和B点的直线

Javascript 如何缩短a点和B点的直线,javascript,math,Javascript,Math,我有一个点a和点B的线段。 我想要一个较短线段的点 也许我可以使用斜率dX/dY,但是当dY为0时有一个例外。 另外,如何表示这一行以保持这些操作的简单性?下面是一种避免处理异常的方法。它甚至适用于A和B是同一点的退化情况 如果您有一条从点a到B的线段,并且希望使其在两侧缩短一个分数t(例如t=0.1),则可以计算两个新点: C = (1 - t) * A + t * B D = t * A + (1 - t) * B 并在这些新点之间绘制线段。在2D中,您需要对x和y组件进行计算。在3D中,

我有一个点a和点B的线段。 我想要一个较短线段的点

也许我可以使用斜率dX/dY,但是当dY为0时有一个例外。
另外,如何表示这一行以保持这些操作的简单性?

下面是一种避免处理异常的方法。它甚至适用于A和B是同一点的退化情况

如果您有一条从点a到B的线段,并且希望使其在两侧缩短一个分数
t
(例如
t=0.1
),则可以计算两个新点:

C = (1 - t) * A + t * B
D = t * A + (1 - t) * B
并在这些新点之间绘制线段。在2D中,您需要对
x
y
组件进行计算。在3D中,您还需要计算
z
组件。由于这是一个线性组合,C和D将位于AB线上


请注意,通过选择小于0或大于1的t,可以使用相同的方法延长线段。

如果存在异常,请将其视为异常。这就是编程的目的——考虑不同的情况。你说的短线是什么意思?所有的线都是无限长的。请澄清你的问题。这是正确的答案。无需进一步回答。