- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在寻找以下问题的快速解决方案:
我有一个固定点(比如白色测量线上的右上角),需要在由等距点构成的曲线(下方曲线)上找到最近点。此外,我对上部曲线上的每个点都这样做,以绘制不同颜色的曲线之间的距离(三个级别:低于最小值 [红色]、最小值和最大值之间 [橙色] 以及高于最大值 [绿色])。
我目前的解决方案是权衡:我采用固定点,遍历任意间隔(例如,固定点左右各 50 个单位)并计算每对的距离。这节省了一些 CPU 功率,但它既不优雅也不准确,因为我可能会错过我选择的间隔之外的最小距离。
任何关于更快算法的建议?
编辑:等距意味着所有点在 x 轴上的距离相同,这对两条曲线都是如此。此外,我不需要在点之间进行插值,这太耗时了。
最佳答案
您可以迭代直到“超出范围”,而不是任意距离。
在您的示例中,假设您从直线右上角的上曲线上的点开始。然后垂直向下下降,你得到一个距离(我的眼睛)大约 200 微米。
现在您可以从这里向右移动测试点,直到水平距离为 200 微米。除此之外,不可能达到小于 200um 的距离。
向左移动,距离下降,直到找到 150 微米的最小值,然后再次开始上升。一旦您位于上点左侧 150 微米处,同样不可能超过您找到的最小值。
如果您先向左走,就不必向右走那么远,因此优化要么遵循距离下降的方向,要么同时从中间向两个方向进行。
我不知道 um 50 是多少个单位,所以这可能比您拥有的要慢或快。不过,它确实避免了丢失较低值的风险。
由于您正在对下部曲线上的同一组点进行大量测试,因此您可以通过完全忽略这些点形成曲线这一事实来改进这一点。将它们全部放入 k-d 树或类似树中,然后反复搜索。它叫做 Nearest neighbor search .
关于c - 找到一个点到曲线上点的最小距离的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779210/
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!