1

我有三条平行线(都是 3d 线)。说AB,CD,EF。中心线即 CD 由 AB、DE 所在的两个平面的交点给出。AB 和 CD 之间的最短距离(例如 d1)并不完全等于 CD 和 EF(例如 d2)。

与中心线距离较短的线应由第四条线代替,与另一条线等距。

我知道每条线的向量,也知道每条线上都有一个 3D 点。(对于 AB 和 EF,我知道在线上的另一个点;意思是 AB 和 EF 可以视为线段)

我试图做到这一点。但无法确切地弄清楚并得到了一些错误的答案。有时第四行会使分隔更短(可能是向量指向其他方向,或者我遵循了一些错误的方式)。我应该说 AB、CD 和 EF 线的向量没有指向同一个方向。

所以,我正在寻找一种具体的方法来做到这一点。我有 vector3 和 line 类在 C++ 中执行此操作。

请任何人告诉我如何做到这一点 b 移动一条线(即绘制第 4 行)。谢谢

4

1 回答 1

2

我在数学堆栈交换中回答了你的问题,因为那里的公式排版功能对这个答案非常有用。核心思想是建立两个向量,它们从中心线指向其他每条线,并且垂直于线的方向。然后您可以比较这些向量的长度,将较短的向量缩放为较长向量的长度,然后使用该缩放向量来获得新线。

于 2012-11-29T07:53:23.957 回答