如何计算CGAL中直线上的点
给定 CGAL 中的 3D 线,如何计算该线上距端点已知距离的点?
Given a 3D line in CGAL, how do I compute a point on that line that is some known distance from an endpoint?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果有两个点 P0 和 P1,则可以创建向量 V = P1 - P0 >。
给定距 P0 的距离 D,您可以得到结果点 R = P0 + (D ÷ ||V||) ⋅ V。
(在线条之间线性插值,通过除以行的全长将 D 更改为百分比。)
我不知道 CGAL(并且文档有点糟糕),但我认为它会是这样的:
注意我什至找不到一种获取直线起点的方法,因此由您决定。 (
lp
部分是组成的。)If you have two points P0 and P1, you can make a vector V = P1 - P0.
Given distance D from P0, you can get the resulting point R = P0 + (D ÷ ||V||) ⋅ V.
(Linearly interpolate between the lines, changing D into a percentage by dividing by the full length of the line.)
I don't know CGAL (and the documentation kind of sucks), but I assume it'd be something like this:
Note I can't even find a way to get the starting point of a line, so that one is up to you. (The
l.p
part is made up.)您只需减去您感兴趣的点即可获得斜率向量,然后沿着它行走。 MWE 如下:
输出:
You can just subtract the points you're interested in to get a slope vector and then walk along it. A MWE is below:
Output: