gpt4 book ai didi

coordinates - 求两条直线交点的公式

转载 作者:行者123 更新时间:2023-12-02 20:55:57 32 4
gpt4 key购买 nike

如果 line1 和 lin2 都由 x,y,alpha 定义,其中 x,y 是直线上一点的坐标,alpha 是直线与 x=const 之间的角度,如何找到 line1 和 lin2 相交的点?

我尝试应用正弦定理,但它产生了两个答案(三角形可以建立在一条直线的两侧)。我可以用其中一个点检查哪个点形成正确的斜率,但这很难看。

我可以切换到 y=ax+b 表示,但是我有特殊情况需要担心。垂直线和水平线应该不同,以避免在 1/sin(alpha) 和 1/cos(alpha) 情况下被零除。

我不是在寻找某种语言的实现,只是一个公式。

这些问题不相关,因为它们处理的是有限线段,而不是直线。

Given two points and two vectors, find point of intersection
How do you detect where two line segments intersect?

最佳答案

假设 line 1[x1, y1]alpha1 定义,line 2 定义>[x2, y2]alpha2

假设 k1 = tan(alpha1)k2 = tan(alpha2)

那么交点x坐标的公式为

x = (y2 - y1 + k1 * x1 - k2 * x2) / (k1 - k2)

Note: Function tan is undefined for angles pi / 2 + k * pi (where k is an arbitrary integer), so:

如果 k1 未定义,则 x = x1y = y2 + k2 * (x1 - x2)

如果 k2 未定义,则 x = x2y = y1 + k1 * (x2 - x1)

(两者实际上与交换索引 1 <--> 2 相同)。

关于coordinates - 求两条直线交点的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40330407/

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