成果物
AW Voronoi(Additively Weighted Voronoi)という、曲線的でリアルなVoronoi図を作るのにApollonius Graphというものが必要そうだったので、実装してみました。計算負荷を考えて、三角関数縛りにしています。
仕組み
簡単に言うと、円の表面からの距離が等しい線を繋いでいったものです。今回は、三角形を使って計算しています。三辺の長さと二つの円の中心を繋いだ底辺は分かっているので、余弦定理で角度を求めると、残りの頂点の位置がわかります。
参考にしたサイト
CGAL 5.0.2 - 2D Apollonius Graphs (Delaunay Graphs of Disks): User Manual
Weighted Voronoi diagram calculator
ただし、底辺が傾いているときは、uvマッピングのように座標系を変換しています。詳しくはコードをご覧ください。
コード
Apollonius Graphという名前で追加しています。
GitHub - Nekodigi/Math: Time estimate and more