最小的点包围球

MiniballCpp的Python项目详细描述


这些是到bernd g_rtnersminiball software的python绑定。

设置

要安装miniball克隆存储库并运行安装脚本:

python setup.py install

还有一个针对arch linux的包:https://aur.archlinux.org/packages/python-miniball/

示例

importmathimportrandomimportminiballP=[(random.uniform(0,100),random.uniform(0,100))foriinrange(10000)]mb=miniball.Miniball(P)print('Center',mb.center())print('Radius',math.sqrt(mb.squared_radius()))

注释

该算法在数值上有一些挑战值得一提。结果可能偏离最佳结果 是机器epsilon的10倍,有时甚至更多:

P=[(642123.5528970208,5424489.146461355),(651592.349934072,5424969.380667617),(642591.1068130962,5425775.320365907),(646380.0282527813,5418648.987550308),(648098.891235107,5426586.3920675),(650011.5835629451,5426132.820254512),(650297.6960375579,5419125.777007122),(645249.2122321032,5421055.739722816),(645333.9125837489,5426228.852409409)]mb=miniball.Miniball(P)ifnotmb.is_valid():print('Possibly invalid!')print('Relative error',mb.relative_error())

如果这是您的问题,将输入移到(0,0)可能会有帮助:

minx=min(P,key=lambdap:p[0])[0]miny=min(P,key=lambdap:p[1])[1]P=[(p[0]-minx,p[1]-miny)forpinP]mb=miniball.Miniball(P)ifnotmb.is_valid():print('Possibly invalid!')print('Relative error',mb.relative_error())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Camera API如何聚焦图像中多边形的中心?   来自Java的spring Filling邮戳模板   java只能编织本地JAR的方面吗?   javajavax。加密。BadPaddingException:解密错误无法解密加密的公钥   从java运行ansibleplaybook   在Java中,如何从不同的偏移量读取大块的字符串文件?   java Android GridView将无法确定正确的位置   executorservice如何使用自动线程管理在Java中实现生产者/消费者   JavaEJB3.1嵌入式API单元测试EJB+JPA实体   API的java输出自动停止   java Checkmarx缺陷解决方案   java缓存,获取最早的元素   WebSphere8中的JavaEJB问题   两个时区之间的java Jodatime时差   Java 8不兼容类型错误   java TableCellEditor:如果按下该键,则清除原始文本;如果没有输入,则保留值