在blender的voronoi.c文件中,变量float co[2]是什么?

In blender's voronoi.c file, what is the variable float co[2]?

以下是 voronoi.c (https://github.com/martijnberger/blender/blob/master/source/blender/blenlib/intern/voronoi.c) 文件及其一些导入库中定义的主要结构:

//from BLI_voronoi.h
typedef struct VoronoiSite {
    float co[2];
    float color[3];
} VoronoiSite;

typedef struct VoronoiEdge {
    struct VoronoiEdge *next, *prev;

    float start[2], end[2]; /* start and end points */

    /* this fields are used during diagram computation only */

    float direction[2];     /* directional vector, from "start", points to "end", normal of |left, right| */

    float left[2];          /* point on Voronoi place on the left side of edge */
    float right[2];         /* point on Voronoi place on the right side of edge */

    float f, g;             /* directional coeffitients satisfying equation y = f * x + g (edge lies on this line) */

    /* some edges consist of two parts, so we add the pointer to another part to connect them at the end of an algorithm */
    struct VoronoiEdge *neighbour;
} VoronoiEdge;

typedef struct VoronoiTriangulationPoint {
    float co[2];
    float color[3];
    int power;
} VoronoiTriangulationPoint;

代码文件:https://svn.blender.org/svnroot/bf-blender/branches/ge_components/source/blender/blenlib/BLI_voronoi.h

VoronoiSite 包含一种颜色,我假设它是每个单元格的颜色,因为对 VoronoiSite 的两个引用都包含一个从 i = 0 到整数“sitestotal”的循环和一个名为 co 的变量,可能是 2d坐标?

什么是图表计算? VoronoiEdge 是不言自明的,它引用了 voronoi 单元的边缘,但是为什么当 blender 中的节点可以达到 4D 时坐标是 2D 的?我将继续查看 voronoi.c 脚本来寻找答案。

VoronoiTriangulationPoint 再次具有该协变量,int“power”可能是指距离函数 a^k + b^k = c^k 的幂 k,blender 在 voronoi 节点中进行调整。

总结一下BLI_voronoi.h,float co[2]是什么?

另一个让我绞尽脑汁的结构是来自 voronoi.c 的 VoronoiEvent。我真的不需要这个答案,但如果有人知道答案就太好了。

//from voronoi.c
typedef struct VoronoiEvent {
    struct VoronoiEvent *next, *prev;

    int type;       /* type of event (site or circle) */
    float site[2];  /* site for which event was generated */

    struct VoronoiParabola *parabola;   /* parabola for which event was generated */
} VoronoiEvent;

“站点”或“圆”有点含糊,我确定它指的是 voronoi 单元的形状,但指的是具有一系列 VoronoiEdge 边缘的单元的形状作为“站点”或“圆”没有任何意义。 “产生事件的抛物线”完全超出了我的任何假设。

我想统一实现 blender 的程序 voronoi,但这对我来说有点太高级了,这个答案只是为了让我可以结束这个问题。