拡張内接正方形ファインダー

描画ツール

数学的データ

曲線データがありません

内接正方形ファインダーについて

数学的基礎

靴紐公式

曲線によって形成される多角形の面積を計算するために、靴紐公式(測量士の公式としても知られる)を使用します:

A=12i=1n1(xiyi+1+xny1)i=1n1(xi+1yi+x1yn)A = \frac{1}{2}\left|\sum_{i=1}^{n-1} (x_i y_{i+1} + x_n y_1) - \sum_{i=1}^{n-1} (x_{i+1} y_i + x_1 y_n)\right|

ここで、(xi, yi)は多角形のi番目の頂点の座標です。

アルゴリズムの実装

内接正方形の探索

このアルゴリズムはモンテカルロ法を使用し、曲線内のランダムな点を試して最大の内接正方形を見つけます。

function findInscribedSquare(curve) {
  const minX = Math.min(...curve.map(p => p.x));
  const maxX = Math.max(...curve.map(p => p.x));
  const minY = Math.min(...curve.map(p => p.y));
  const maxY = Math.max(...curve.map(p => p.y));

  let bestSquare = [];
  let maxSize = 0;

  for (let i = 0; i < 1000; i++) {
    const center = getRandomPointInside(curve);
    let low = 0;
    let high = Math.min(maxX - minX, maxY - minY);

    while (high - low > 1) {
      const mid = (low + high) / 2;
      const square = [
        { x: center.x - mid / 2, y: center.y - mid / 2 },
        { x: center.x + mid / 2, y: center.y - mid / 2 },
        { x: center.x + mid / 2, y: center.y + mid / 2 },
        { x: center.x - mid / 2, y: center.y + mid / 2 },
      ];

      if (square.every(p => isPointInside(p, curve))) {
        if (mid > maxSize) {
          maxSize = mid;
          bestSquare = square;
        }
        low = mid;
      } else {
        high = mid;
      }
    }
  }

  return bestSquare;
}

このアルゴリズムはモンテカルロ法を使用し、曲線内のランダムな点を試して最大の内接正方形を見つけます。

外接正方形の探索

このアルゴリズムは曲線のバウンディングボックスを見つけ、それを完全に包含する正方形を作成します。

function findExtendedSquare(curve) {
  const minX = Math.min(...curve.map(p => p.x));
  const maxX = Math.max(...curve.map(p => p.x));
  const minY = Math.min(...curve.map(p => p.y));
  const maxY = Math.max(...curve.map(p => p.y));

  const centerX = (minX + maxX) / 2;
  const centerY = (minY + maxY) / 2;
  const size = Math.max(maxX - minX, maxY - minY);

  return [
    { x: centerX - size / 2, y: centerY - size / 2 },
    { x: centerX + size / 2, y: centerY - size / 2 },
    { x: centerX + size / 2, y: centerY + size / 2 },
    { x: centerX - size / 2, y: centerY + size / 2 },
  ];
}

このアルゴリズムは曲線のバウンディングボックスを見つけ、それを完全に包含する正方形を作成します。

はじめに

内接正方形ファインダーへようこそ。このインタラクティブツールは、幾何学と数学的予想の魅力的な世界を探索します。

このアプリケーションでは、閉曲線を描画し、その中に内接する正方形を発見することができ、1世紀以上前からの数学的問題に命を吹き込みます。

主要概念

閉曲線

閉曲線は平面上の連続したループで、円や始点と終点が一致する任意の形状のことです。

内接正方形

内接正方形は、閉曲線の内側に完全に収まる正方形で、4つの角がすべて曲線に接しています。

外接正方形

外接正方形は、閉曲線を完全に囲む最小の正方形です。

面積計算

曲線と正方形の面積は、高度な幾何学的アルゴリズムを使用して計算されます。

曲線の長さ

曲線の周囲の総距離で、キロピクセル単位で測定されます。

使用方法

1

ツールバーから描画ツールを選択します。

2

キャンバス上に閉曲線を描きます。

3

'内接正方形を見つける'をクリックして内接正方形を探します。

4

'外接正方形を見つける'をクリックして囲む正方形を見つけます。

5

曲線と正方形の数学的データを確認します。

6

'クリア'ボタンを使用して新しい曲線で始めます。

7

さまざまな形状を試して結果を比較してみましょう!

さらなる探求

内接正方形問題は、数学的探求のための多くの道を開きます:

完全な円形の曲線がどれくらいの頻度で内接正方形を生成するか調査します。

内接正方形をより効率的に見つけるための異なるアルゴリズムを探索します。

曲線の面積とその内接正方形の関係を研究します。

この問題が3次元の内接立方体にどのように拡張できるか考えます。

楽しい探求を!そして、あなたの数学的好奇心が尽きることがありませんように!

メキシコのウェブ開発者、Luisが制作

ソースコードを見る