Tag: voronoi

循环依赖(Voronoi Halfedge)

我知道,“循环依赖是一个糟糕的设计”,但我认为在这种情况下是有保证的。 在构建voronoi图时,单元划分为所谓的“半边”,这使您可以方便地遍历图。 无论如何,为了实例化一个半边,我必须指定半边的镜子,或者双胞胎。 这是任何语言的时髦,但在Kotlin更令人讨厌,因为我不得不使用val而不是val,如我所愿。 现在我正在做这个我不喜欢的funkiness, val mirrorEdge: HalfEdge get() = halfEdge!! private var halfEdge: HalfEdge? = null fun setMirror(halfEdge: HalfEdge) { this.halfEdge = halfEdge } //别处 newEdge.setMirror(newEdge2) newEdge2.setMirror(newEdge) 半角镜像不能为空,应该是不变的,但是我不知道如何在代码中传达这个意图。