Python:如何在两条线中一条接一条地反映几个(如果不是很多)n维点,这两条线分别由两个n维坐标定义。
给定几个N维点,
eg P1 = (4, 3, 2, 5, 7) P2 = (7, 3, 2, 2, 3),并且两条反射线中的每一条都有两个N维点,
eg L1P1 = (5, 6, 4, 3, 2) L1P2 = (7, 6, 9, 8, 1) L2P1 = (1, 3, 4, 9, 2) L2P2 = (5, 4, 3, 7, 6),在第一行和第二行中反射未定义直线的点,在本例中为P1和P2,并返回每个双反射点的坐标。
我对这类数学还是个新手,我不能让任何东西都能做到这一点。我开始尝试实现n维旋转,给定每个轴的旋转角度,但很快意识到这对我的项目范围来说太难了。我切换到尝试通过迭代每个点并找到它与反射线的交点来进行反射,这样我就可以将交叉点和给定点之间的假想线延伸到线的另一边,以创建新的反射点。我认为这不是解决这个问题的最有效的方法,而且在网上找不到太多关于找到交叉口坐标而不是距离的信息,这就是为什么我问这个问题-看看是否有人可以帮助提供一个一体化的解决方案。
我使用的是Python3.7,可以使用任何包,尽管流行的包更好-效率是最重要的。
非常感谢任何建议,谢谢!
发布于 2019-10-17 09:57:20
我们必须计算点S,具有点P和线AB

首先定义向量
AP = P - A
AB = B - AN是P在AB线上的投影,我们使用向量的点(标量)积来计算它:
AN = AB * Dot(AP, AB) / Dot(AB, AB)差异
PN = AB * Dot(AP, AB) / Dot(AB, AB) - AP对称(反射)点
S = P + 2 * PN =
P + 2 * AB * Dot(AP, AB) / Dot(AB, AB) - 2 * AP这个例子是2D的,但这种方法也适用于n维的情况。
https://stackoverflow.com/questions/58419034
复制相似问题