矢量数学 - 确定边界框的坐标
Vector Math - Determine coordinations of bounding box
二维平面上有两个点,<10, 10> 指向<30, 50>。如何使用矢量数学确定蓝线是否触及 100x100 网格的边界框的坐标?
如果你能提供一个通用的解决方案(也就是公式)那就太棒了。
所以你有两个向量:a = (10;10)
和 b = (30;50)
。为了构建您的线,我们将 a
作为原点,将 b
作为方向向量,因此 g(t) = a + (b-a)*t = (10;10) + (20;40)*t
,其中 t
是线的参数。在您的示例中,您将检查 g
的 y 坐标为 100:g(t)[2] = 10 + 40*t = 100 ➪ 40*t = 90 ➪ t = 9/4
。现在把你的 t
放到 g
的等式中:g(9/4) = (10;10) + (20;40)*(9/4) = (55;100)
。结果,(55;100)
是接触边界框底部的点。
二维平面上有两个点,<10, 10> 指向<30, 50>。如何使用矢量数学确定蓝线是否触及 100x100 网格的边界框的坐标?
如果你能提供一个通用的解决方案(也就是公式)那就太棒了。
所以你有两个向量:a = (10;10)
和 b = (30;50)
。为了构建您的线,我们将 a
作为原点,将 b
作为方向向量,因此 g(t) = a + (b-a)*t = (10;10) + (20;40)*t
,其中 t
是线的参数。在您的示例中,您将检查 g
的 y 坐标为 100:g(t)[2] = 10 + 40*t = 100 ➪ 40*t = 90 ➪ t = 9/4
。现在把你的 t
放到 g
的等式中:g(9/4) = (10;10) + (20;40)*(9/4) = (55;100)
。结果,(55;100)
是接触边界框底部的点。