社区
C++ 语言
帖子详情
3D坐标里求一个点到线段最短距离的点
rgmlkthh
2008-12-08 12:53:40
如题。用程序实现下,是一个维塔士的笔试题。
谢谢了。
...全文
1026
10
打赏
收藏
3D坐标里求一个点到线段最短距离的点
如题。用程序实现下,是一个维塔士的笔试题。 谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longhua1989
2008-12-12
打赏
举报
回复
顶二楼的
Dreamz
2008-12-10
打赏
举报
回复
2楼的解释很不错,up一下
rgmlkthh
2008-12-10
打赏
举报
回复
jtl
星羽
2008-12-08
打赏
举报
回复
线段??
先求点到线段所在直线的最短距离的点(也就是做垂线得到的交点),如果这个点在线段上,则就是所求的点
不在则看看线段两个端点中,那个最靠近这个点,最靠近者就是所求点
healer_kx
2008-12-08
打赏
举报
回复
[Quote=引用 2 楼 hbqing_ting 的回复:]
在二维/三维图形学系统当中,线段的拾取是一个经常使用的功能
如何根据鼠标点来判断线段是否被选择了,最主要的方法之一是通过点到线段的最小距离来判定的
无论二维还是三维情况下,使用点到直线的距离公式似乎是最直接的选择
但是不要忘记点到直线公式计算的是点和直线之间的关系,而不是点和线段之间的关系
需要额外的判断,点在线段上的投影点是否位于线段内部,是才可以采用点到直线的公式,否则就不能
算法如…
[/Quote]
UP
cba_v
2008-12-08
打赏
举报
回复
up
不懂 啊!
pony_ml
2008-12-08
打赏
举报
回复
说实话,题我都没看明白。
究竟是要求距离是多少,还是点的坐标
SearchLife
2008-12-08
打赏
举报
回复
顶2楼
lc19890326
2008-12-08
打赏
举报
回复
2L很详细
hbqing_ting
2008-12-08
打赏
举报
回复
在二维/三维图形学系统当中,线段的拾取是一个经常使用的功能
如何根据鼠标点来判断线段是否被选择了,最主要的方法之一是通过点到线段的最小距离来判定的
无论二维还是三维情况下,使用点到直线的距离公式似乎是最直接的选择
但是不要忘记点到直线公式计算的是点和直线之间的关系,而不是点和线段之间的关系
需要额外的判断,点在线段上的投影点是否位于线段内部,是才可以采用点到直线的公式,否则就不能
算法如下
class Point
float Distance(Point p1, Point p2); // 返回两点之间的距离
float DistanceLine(Point a, Point b, Point c) // a和b是线段的两个端点, c是检测点
{
Point ab = b - a;
Point ac = c-a;
float f = ab * ac;
if (f<0) return Distance(a, c);
float d = ab * ab;
if ( f>d) return Distance(a, c);
f = f/d;
Point D = a + f *ab; // c在ab线段上的投影点
return Distance(a, D);
}
这个算法计算量很少,在现在流行配置的计算机基本上在当中1秒钟可以检测出上百万个线段
这个是检测一个点和一个线段之间的最短距离的
对于一个系统当中存在大量的线段需要检测的时候,应该把线段按照区域划分成组,建立一个包围盒
先检测点是否在包围盒内部,然后再进入组内检测具体的线段
3D
中
点
和
线段
与
线段
上的交
点
之间的最
短距离
本文介绍了一种通过向量运算和几何知识计算三维空间中
点
到
线段
最
短距离
的方法,并提供了一个Python实现示例。
求空间中2条
线段
的最
短距离
(用osg+C++写的)
本文介绍了一种计算两
线段
间最
短距离
的方法,并提供了具体的数学公式及实现算法。此外,还讨论了
一个
点
到
线段
最
短距离
的计算方式。
求两条空间直线的最近距离,以及他们最近距离线的两
点
坐标
本文详细介绍了如何计算两空间
线段
之间的最
短距离
,包括解析几何原理、向量运算及具体算法实现,适用于三维空间中任意两
线段
的距离求解。
三维空间两条直线的最
短距离
、最近
点
及C++算法实现
本文探讨了如何计算三维空间中两条直线的最
短距离
,并介绍了最近
点
的求解方法。通过定义直线的
点
方向向量,求得公垂线向量,进而计算出直线在公垂线上的投影。当直线距离小于给定阈值时,确定最近
点
坐标
。此外,还提供了C++算法实现的思路。
【Apollo Common代码解析-计算
点
到
线段
的距离】
本文介绍了如何在路径规划中使用DistanceTo函数快速计算
点
到
线段
的最
短距离
,以及Point2LineSegment算法的原理和优化,通过实例展示了两种方法的性能对比,强调了效率提升的重要性。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章