如何在线上找到线条的反射?

时间:2017-06-17 05:59:39

标签: python algorithm geometry computational-geometry

我有两条线假设一条是雷,另一条是墙。所以,当Ray撞到墙上时,它会反射回来。我想知道Ray和墙的交点以及反射的线点或方程。壁线始终垂直于x轴或y轴。

例如,Ray线点为(0, 2)(3, 0)。壁点为(0, 0)(2, 1)。我必须将其转换为Python程序。所以,如果任何人都可以用编程(特定算法)解释那些对我有帮助的方法。

提前致谢

1 个答案:

答案 0 :(得分:0)

  

射线线点为(0,2)和(3,0)

(x0, y0) = (0, 2)
(x1, y1) = (3, 0)

因此光线具有参数方程

x = x0 + t * (x1 - x0)  //here 0 + 3 * t
y = y0 + t * (y1 - y0)  //here 2 - 2 * t

现在你必须首先找到哪个坐标到达边界 - 求解方程式

x0 + t * (x1 - x0) = xb
y0 + t * (y1 - y0) = yb

并获得较小的t

镜像点成为参数方程的新基点。如果遇到垂直边框,x分量会改变其符号,则y分量保持不变。如果你遇到水平边框 - 反之亦然。