はじめてのCocoaアプリケーション

 生まれて初めてCocoaベースのアプリケーションを書いた。どうしても視覚化しなければならない部分があったので。いつも書いている部分はC++なので、Objective-C++を使ってみた。ちょっと混合させるのに癖があるといえばあるのだけれども、それでも融合させられるのは今までの部分が使えるので、とても楽。このキメラな感じがいかにもMacという感じがする。

 計算幾何学で良く出てくる?ドロネー分割(領域を図のように3角形で分割する)をするアプリケーションなのだけれども、アルゴリズムが間違っているためか?、ときどき頻度で間違った答えが出る。今のところどこがどう間違っているのか、さっぱり見当がつかない。困ったな。

 用いたドロネー分割のアルゴリズム。

  1. すべての点を含むようなsuper triangleを作成する。
  2. 点を一つ選び、その点が既存の三角形の外接円の内部にあるかどうかを判定する。
  3. 外接円内部であれば、その三角形の辺を記憶しておき、三角形を壊す。
  4. 3.をすべての三角形に繰り返す。
  5. 記憶した辺の中で他のものとかぶっているものは削除する。
  6. 残った辺を一つずつ取り出し、2.で選択した点をもう1点として三角形を作成する。
  7. 2. 〜 6.をすべての点について繰り返す。