如果在此并集内有凸对象和点 p 的并集,那么如何从 p 中找到并集(凹)表面上的最近点?
对于它的价值,我可以很容易地找到单个凸起物体表面上的最近点,这是几个给我带来问题的联合。
编辑:我非常抱歉,我的意思是对象的结合,而不是交集:(对所有回答的人道歉。
EDIT2:这是一张描述AakashM礼貌的小图片, a 是来自的 A 表面上的最近点O , b 是 B 表面上距离 O 最近的点, x 是我正在寻找( O == p )。
我的物体不是多边形物体,而是具有半径的线条(我认为术语胶囊有时会用于此但我不知道这个术语是否被普遍接受)。
答案 0 :(得分:3)
可能有一种更有效的方法,但天真的方法是在每个表面上找到最接近 p 的点,然后选择最小的那个距离。由于 p 位于所有对象的相互交叉点内,因此该点保证位于交叉点表面。
答案 1 :(得分:0)
我猜你必须计算表面上所有单个物体上的最近点(给你 n 点),然后检查每个点,如果它的在里面所有其他对象(因此它是交叉点表面的一部分),而不是找到最接近 p 的对象。
这个算法使用的事实是,一个点位于 n 凸对象交点的表面上,如果它是在其中一个对象的表面上并且< em> inside 所有其他对象(交叉点的表面由相交对象的小块表面组成......)
答案 2 :(得分:0)
我不知道您正在处理的工具和数据结构,但是例如在matlab中当您与n个多边形相交时,结果是一个新的交叉多边形,并且如果您可以轻松找到表面上的最近点如果交叉多边形是凹的,则可以对三角形物体进行三角测量以获得凸面物体。
答案 3 :(得分:0)
(对于联盟版)
并集的每个凹点都位于两个对象的边界的交点处。所以你可以计算所有这些交点,测试它们是否在你的联合边界上,并选择最接近p。
但是,你需要更多,如下面的情况(2个矩形的联合)
+--------------------+
| |
+--------------------+
| p |
| |
| |
| |
| |
+--------------------+
您想要的结果不是边界交叉点,并且它不是单独的任何一个矩形与p的最近点。我不知道如何处理这种情况。