幾何学の問題を解くプログラムを書いています。
私のアルゴリズムは、共線点をうまく処理しません。
共線性を取り除くためにポイントに適用できる変換はありますか?
幾何学の問題を解くプログラムを書いています。
私のアルゴリズムは、共線点をうまく処理しません。
共線性を取り除くためにポイントに適用できる変換はありますか?
それなら、ノイズが実際の解決策かもしれないと思います。上のコメントに書いた通り
共線性を取り除く 1 つの方法は、単純に各ポイントにノイズを追加することです。つまり、(x, y, z) ↦ (x + 0.01*(random() - 0.5), y + 0.01*(random() - 0.5), z + 0.01(random() - 0.5)) random() が [0, 1[.
多数のポイント セットを使用している場合、すべてのセットにノイズを追加すると、あるセットでは問題が解決するかもしれませんが、別のセットでは問題が発生します。
その場合は、ノイズを適用する前に共直線性をテストできます。
共線条件は次のとおりです。
x1 y1 1
det x2 y2 1 = 0
x3 y3 1