계산 모델
초구 (x0, y0) 에서 조준점 (ax, ay) 방향으로 친다.
조준점은 네 레일 어디든 놓을 수 있다.
[ 각도비 방식 ]
회전 부호는 당구대 기준으로 고정 (좌회전 = 음수)
그런데 순회전이냐 역회전이냐는 쿠션마다 달라진다.
접촉점 마찰 방향을 따지면 레일마다 부호 f 가 나온다.
f = 상단 +1 / 하단 -1 / 우측 -1 / 좌측 +1
rho = f × sign(레일방향 속도) 이 충돌에서 순회전인 부호
Teff = sigma × rho +면 순, -면 역
k = (D - Teff) / D D = 9
Teff > 0 k<1 각이 누워 길게
Teff < 0 k>1 각이 서서 짧게
Teff = 0 k=1 거울반사
꺾이는 양은 두 몫의 합이고 둘 다 회전량에 비례한다.
꺾임 = (1-k)×A×√(A/90) + |1-k|×C×sin(2A)
반사각 = A - 꺾임 C = 10
앞항 — 회전이 각을 꺾는 몫. 부호가 회전 방향을 따라간다.
순회전이면 각이 눕고, 역회전이면 각이 선다.
레일에 얕게 스칠수록 덜 먹는다(√ 가중)
뒷항 — 밀림. 45도에서 최대, 0/90도에서 0.
회전 방향과 무관하게 늘 반사각을 줄인다(|1-k|).
순회전이면 꺾임을 키우고,
역회전이면 벌어진 각을 도로 좁힌다
3팁 순회전 90도 → 60.00 45도 → 31.06 30도 → 21.34
3팁 역회전 45도 → 52.27 (밀림 없으면 55.61)
90도를 넘으면 레일 따라 되튄 것 (예각 180-A)
회전 변화 — 쿠션은 늘 그 충돌 기준 순회전 E 쪽으로 민다
sigma <- sigma + (rho×E - sigma) × r
[ 속도성분 방식 ] 쿠션은 각도가 아니라 속도에 작용한다
v_n' = e × v_n 법선은 반발계수만큼 깎이고
v_t' = v_t + mu×(T/4)×(1+e)×v_n 접선은 회전 마찰만큼 밀린다
반사각 = atan2(v_n', v_t')
마찰 충격량이 법선 충격량에 비례하므로
얕게 스칠수록 덜 먹는 것이 저절로 나온다.
atan2 가 0~180 을 주므로 되튐도 그냥 나온다.
√(A/90) · sin(2A) · 90도 상한이 전부 불필요.
무회전이어도 거울반사가 아니다. e=0.70 이면
45도 → 34.99 60도 → 50.48 30도 → 22.01
- 같은 회전이라도 쿠션에 따라 순이 되기도 역이 되기도 합니다.
공이 한 방향으로 계속 돌면 내내 순회전이지만, 지그재그로 튀면 중간에 역회전으로 부딪칩니다.
- 같은 회전이라도 얕게 스치면 덜 먹습니다. 3팁 순회전 기준으로
정면(90도)은 60.00도까지 꺾이지만, 30도로 얕게 들어오면 21.34도로 조금만 꺾입니다.
- 밀림은 쿠션에서 공이 물리지 않고 미끄러지는 몫입니다. 정면은 레일방향 미끄럼이 없고
스치듯 들어오면 접촉이 짧아서, 그 사이인 45도에서 가장 큽니다.
회전 방향과 무관하게 늘 반사각을 줄이는 쪽이라, 순회전이면 더 눕히고
역회전이면 벌어진 각을 도로 좁힙니다.
- 무회전(k=1)이면 꺾임이 0이 되어 어떤 각도에서도 정확히 거울반사입니다. 밀림도 같이 0이 됩니다.
- 많이 주고 치면 깎이고, 안 주고 치면 붙습니다. E=1.5, r=20%면 순회전 3팁은 1쿠션 뒤 2.7로, 0팁은 0.3으로 갑니다.
- 역회전으로 부딪친 회전은 훨씬 빨리 죽습니다. 목표가 반대 부호(순회전 쪽)라 차이가 크기 때문입니다.