3

指定された 3 つの座標が互いに線形であるかどうかをチェックするコードがあります (そうであれば、true を返します)。しかし、コードでいくつかのピクセル/プロットを取得または取得する方法はありますか?

private boolean collinear(double x1, double y1, double x2, double y2, double x3, double y3) {
    return (y1 - y2) * (x1 - x3) == (y1 - y3) * (x1 - x2);
}

ご覧のとおり、線形として登録するには、座標が正確にインラインである必要があります。ある種の「範囲」内に見えるようにして、値内をチェックし、新しい値で座標を設定するにはどうすればよいですか?

- - 追加した - -

3点が直線になるかどうかを確認しようとしていますが、しきい値内でチェックしたいです(いくつかの点が少しずれている可能性があるため)。Java が実際にポイントが線形 (ギブまたはテイク) であることを確認したら、x1、x2、x3、y1 などを Java がチェックした値に置き換えます。

4

2 に答える 2

0

特定の式を満たす公差をお探しですか、それとも一般的に「近い」公差をお探しですか?

一般的な「終値」を探しているだけの場合は、等しいのではなく、有用な範囲内の違いを確認してください。例えば

return Math.abs((x1-x2)*(y1-y3)-(y1-y2)*(x1-x3))<tolerance;

「3 番目の点は、最初の 2 点によって形成される線から 2 ピクセル以内になければならない」などの特定の規則がある場合は、もちろん、規則を調べて、それを明示的に実装するコードを作成する必要があります。

于 2012-11-27T20:04:57.867 に答える