用Python包装器在c++中实现二维Delaunay三角剖分

delaunator的Python项目详细描述


用Python包装器,C++中的Delauntor
2D Delaunay三角剖分。
(或无论您想要什么,感谢swig)

u许可证:gpl-2.0;供使用、帮助和共享。cf license.txt文件。
可移植性:对Debian稳定的代码和测试,用C++ 11,GCC 4.7.2,使3.81,Python 3.2和SWIG 2;对于其他平台,我不知道,但是除了Windows,我认为可移植性是完全可能的,也许已经完成了。





-[x]找到比ttl限制更好的方法来解决无限递归问题;(find:使用一组处理过的面)
-[x]顶点删除;
-[x]管理大/精确移动;
-[x]允许用户在delaunator实例中选择查找器选项;
-[x]管理混淆顶点;
-[x]管理顶点和关联用户对象之间的内部关联;
-[x]编写API文档;
-[x]编写规范文件;
-[x]在顶点的n个最近邻上实现迭代器;
-[x]在与谓词相关的顶点的n个最近邻上实现迭代器;
-[x]在远离最大距离的相邻点上实现迭代器;
-[x]优化顶点、边和包含的面;
-[]管理一起移动的顶点组;[下一个目标]
-[]支持约束;[下一个目标]
-[]内置冲突管理;[下一个目标]
-[]以恒定的复杂性访问较近的邻居;[分支上的POC;不感兴趣的结果]
-[]使用线程;[一天]
-[]允许用户通过配置文件或其他有用的方式选择预处理器选项;[一天]
-[]改进API文档;[一天]
-[]改进规范文件;[一天]
-[]实现多个Delaunator实例中存在的多个TrianguledObject;[一天]
-[]找到收回face类的方法(因为它对用户没用);[一天]
-[]改进vertex类中的virtualvertex容器;[进行中]



在它和当前实现之间做基准测试;
-勇敢地保持纯python版本,如果它更快;
-做一个关于quad edge和本模块使用的其他结构/算法的技术教程;
-做一个关于创建这样一个包的方法的技术教程;
-以python风格呈现源代码的构建文档;






trianguledobject

不是无:
d=str(othr.distanceto(self))
返回self.name+"+"("+d+")"
否则:
返回self.name

界限
xmin,xmax,ymin,ymax=0,600,0,600

'rosalind']:
dt.addtrianguledobject(人名),(randint(xmin,xmax),randint(ymin,ymax))

移动
dt.movtrianguledobject(man,(randint(xmin,xmax)/2,randint(ymin,ymax)/2))

所有距离最远的邻居300
print("我是",m a n.name)
print("我的邻居是"+",".join([n.presentation(man)代表n in man.neighbors at(300)))
print("其他的是"+",".join([n.presentation(man)代表n in man.neighborsat(dt.distancemax(),300)])
print("all are"+","。join([n.presentation(man)代表n in man.neighborsat(dt.distancemax()))))

PyDelaunaTunter,用于更复杂的内置示例,具有GUI和直接数据操作。
BR/> BR/> BR/>更改日志> BR/> -1.0.4:< BR/> -C++单元测试创建;
删除重写算法;
-TTL MeCeMeCon被更强大的处理过的面部集合替换;
第一种网格生成方法(C++);
-虚拟顶点校正的内部所有权;
-新的STL容器类方法:清除;< BR/> -修复关于在另一个顶点上移动顶点的错误;
-1.0.3:
-在具有混杂虚拟度的拐角处移动时不再出现分段错误;
-对虚拟度的算法校正::nearnerighbors()并删除无用参数;
-改进顶点、边和面的数据结构;
-更正迭代器的常量正确性;
-在arch文档上添加几个单词(在doc/中始终可用);
-1.0.2:
-清除setup.py;
-更新自述程序方向指示,并添加更改日志;
-文档上载始终有漏洞;
-edge类的doc的一些附加行;
-设置非详细和非调试编译标志;
-按为主要trianguledobject的邻居访问添加的谓词筛选;






够了。
请注意需要刷卡。(请参阅下面的链接;swig在大多数情况下位于官方存储库中)

可能会出现一些问题:
-在我的debian stable上,swig被命名为*swig2.0*,但setuptools调用*swig*。您可以使用command*python3 setup.py setopt--command=build_ext--option=swig--set value=swig2.0*或诸如此类的命令更正此问题。
-请确保只有一个版本的setuptools,有时在安装两个不同版本时会出现问题。

如有必要,请获取帮助。


installations
定义调试后,
将执行大量验证(通过断言调用),因此delete debug将提高性能,但会删除损坏的检测;

请随意修改这些内容。(不是删除调试,如果您想更快地使用delaunator)






乳胶文档在文档汇编中生成。
在线文档可以在pythonhosted.org上找到。文档/文档中的一些文档不是由DOXEGEN生成的:它的键盘写文档,NOTABLE规范文档。
BR/> BR/>使用文档。BR/>文档是通过解析C++源生成的DoXEGEN文件。由于swig通过解析同一个源代码来创建python包装器,因此文档可用于python代码。我将找到一个生成纯python文档的解决方案。链接
https://github.com/aluriak/delaunator
https://pypi.python.org/pypi/delaunator
https://pythonhosted.org/delaunator/

http://swig.org
http://swig.org/tutorial.html

http://tototologic.blogspot.fr/2013/11/core quad edge implementation explained.html

http:。//STACkoverflow.com/questions/10121957/swig to python import errordynamic模块未定义init函数

http://sametmax.com/creer un setup py et mettre sa bibliothequeue python en ligne sur pypi/
https://docs.python.org/3.2/distutils/setupscript.html扩展源文件
https://pythonhosted.org/setuptools/setuptools.html

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

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题