用于在 Swift 中处理 2 维和 3 维几何体的定义和算法的集合。
(README.md 仍在构建中。)
N 维 | |||
---|---|---|---|
基本类型 | 图示 | 几何学类型 | 备注 |
轴对齐包围盒 | AABB.swift | 定义为两个点向量,描述 AABB 内包含的最小和最大坐标。 | |
射线(单位向量方向) | DirectionalRay.swift | 定义为起始点向量和一个 单位向量,描述射线的方向。 从概念上讲,它仅在其两个端点之一(由其方向单位向量指向)延伸到无穷远。 |
|
N 维椭球体 | Ellipsoid.swift | 定义为中心点向量和轴向量。 | |
超平面 | Hyperplane.swift | 定义为平面上的一个点向量和一个与超平面表面正交的 单位向量。 定义了它所包含的空间的两个 半空间之间的分割。 被认为是凸的,体积空间,可以与线相交并包含点。 | |
直线 | Line.swift | 定义为直线上的两个点向量对。 从概念上讲,它在两端都延伸到无穷远。 | |
线段 | LineSegment.swift | 定义为直线上的起点和终点向量。 从概念上讲,它仅包含在开始 <-> 结束的限制范围内。 | |
N 维胶囊体 | NCapsule.swift | 定义为一个线段,包含两个点向量,描述胶囊体的跨度,以及一个标量半径,定义了点被认为包含在胶囊体内的最大距离(到线段的距离)。 在 2D 中专门化为 Stadium,在 3D 中专门化为 Capsule。 |
|
超矩形 | NRectangle.swift | 定义为原点(二维中的左上角)点向量和一个 N 维大小向量。 | |
N 维球体 | NSphere.swift | 定义为中心点向量和一个标量半径。 | |
N 维立方体(超立方体) | NSquare.swift | 推广到任何维度。 定义为原点(二维中的左上角)点和一个标量值,描述了立方体在每个维度上的跨度。 在 2D 中形成正方形,在 3D 中形成立方体。 |
|
平面 | PointNormalPlane.swift | 定义为平面上的一个点向量和一个与平面表面正交的 单位向量。 | |
射线(两点) | Ray.swift | 定义为一对点 start 和 b,描述射线在投影到无穷远之前穿过的两个点。 在定义上类似于直线和线段,但向一个方向延伸到无穷远。 |
|
三角形 | Triangle.swift | 定义为三个点向量的集合。 |
导出的一个额外的库依赖项 GeometriaClipping
可用于从由线和圆弧单形组成的输入几何体生成布尔几何体。
支持的操作如下:
二维 | ||
---|---|---|
操作 | 图示 | GeometriaClipping 类型 |
并集 | ![]() |
Union2Parametric.swift |
交集 | ![]() |
Intersection2Parametric.swift |
差集 | ![]() |
Subtraction2Parametric.swift |
异或或对称差 | ![]() |
ExclusiveDisjunction2Parametric.swift |