假设我在3D空间中有2个点,其中一个位于:
x=2, y=3, z=5
和第二个:
x=6, y=7, z=10
在代码中,通过扩展(例如,加倍)这两点(相对于第一点)之间的距离来计算第三点的坐标的最快方法是什么?
答案 0 :(得分:2)
如果你想要一个延伸到(x2,y2,z2)
以外的点超出(x1,y1,z1)
:
x3 = x2 + (x2 - x1) (= 10)
y3 = y2 + (y2 - y1) (= 11)
z3 = z2 + (z2 - z1) (= 15)
或:
(x2 * 2 - x1, y2 * 2 -y1, z2 * 2 - z1)
这很简单。
如果你想要的东西不是长度的两倍,你可以缩放(x2 - x1)
- 类型的术语。例如,如果您希望它比当前行长50%,请将它们乘以0.5
(+ 50%)。如果你想要它的三倍,可以将它们乘以2(+ 200%)。
对于可以执行此扩展的代码,就像这样,它会为您提供一个端点pDest
,与p1
形成一条线{{1} } {} percent
的大小:
p1-p2