볼록 껍질 계산기 (모노톤 체인)
점 좌표를 넣으면 그 점들을 고무줄로 둘러쌌을 때 닿는 점들을 찾아 껍질의 넓이와 둘레를 냅니다. 안쪽에 남은 점도 함께 보여 줍니다.
한 줄에 한 점씩 «x y» 로 넣습니다. 순서는 상관없습니다
점 8개 중 5개가 껍질
20
둘레 17.15 · 안쪽에 남은 점 3개
셈
껍질 (반시계 방향)
| # | x | y |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 4 | 0 |
| 3 | 5 | 3 |
| 4 | 3 | 5 |
| 5 | 0 | 4 |
껍질에 쓰이지 않은 점 3개
(2, 2) (1, 3) (3, 2)
안쪽에 있거나 변 위에 놓인 점들입니다. 껍질의 모양과 넓이에 영향을 주지 않습니다.
계산 방법
- 1점 좌표를 한 줄에 하나씩 «x y»로 넣습니다. 순서는 상관없습니다.
- 2껍질을 이루는 점과 안쪽에 남은 점을 확인합니다.
- 3껍질의 넓이와 둘레를 봅니다. 안쪽 점을 더 넣어도 값이 달라지지 않습니다.
자주 묻는 질문
주어진 점들을 모두 품는 가장 작은 볼록 다각형입니다. 점들에 고무줄을 둘러 놓고 놓았을 때 고무줄이 닿는 점들이 껍질의 꼭짓점이 됩니다. 안쪽에 있는 점은 껍질에 영향을 주지 않습니다.
점을 x 좌표순으로 정렬한 뒤, 왼쪽부터 훑으며 아래 껍질을 쌓고 오른쪽부터 훑으며 위 껍질을 쌓습니다. 새 점을 넣기 전에 마지막 두 점과 새 점이 좌회전이 아니면 마지막 점을 빼냅니다. 두 껍질을 이어 붙이면 완성입니다.
결과는 같지만 정렬 기준이 다릅니다. 그레이엄 스캔은 기준점에서 본 각도로 정렬하는데 각도를 구하려면 atan2를 써야 해서 부동소수점 오차가 들어옵니다. 모노톤 체인은 좌표만으로 정렬하고 외적의 부호만 보므로, 정수 좌표를 넣으면 계산이 통째로 정수라 오차가 없습니다.
이 도구는 넣지 않습니다. 세 점이 일직선일 때 가운데 점을 껍질에 넣을지 말지는 규약 문제이며, 넣지 않는 쪽이 표준입니다. 어느 쪽이든 껍질의 모양과 넓이·둘레는 같으므로, 다른 자료와 꼭짓점 수가 다르다면 이 규약부터 확인해 보세요.
껍질이 만들어지지 않습니다. 넓이가 0인 선분이 되어 다각형이라 부를 수 없기 때문이며, 이 도구는 그 경우를 따로 알려 줍니다. 서로 다른 점이 3개 미만일 때도 마찬가지입니다.
전송되지 않습니다. 계산은 전부 브라우저 안에서 이뤄지고, 입력값은 이 브라우저의 localStorage에만 남습니다.
알아두면 좋은 점
- 점은 300개까지 다룹니다. 같은 좌표가 여러 번 들어오면 하나로 셉니다.
- 껍질은 반시계 방향으로 냅니다. 넓이와 둘레는 edu/polygon-area의 신발끈 공식을 그대로 씁니다 — 같은 계산을 두 벌 두지 않기 위해서입니다.
- 넣은 점이 하나도 빠짐없이 껍질 안에 들어가는지를 무작위 점 300묶음에서 확인하고, 껍질의 모든 모퉁이가 좌회전인지(볼록한지)도 함께 검사해 맞췄습니다.
- 원에 내접하는 정n각형의 넓이 공식과도 대조했습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.