COMPUTATIONAL GEOMETRY · SPATIAL ALGORITHMS

计算几何可视化实验室

八个交互式模块,可视化经典计算几何算法:凸包构造、Delaunay 三角剖分、Voronoi 图、KD-Tree 最近邻、碰撞检测、空间分割、扫描线求交与多边形裁剪。每个模块均提供可交互的 SVG 可视化、算法步进与实时统计,全部基于纯 HTML/CSS/JS + SVG 实现,零外部依赖。

8 Modules SVG + Vanilla JS Zero Dependencies Single File
01CONVEX HULL · CONVEXITY

凸包

Andrew 单调链与 Graham 扫描算法。按 x 坐标排序后分别构建下凸包与上凸包,逐步回溯去除右拐点,最终合并得到包围所有点的最小凸多边形。

算法可视化
02TRIANGULATION · EMPTY CIRCLE

Delaunay 三角剖分

基于空圆性质的三角剖分。对每三个点构造外接圆,若圆内不含其他点则该三角形属于 Delaunay 三角剖分,最大化最小角,避免狭长三角形。

算法可视化
03VORONOI · NEAREST REGION

Voronoi 图

Fortune 扫描线思想的可视化。每个站点拥有离它最近的区域,单元边界为相邻站点的垂直平分线。扫描线自左向右移动,逐步揭示各单元。

算法可视化
04KD-TREE · NEAREST NEIGHBOR

最近邻搜索

KD-Tree 的构造与最近邻查询。沿交替轴在中位数处递归划分空间,查询时优先搜索近侧子树并利用超平面距离剪枝远侧,可视化访问路径与剪枝。

算法可视化
05COLLISION · BOUNDING VOLUMES

碰撞检测

AABB 轴对齐包围盒、OBB 有向包围盒(分离轴定理 SAT)与 GJK(基于 Minkowski 差)。拖动多边形对象,观察不同算法的包围体与碰撞响应。

算法可视化
06PARTITIONING · SUBDIVISION

空间分割

四叉树、KD-Tree 与 BSP 三种空间细分结构。四叉树四向递归划分,KD-Tree 沿交替轴二分,BSP 使用斜分割超平面。可调节最大深度观察细分过程。

算法可视化
07SWEEP LINE · INTERSECTION

扫描线

Bentley-Ottmann 扫描线求线段交点。垂直扫描线自左向右移动,事件队列处理端点与交点,状态结构维护活跃线段,逐步发现所有交点。

算法可视化
08INTERSECTION · CLIPPING

几何求交

Sutherland-Hodgman 多边形裁剪与线段求交。拖动多边形顶点与裁剪窗口,实时观察裁剪结果;线段模式下计算两线段交点并显示参数。

算法可视化