如何在CGAL中计算一条线上的点

Max*_*ris 5 c++ cgal computational-geometry

给定CGAL中的3D线,如何计算该线上距离端点已知距离的点?

GMa*_*ckG 4

如果有两个点 P 0和 P 1,则可以创建向量 V = P 1 - P 0

\n\n

给定距 P 0的距离 D ,您可以得到结果点 R = P 0 + (D \xc3\xb7 ||V||) \xe2\x8b\x85 V。

\n\n

(在线条之间进行线性插值,通过除以线条的全长将 D 更改为百分比。)

\n\n
\n\n

我不知道 CGAL (而且文档有点糟糕),但我认为它会是这样的:

\n\n
Line_3<K> l = /* ... */;\nVector_3<K> v = l.to_vector();\nPoint_3<K> r = l.p + (d * d / v.squared_length()) * v;\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,我什至找不到一种方法来获取一条线的起点,因此这取决于您。(该l.p部分已编好。)

\n