如何确定两个凹/凸形状是否处于特定距离
How to determine if two concave/convex shapes are at particular distance?
我必须确定两个凹/凸形状之间的距离是否为d。我知道分离轴定理在确定距离时可能很方便,但它在O(n2)时间内运行,我正在寻找适用于任何形状的O(n)或O(nlogn)算法。我想在JavaScript
这是一个广泛而艰巨的问题。
要处理最困难的情况(如椭圆/Bezier距离),您需要以某种方式压平轮廓,因此我建议在所有情况下都要压平,并仅解决两个多边形的问题。
令人惊讶的是,你在网上几乎找不到关于两个多边形之间距离的资源。
假设处理的是形状的内部(而不仅仅是轮廓),则必须首先检查多边形是否存在空心相交(否则距离为0)。我想这可以在时间O(N.Log(N))内完成。
然后,如果我是对的,两个多边形之间的最近距离是所有顶点到另一个多边形的最短距离。如果你构造两个多边形的Voronoi图(在时间O(N.Log(N))中是可行的),你会得到两个平面细分,在这个细分中,你可以解决每个点在时间Log(N)中的点位置问题。
所有这些加在一起应该产生O(N.Log(N))解决方案。你需要一个专门的计算几何库来实现这一点。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何检测是否有溢出
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 测试索引值是否等于某个数字的倍数
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 是否可以禁用jquery中的单个单选按钮
- 是否可以从父类访问子类的属性
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 如何确定两个凹/凸形状是否处于特定距离
- 是否可以从JavaScript更改CSS翻译距离值
- 如何检测用户是否滚动了一定距离
- 检查元素是否距离可见x像素