編集:私は答えでプログラムを更新しました、そしてそれは素晴らしい働きをします!
私は、ユーザーがポリゴンを描画して三角形分割できるプログラムを作成しています(自由に試してみてください)。クリックして頂点を追加し、Enterキーを押して三角形分割することができます。とにかく、ポイントが時計回りまたは反時計回りのどちらで描画されたかを指定する限り、アルゴリズムは正常に機能します(現在、時計回りのポリゴンでのみ機能するように設定しています)。私はこれを何日も理解しようとしてきましたが、ポイントが時計回りか反時計回りかを判断する方法がわかりません。先に述べたプログラムで形を描いてみてください。より良いアイデアを得ることができます。私が話していることを、説明するよりもよく体験することができます。
ポイントの定義方法は次のとおりです。
function Point(x, y) {
this.x = x;
this.y = y;
}
var vertices = [];
// Called on click
function addPoint(mouseX, mouseY) {
vertices.push(new Point(mouseX, mouseY));
}
時計回りのポリゴンの画像は次のとおりです。
これが反時計回りのポリゴンの画像です。
ポイントの「時計回り」を判断する方法を教えていただければ幸いです。