【发布时间】:2017-01-13 00:58:54
【问题描述】:
我正在尝试在两个现有位置 (x,y,z) 之间找到一个新位置 (x,y,z)。
例如假设 locA 和 locB 之间的距离是 2500。locNew 应该始终是距离为 300 的位置,并且应该在 locA 和 locB 的线上。
找到 locA 和 locB 之间的中点我没有问题,但我一直在努力寻找针对这种特定情况的 locNew。
我试过了,但它返回的点不在从 locA 到 locB 的线上:
locA = {x = 400, y = 400, z = 400}
locB = {x = 1200, y = 1200, z = 1200}
--this is wrong somehow
locNew_x = (locB.x+locA.x)-(locB.x-300)
locNew_y = (locB.y+locA.y)-(locB.y-300)
locNew_z = (locB.z+locA.z)-(locB.z-300)
locNew = {x = locNew_x, y = locNew_y, z = locNew_z}
--draws a line between two objects
DrawLine(locA, locNew)
编码语言并不重要,因为在大多数语言中计算应该看起来“几乎”相同,请记住,我正在寻找非数学形式的解决方案。
更新: 如果 x,y,z 相同,则标准解决方案有效,但如果它们不同,如下例所示。
locA = {x = 1475, y = 95, z = 838}
locB = {x = 2226, y = 110, z = 1190}
【问题讨论】:
标签: coordinates distance calc