【发布时间】:2020-12-11 19:03:44
【问题描述】:
我正在尝试使用 svg 和 JavaScript 创建“墙”。我需要根据配置的值加厚墙壁,并以给定的角度适当地斜接角落。下图描述了这一点。
我的应用程序的 svg 编辑器部分允许我绘制第 1 行和第 2 行(蓝色),并以不同的角度连接它们的端点。下图显示了一个 90 度的角度,但角度是用户根据绘制的线定义的,所以它可以是任何东西。
我已经能够通过数学计算确定一个中心点,它允许我平分用户定义的角度并创建一条斜接线,如下所示,它是一条具有端点 d 和 c 的线。根据我的计算,我知道四个绿点和绿角,以及第 1 行和第 3 行之间的已知且可配置的距离(此处未定义,但假设它为 5 个 svg 单位),顺便说一句,这将始终是平行的。
在此示例中,新墙由第 1 行(墙的内部)、第 3 行(墙的外部)和连接第 1 行和第 3 行的斜接线组成。我假设答案位于第 1 行和第 3 行之间的距离以及平分线的角度(端点 d 和 c),但我无法确定数学。
我如何找到 x?
有没有更简单的方法来解决这个问题,或者我对三角的了解比我想象的还要少(顺便说一句,我知道的很少)。提前致谢。
【问题讨论】:
标签: javascript svg geometry trigonometry