2010-11-18 9 views
2

私は疑問を持っているという点で、このlink作成多くの三角形が

あなたは.Iは我々がn個ある場合どのように私はこの方法にそれらの3つの最後のパラメータを送ることができることを知ってほしい4つのパラメータで pointInTriangle方法が表示されます

ポイント? O(N^3)でこれを行うにはどのような方法があります

おかげ

+0

三角形は3点を超えません。ポイントが** O **(n^3)の_Polygon_内にあるかどうかをチェックする関数が必要ですか? – dacwe

+0

@dacwe私は、n点がn面のポリゴンの内側にあるかどうかを調べるのではなく、n点が三角形の中にあるかどうかをチェックすることを意味すると考えます。 – Grodriguez

+0

彼のリンクを見ると、最後の3つのパラメータは三角形の点です。 – dacwe

答えて

1

があなたの代わりにPolygon.contains(Point)を使用することができます私を助けてください?

+0

O(n^3) – user472221

+0

でこの作業を行う必要があります。 ! :) – dacwe

0

あなたの質問は完全に明確ではないが、あなただけのn個の点を確認するためにthis solutionを拡張したいと仮定すると、私はあなたがこのような何かことができますね。ちなみに

private static float sign(fPoint p1, fPoint p2, fPoint p3) 
{ 
    return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y); 
} 

public static boolean[] pointsInTriangle(fPoint[] pt, fPoint v1, fPoint v2, fPoint v3) 
{ 
    boolean b1, b2, b3; 

    boolean[] ret = new boolean[pt.length]; 
    for (int i = 0; i < pt.length; i++) 
    { 
     b1 = sign(pt[i], v1, v2) < 0.0f; 
     b2 = sign(pt[i], v2, v3) < 0.0f; 
     b3 = sign(pt[i], v3, v1) < 0.0f; 
     ret[i] = ((b1 == b2) && (b2 == b3)); 
    } 
    return ret; 
} 

を、これはO(nは)。

関連する問題