Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで凸多角形をチェックする


凸多角形

凸多角形 ポリゴンとして定義されています すべての内角が180°未満です。

問題

座標の配列を受け取るJavaScript関数を作成する必要があります。基本的に、配列は、各サブ配列が正確に2つの数値を含み、2次元平面上の点を指定する配列の配列になります。

私たちの関数は、これらの点によって形成される多角形が凸多角形であるかどうかを判断する必要があります。はいの場合、関数はtrueを返し、そうでない場合はfalseを返します。

たとえば、関数への入力が-

の場合
const arr = [[0,0],[0,1],[1,1],[1,0]];

その場合、出力は-

になります。
const output = true;

出力の説明:

これらの点は、すべての頂点の内角が90度である完全な正方形を描画します。

このためのコードは-

になります
const arr = [[0,0],[0,1],[1,1],[1,0]];
const isConvex = (arr = []) => {
   const { length } = arr;
   let pre = 0, curr = 0;
   for (let i = 0; i < length; ++i) {
      let dx1 = arr[(i + 1) % length][0] - arr[i][0];
      let dx2 = arr[(i + 2) % length][0] - arr[(i + 1) % length][0];
      let dy1 = arr[(i + 1) % length][1] - arr[i][1];
      let dy2 = arr[(i + 2) % length][1] - arr[(i + 1) % length][1];
      curr = dx1 * dy2 - dx2 * dy1;
      if (curr != 0) {
         if ((curr > 0 && pre < 0) || (curr < 0 && pre > 0))
            return false;
         else
            pre = curr;
      };
   };
   return true;
};
console.log(isConvex(arr));

出力

そして、コンソールの出力は-

になります
true

  1. JavaScript Let

    2015年に導入されたJavaScriptLetキーワードを使用すると、ブロックスコープの変数を定義できます。 以下は、JavaScriptでLetキーワードを使用して変数を宣言するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0&

  2. JavaScriptで特定のタイプのマトリックスをチェックする

    問題 最初で唯一の引数として、リテラルの2次元配列arrを受け取るJavaScript関数を作成する必要があります。 この関数は、左上から右下までのすべての対角線に同じ要素があるかどうかをチェックする必要があります。 その場合はtrueを返し、そうでない場合はfalseを返す必要があります。 たとえば、関数への入力が 入力 const arr = [    [6, 7, 8, 9],    [2, 6, 7, 8],    [1, 2, 6, 7], ]; 出力 const output = true; 出力の説明