在给定角度从点计算点

Calculate point, from point, at given angle

我正在尝试使用 svg 和 JavaScript 创建 'walls'。我需要根据配置的值加厚墙壁,并以给定的角度适当地斜接角落。下图描述了这一点。

我的应用程序的 svg 编辑器部分允许我绘制第 1 行和第 2 行(蓝色),并以不同角度连接它们的端点。下图显示的是 90 度角,但该角度是用户根据绘制的线条定义的,因此可以是任何角度。

我已经能够通过数学计算来确定一个质心点,它允许我平分用户定义的角度并创建一条斜线,如下图所示为具有端点 d 和 c 的线。根据我的计算,我知道四个绿点和绿角,以及第 1 行和第 3 行之间的已知且可配置的距离(此处未定义,但假设它有 5 个 svg 单位),顺便说一下,它始终是平行的。

在此示例中,新墙由第 1 行(墙的内部)、第 3 行(墙的外部)和连接第 1 行和第 3 行的斜接线组成。我假设答案在于第 1 行和第 3 行之间的距离,以及平分线的角度(端点 d 和 c),但我无法确定数学。

如何找到 x?

有没有更简单的方法来解决这个问题,或者我对三角函数的了解比我想象的还要少(顺便说一下,我知道的很少)。提前致谢。

毕达哥拉斯:A**2 + B**2 = C**2 - 意思是 (5 svg 平方) + (5 svg 平方) = (C -> X) 平方。这给了你从 C->X 的距离,你已经有了绿色角度。

你必须决定你想要的精确度(小数位数)。

说第1行到第3行的距离== 5;

const A = 5;

const length = Math.sqrt((A * A) + (A * A));

console.log(length);

从 C -> X 延伸斜接线:

  • 从 C 开始,在距第 1 行 1/2 绿色角度处绘制计算长度。

绿色角度的一半,因为 D 和线 1 之间的假想线与线 1 和线 3(以及延伸 X 的交点)成直角。