もう解決してると思うけど、だいたい「ドロネー図」のアルゴリズムなのでご紹介。
「ドロネー図」は、たくさんある点のうち点と隣の点を結んでたくさん三角形を作っていく図です。
3つの点から外接円をもとめて、外接円の中に点があればさらに外接円を求めて、という感じで3点を決めていきます。
結果的に点から別の点へはいくつか線ができるけど、どれも短い線になるようになっています。
ドロネー図を書くアルゴリズム
http://blog.webcreativepark.net/2015/10/22-060729.htmlhttps://qiita.com/edo_m18/items/7b3c70ed97bac52b2203※もっと詳細は「ドロネー図」で検索で (「ボロノイ図」もでてくるけど今回はあまり関係無い)
今回の白点と緑点の場合、白点でドロネー図を作って、緑点からどの三角形に所属しているかを計算し、その三角形の頂点との距離をもとめることで、緑点に一番近い白点が求まります。
ドロネー図をBASICの変数で持つのにはちょっといろいろ面倒なので、みなさんが作ったアルゴリズムで問題なければそれはそれで動いているので特に気にしなくても良いと思います。
※ちゃんとドロネー図を変数で持つなら、頂点の配列(XとY)、辺の配列(始点と終点の配列番号)、三角形の配列(頂点3つか辺3つの配列番号)あたりが必要です