gpt4 book ai didi

algorithm - 如何确定射线是否与矩形相交?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:24 31 4
gpt4 key购买 nike

我们有一条射线,从点 A(X, Y) 开始,一直延伸到给定的点 B(X, Y) != A。我们有一个由点 K,L,M,N 定义的矩形,每个点都有它的 (X, Y)

我想知道如何检测我们的射线是否与我们矩形的任何点相交(得到一个bool,而不是精确坐标)?计算这个值的算法是什么?

最佳答案

让我直截了本地说。你有一个向量 v朝着方向出发(b_x - a_x, b_y - a_y)(a_x, a_y) 开始.

考虑向量 w = (b_y - a_y, a_x - b_x) .它与第一个成直角。 (用点积验证。)因此对于任何点 (p_x, p_y)您可以通过计算 (p_x - a_x, p_y - a_y) 的点积轻松判断它在矢量的哪一侧与 w并看着标志。

因此,对矩形的所有 4 个角进行点积。如果任何点积为 0,则它们在向量上,如果符号改变则有交集,如果符号始终相同则没有交集。

关于algorithm - 如何确定射线是否与矩形相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906381/

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