# Design · gravity-pin

## 4 维选择理由
- input: 按住放钉 + 强度——单维度调参（无需 UI 滑块）
- action: 多引力叠加场——513 首次「物理场」类（区别于 slope-rig 反射、merge-drop 下落）
- loop: 编辑+模拟（继承 slope-rig 范式）
- failure: 多障碍 + 目标命中（题面比 slope-rig 复杂）

## 数值设计
- 引力 = strength × 4000 / d²，球与钉超近时（d<6）直接吸住（避数值溢出）
- 球初速度 vy=-260（向上抛），重力 +144 px/s²
- 12 关递增障碍数（0→5）

## 关键算法（核心 30 行）
```js
for(const p of pins){
  const dx=p.x-ball.x,dy=p.y-ball.y,d2=dx*dx+dy*dy,d=Math.sqrt(d2);
  const f=p.strength*4000/Math.max(d2,400);
  ax+=dx/d*f; ay+=dy/d*f;
}
ball.vx+=ax*dt; ball.vy+=ay*dt;
```

## 已知边界
- 钉强度强且距离近时球轨迹混沌，玩家需多次尝试（这是设计意图，类 Plinko）
- 球被钉「吸死」可能（d<6 时直接传送）→ 已加保护
- 移动端按住放钉触屏延迟可控（已用 pointerdown/up）
