注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
左図のようにバラバラに点在した点を線分で結び、 お互い交差することがないように多角形(閉路)を描画す... 左図のようにバラバラに点在した点を線分で結び、 お互い交差することがないように多角形(閉路)を描画するには? これは意外に簡単で、互いの点の位置関係を調べ、ソート を用いるだけで実行できます。 互いの座標の位置関係を調べるために、まず基準点を決めます。 基準点は、最も小さい y値( = y0とする)をもつ頂点とします。 そして、y = y0 の直線を仮想的に引き、その直線と、 基準点と各頂点を結ぶ線分による角度αを各点につき求めます。 基準点に「最も小さい y値( = y0)をもつ頂点」を選んだ理由は、 その角度が 0~180度 に限定されるようにするためです。こうしておくと、 プログラムが非常に簡略化されます。角度αは、左下記の式により求めます。 最後に、その角度αに対して各点を昇順あるいは降順にソートすれば、 多角形が描かれるように点が順序通り並びます。 下のコードで描画される多角形は
2011/08/03 リンク