향상된 내접 정사각형 찾기

그리기 도구

수학적 데이터

곡선 데이터가 없습니다

내접 정사각형 찾기에 대하여

수학적 기초

신발끈 공식

우리는 신발끈 공식(측량사의 공식이라고도 함)을 사용하여 곡선이 형성하는 다각형의 면적을 계산합니다:

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 },
  ];
}

이 알고리즘은 곡선의 경계 상자를 찾고 이를 완전히 포함하는 정사각형을 만듭니다.

소개

내접 정사각형 찾기에 오신 것을 환영합니다. 이 대화형 도구는 기하학과 수학적 추측의 흥미로운 세계를 탐험합니다.

이 애플리케이션을 통해 폐곡선을 그리고 그 안에 내접하는 정사각형을 발견할 수 있어, 100년 된 수학 문제를 생생하게 체험할 수 있습니다.

주요 개념

폐곡선

폐곡선은 평면상에서 연속적인 루프로, 원이나 시작점에서 끝나는 모든 형태의 곡선을 말합니다.

내접 정사각형

내접 정사각형은 폐곡선 내부에 완벽하게 들어맞는 정사각형으로, 네 모서리가 모두 곡선에 닿아있습니다.

외접 정사각형

외접 정사각형은 폐곡선을 완전히 둘러싸는 가장 작은 정사각형입니다.

면적 계산

곡선과 정사각형의 면적은 고급 기하학 알고리즘을 사용하여 계산됩니다.

곡선 길이

곡선 주위의 총 거리로, 킬로픽셀 단위로 측정됩니다.

사용 방법

1

도구 모음에서 그리기 도구를 선택하세요.

2

캔버스에 폐곡선을 그리세요.

3

'내접 정사각형 찾기'를 클릭하여 내접 정사각형을 찾으세요.

4

'외접 정사각형 찾기'를 클릭하여 외접 정사각형을 찾으세요.

5

곡선과 정사각형에 대한 수학적 데이터를 확인하세요.

6

'지우기' 버튼을 사용하여 새로운 곡선으로 다시 시작하세요.

7

다양한 모양을 실험하고 결과를 비교해보세요!

추가 탐구

내접 정사각형 문제는 수학적 탐구의 많은 길을 열어줍니다:

완벽한 원형 곡선이 내접 정사각형을 얼마나 자주 생성하는지 조사해보세요.

내접 정사각형을 더 효율적으로 찾는 다양한 알고리즘을 탐구해보세요.

곡선의 면적과 그 내접 정사각형 사이의 관계를 연구해보세요.

이 문제가 내접 정육면체와 함께 3차원으로 어떻게 확장될 수 있는지 고려해보세요.

즐거운 탐구 되세요, 그리고 여러분의 수학적 호기심이 끊이지 않기를 바랍니다!

멕시코 출신의 웹 개발자 루이스가 제작했습니다

소스 코드 보기