用于空间查询、函数和类的小型纯python库

spatial的Python项目详细描述


概述

Spatial是一个模块,它包含一系列与空间相关的辅助对象 功能和类。

界限

边界框允许您 计算点云的整体边界-但不存储 点云本身,它只是扩展以匹配最外部的限制 点云数据的。

有三个边界框类:

bounds:这是一个n维边界框,允许您的点 任何尺寸的长度。如果在一维中工作,这很有用 或者在一个大于三维的空间里。

bounds2d:这继承自bounds-因此提供所有相同的函数 只是它有一些方便的函数,假设宽度为 还有身高。

bounds3d:与bounds2d非常相似,bounds3d是一个bounds对象,它公开 具有宽度、高度和深度假设的功能。

在本例中,我们创建了两个三维边界框 测试它们是否相交

importspatial# -- Test bound intersectionspoints_a=[[0,0,0],[1,1,1],]points_b=[[5,5,-5],[3,3,3],]bounds_a=spatial.Bounds3D(points_a)bounds_b=spatial.Bounds3D(points_b)print('Does bounds A intersect with bounds B : %s'%('Yes'ifbounds_b.intersects(bounds_a)else'No'))

在下面的示例中,我们创建一个边界框并测试 给定点在边界内:

importspatialbounds=spatial.Bounds2D()# -- Create a point cloudpoints=[[-2,-2],[2,2],]# -- Add all our pointsbounds.add_points(points)# -- Test whether a point is inside the boundsoutside_point=[3,5]print('Bound contains %s : %s'%(outside_point,bounds.contains(outside_point)))# -- Same test giving a point inside the boundsinside_point=[1,1]print('Bound contains %s : %s'%(inside_point,bounds.contains(inside_point)))

矢量

此类表示一个向量,该向量公开了通常使用的 三维矢量的方法,如交叉和点积以及 长度/大小。

importspatial# -- Create two vectorsv1=spatial.Vector3(1.0,0.0,0.0)v2=spatial.Vector3(0.0,1.0,0.0)# -- Calculate the angle between the two vectorsv1.angle(v2)

向量支持基本的就地操作,例如 加、减、乘、除。

importspatial# -- Create two vectorsv1=spatial.Vector3(1.0,2.0,3.0)v2=spatial.Vector3(1.0,2.0,3.0)# -- Add the two vectorsprint(v1+v2)# -- Subtract the two vectorsprint(v1-v2)# -- Multiply the two vectorsprint(v1*v2)# -- Divide the two vectosprint(v1/v2)

给出:

Vector3(2.0, 4.0, 6.0)
Vector3(0.0, 0.0, 0.0)
Vector3(1.0, 4.0, 9.0)
Vector3(1.0, 1.0, 1.0)

信贷与合作

我总是乐于合作,所以如果你发现了虫子就告诉我,或者 你想贡献或参与只是呼喊!

兼容性

launchpad已经在windows和ubuntu上的python 2.7和python 3.7下进行了测试。

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

推荐PyPI第三方库


热门话题
java结合两个Date实例使用Joda创建datetime   带有POI和FileOutputStream的java Swing应用程序性能问题   Java中是否存在类似于Python的异常?   Java中有界通配符的泛型   使用字符和子字符串的java不同输出   在Java中获取LDAP模式   java自定义类在自身上生成ClassNotFoundException   java连接到从internet到通过LAN连接到internet的系统的serversocket   java如何通过maven在jaxws中使用jaxb插件?   java Kerberos如何获取主体或客户端名称?   java应用服务器中是否有JDBC的单点登录解决方案?   java是存储矩阵值以便以后访问的更好方法   Java等级计算器。开始这门课我需要一些帮助   未找到Android“libc++\u shared.so”中的java OpenCV实现   当我使用web配置部署描述符时使用java。xml。它显示了错误   java为什么我的ArrayList的add方法冲突,如何编辑我的自定义add方法   java创建一个以集合为键的映射?   java如何将用户输入到数字三角形中   为什么Java在读取LinkedHashMap时会自动从字符串转换为整数   类动态创建和读取java类