예전 플래너는 문이 아랫벽 가운데에 고정돼 있었고, 문이 열리면서 쓸고 가는 자리는 그림으로만 보여 줬다. 문 바로 앞에 의자를 놔도 아무 말이 없었다. 이제는 문 위치와 경첩, 열리는 방향을 넣을 수 있고, 문을 열 때 가구에 걸리는지도 따진다. 그걸 확인하면서 생긴 질문들을 순서대로 적는다.

경첩만 바꿔도 결과가 달라지나

달라진다. 300×350cm 방 아랫벽 x=110 자리에 80cm 문을 내고, 문 안쪽 오른편에 의자(55×55)를 뒀다. 경첩이 왼쪽에 있으면 문 끝이 그리는 반원 밖이라 의자에 안 걸린다. 경첩을 오른쪽으로 옮기면 의자 한쪽이 문이 지나가는 자리에 약 218㎠ 들어온다. 문을 끝까지 못 연다는 얘기다.

의자55×55출입구 80300350
R경첩이 오른쪽이면 문이 의자에 걸린다
의자55×55출입구 80300350
L같은 의자, 경첩이 왼쪽이면 안 걸린다

문틀에 딱 붙은 옷장은

옷장 옆면이 문틀 선에 딱 맞으면 걸리지 않는 것으로 본다. 그 옷장을 문 쪽으로 10cm 밀면 경첩이 어느 쪽이든 걸린다.

문 끝이 모서리를 스치기만 하면

선반 모서리를 경첩에서 정확히 80cm 떨어진 (158, 286)에 뒀다. 가로 48cm, 세로 64cm라 대각선이 딱 80cm다. 문 끝이 모서리를 스치기만 하므로 걸리지 않는 것으로 했다. 선반을 문 쪽으로 1cm씩 옮기면 걸린다.

바깥으로 여는 문은

방 안 가구와는 부딪칠 일이 없다. 대신 문 밖 복도에 뭐가 있는지 플래너는 모르니까, 결과 목록에 '검사하지 않음'으로 남긴다.

문 위치가 통로에도 영향을 주나

준다. 왼쪽 벽에 문을 내고 그 앞에 책상을 두면 문이 책상에 걸리고, 문 앞 30cm 안에 책상이 있어서 통로도 '막힘'으로 나온다. 통로는 실제 문 자리에서 출발한다.

기존 노트에도 걸리는 배치가 있었나

세 개 있었다. 노트에 나온 배치 17개를 다시 돌려 보니, 예시 문(왼쪽 경첩)으로도 작은 방 처음 배치에서는 옷장이, 5.72㎡ 방은 처음 배치와 고친 배치 모두 침대가 문에 걸렸다. 해당 노트 아래에 적어 두었다.

못 따지는 것

  • 문 두께, 손잡이, 문턱, 문 아래로 지나가는 얇은 러그
  • 반쯤만 열어 두고 쓰는 문, 미닫이문, 양쪽으로 여는 문
  • 옷장 문이나 서랍이 열리면서 튀어나오는 부분

데이터

EXP-003계산으로만 해 본 실험 (실제 방을 재지 않음)새 계산 v2.0.0 · 예전 계산 v1.0.0확인 8/8 PASS

경우벽, 끝에서 거리, 너비경첩열림가구정답새 계산문과 겹친 넓이 ㎠ (어림)통로결과
의자, 왼쪽 경첩·안쪽 열림아랫벽 110, 80왼쪽(위쪽)안쪽의자 (175, 230) 55×55안 걸림안 걸림0연결됨PASS
의자, 오른쪽 경첩·안쪽 열림아랫벽 110, 80오른쪽(아래쪽)안쪽의자 (175, 230) 55×55걸림걸림218연결됨PASS
의자, 오른쪽 경첩·바깥 열림아랫벽 110, 80오른쪽(아래쪽)바깥쪽의자 (175, 230) 55×55안 걸림안 걸림0연결됨PASS
옷장이 문틀 선에 맞닿음아랫벽 110, 80오른쪽(아래쪽)안쪽옷장 (190, 290) 100×60안 걸림안 걸림0연결됨PASS
옷장이 문 앞으로 10cm 들어옴아랫벽 110, 80왼쪽(위쪽)안쪽옷장 (180, 290) 100×60걸림걸림261.5연결됨PASS
선반 모서리가 문짝 궤적에 정확히 닿음아랫벽 110, 80왼쪽(위쪽)안쪽선반 (158, 246) 40×40안 걸림안 걸림0연결됨PASS
같은 선반을 1cm씩 문 쪽으로아랫벽 110, 80왼쪽(위쪽)안쪽선반 (157, 247) 40×40걸림걸림2.1연결됨PASS
왼쪽 벽 문, 책상이 문 앞왼쪽 벽 20, 80왼쪽(위쪽)안쪽책상 (50, 30) 105×50걸림걸림1003.2막힘PASS

정답은 어떻게 구했나. 플래너 코드와 따로 짠 Python 프로그램으로 문이 쓸고 가는 자리를 다시 정의하고, 가구 안쪽에 0.25cm 간격으로 점을 빽빽하게 찍어 그 자리에 들어가는 점이 하나라도 있는지 셌다. 하나라도 있으면 걸리는 것이다. 들어간 점 개수로 겹친 넓이도 어림했다. 통로는 실험 002와 같은 방법으로 확인했다.

플래너에서 열기

사이트 저장소에서 아래 세 줄을 실행하면 이 파일들이 다시 만들어진다. 계산 코드를 고치고 이 파일을 다시 만들지 않으면 사이트가 만들어지지 않게 해 두어서, 글의 숫자와 플래너 계산이 어긋난 채로 올라가지 않는다.

python tools/scenarios.py --dump
node tools/run_experiments.mjs
python tools/verify_experiments.py