数学における凸包または凸包絡は、与えられた集合を含む最小の凸集合である。 Wikipedia: 凸包 上図のように点の集合が与えられた時にその凸包を求めるアルゴリズムを実装してみたのでメモとして残しておきます。 Linear Algebra まずは計算に必要になる点やベクトルと言った概念を定義しておきます。 -- | 2次元の点 type Point = (Double, Double) -- | 2次元ベクトル type Vector = (Double, Double) -- | 2点からベクトルを作成 to :: Point -> Point -> Vector to (x0, y0) (x1, y1) = (x1 - x0, y1 - y0) -- | ノルムを計算する norm :: Vector -> Double norm (x, y) = sqrt $ x ^ 2 + y
