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

时间:2010-08-17 18:26:24

标签: c++ computational-geometry cgal

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

1 个答案:

答案 0 :(得分:3)

如果你有两个点P 0 和P 1 ,你可以做一个向量V = P 1 - P 0

给定距离D从P 0 ,你可以得到结果点R = P 0 +(D÷|| V ||)⋅V。

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


我不知道CGAL(和文档类型很糟糕),但我认为它是这样的:

Line_3<K> l = /* ... */;
Vector_3<K> v = l.to_vector();
Point_3<K> r = l.p + (d * d / v.squared_length()) * v;

注意我甚至找不到一种方法来获得一条线的起点,因此你可以选择一条线。 (l.p部分组成。)