あけましておめでとうございます。ドロネー三角形分割で羊を書いてみた。
コードは以下。
ドロネー三角形分割はdelauney.cljに実装してある。
(defn delaunay-diagram [points]
"点の集合をドロネー三角分割する"
;--- 略 ---
上記の関数にPointレコードのベクターを引数に呼び出すと、ドロネー三角形分割済みのTriangleレコードのベクターが返ってくる。
レコードの定義は以下のようになっている。
(defrecord Point [x y])
(defrecord Triangle [p1 p2 p3])
また、アルゴリズムや実装方法について以下を参考にさせていただいた。