gpt4 book ai didi

javascript - 与 SylvesterJS 的线相交 - 我是否打破了我的数学?

转载 作者:行者123 更新时间:2023-11-30 13:17:05 25 4
gpt4 key购买 nike

我正在使用 sylvester.js对于数学框架,但似乎要么忘记了几何(可能),要么没有正确使用它。我正在尝试:

var angle = 45;
var line1 = $L([1,1],[Math.tan(angle * Math.PI/180),Math.tan(angle * Math.PI/180)]); //Should be a 45-degree angle
angle = -45;
var line2 = $L([0,0],[Math.tan(angle * Math.PI/180),Math.tan(angle * Math.PI/180)]); //Should be a -45-degree angle
line1.intersects(line2);
//returns false, should be true, I would think?

这应该在 -45 度处创建一条通过 0,0 的线,在 45 度处创建另一条通过 1,1 的线相交,对吧?有什么建议么? (注意:我通常使用 deg2rad var 而不是 Math.PI/180,这纯粹是为了举例)

最佳答案

回想一下, Angular 的正切等于对边与相邻边的长度之比。换句话说,上升超过运行。因此,切线给出的是直线的斜率,而不是沿直线的矢量。

enter image description here

要将 Angular 转换为矢量,请使用正弦和余弦:

m⃑ = [cos(θ), sin(θ)]

您在将极坐标转换为笛卡尔坐标的公式中看到了这一点:

(x, y) = (r * cos(θ), r * sin(θ))

因为大小无关紧要(即使你有一个大小,$L 将向量归一化),将“r”从等式中去掉,你就得到了 的等式m⃑ 同上。

请注意,对于代码中的每个方向向量,两个分量相等,因此向量位于直线 y=x 上;因此它们是平行的。您还可以证明向量是平行的,因为向量是彼此的标量倍数。更具体地说,由于向量方向相反(标量为负),因此它们是 antiparallel .引用点 (0,0) 和 (1,1) 位于两条直线上,因此每个向量跨越的直线重叠。 Sylvester.js 的 Line.intersects仅当存在唯一交点时才返回 true。由于两条线处处相交,没有唯一点,函数返回 false。

关于javascript - 与 SylvesterJS 的线相交 - 我是否打破了我的数学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com