「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【JavaScript】多角形の座標配列が時計回りか判別する方法

多角形の座標配列が時計回りか判別する方法を記事にしました。

[ 判別方法 ]

各隣接頂点間のベクトルの外積の総和を求めます。総和が正なら時計回り、負なら反時計回りです。

function IsClockwise(_Points)
{
    let Sum = 0;
    for (let i = 0; i < _Points.length; i++) {
        const Vec1 = _Points[i];
        const Vec2 = _Points[(i + 1) % _Points.length];

        Sum += Vec1.x * Vec2.y - Vec1.y * Vec2.x;
    }

    return Sum > 0;
}