|
40 | 40 | <div class="min-w-0 flex flex-col justify-center leading-none"><div class="text-[8px] text-slate-400 font-bold uppercase leading-none">Fluidity</div><span id="hud-fluidity" class="font-mono text-xs font-black text-[#00afb9]">0.00</span></div> |
41 | 41 | </div> |
42 | 42 | </div> |
43 | | - <div class="flex-[3.5] min-h-0 w-full relative flex items-center justify-center bg-white border border-slate-200 rounded-lg shadow-xs overflow-hidden cursor-pointer" id="canvas-container"> |
| 43 | + <div class="flex-[3.5] min-h-0 w-full relative flex items-center justify-center bg-white border border-slate-200 rounded-lg shadow-xs overflow-hidden cursor-default" id="canvas-container"> |
44 | 44 | <canvas id="coverageCanvas" class="absolute border border-slate-300 pointer-events-none rounded-sm hidden"></canvas> |
45 | 45 | <canvas id="simulationCanvas" class="absolute border border-slate-300 bg-transparent rounded-sm hidden"></canvas> |
46 | 46 | <div id="launchOverlay" class="absolute inset-0 bg-white/95 backdrop-blur-xs flex items-center justify-center z-30 rounded-lg"> |
@@ -397,17 +397,17 @@ <h4 class="font-bold text-[10px] sm:text-xs tracking-wider text-slate-500 upperc |
397 | 397 | this.theta -= Math.max(Math.random() - 0.5, 0); |
398 | 398 | } |
399 | 399 |
|
400 | | - } else if (D3 <= rPlan) { // rStop < D3 <= rPlan |
401 | | - // Rear getting close — reverse orbit (mirrored angular vs AVOID) |
402 | | - this.current_mode = "REVERSE"; |
403 | | - this.orbit_side = D2 < D1 ? 1 : -1; |
404 | | - v = -config.V_ORBIT; |
405 | | - const fwd = [Math.cos(this.theta), Math.sin(this.theta)]; |
406 | | - this.v_des_actual = this.orbit_side === 1 |
407 | | - ? [ fwd[1], -fwd[0]] // mirrored vs forward AVOID |
408 | | - : [-fwd[1], fwd[0]]; |
409 | | - const err = ((Math.atan2(this.v_des_actual[1], this.v_des_actual[0]) - this.theta + Math.PI) % (2*Math.PI)) - Math.PI; |
410 | | - w = config.K_P * err; |
| 400 | + // } else if (D3 <= rPlan) { // rStop < D3 <= rPlan |
| 401 | + // // Rear getting close — reverse orbit (mirrored angular vs AVOID) |
| 402 | + // this.current_mode = "REVERSE"; |
| 403 | + // this.orbit_side = D2 < D1 ? 1 : -1; |
| 404 | + // v = -config.V_ORBIT; |
| 405 | + // const fwd = [Math.cos(this.theta), Math.sin(this.theta)]; |
| 406 | + // this.v_des_actual = this.orbit_side === 1 |
| 407 | + // ? [ fwd[1], -fwd[0]] // mirrored vs forward AVOID |
| 408 | + // : [-fwd[1], fwd[0]]; |
| 409 | + // const err = ((Math.atan2(this.v_des_actual[1], this.v_des_actual[0]) - this.theta + Math.PI) % (2*Math.PI)) - Math.PI; |
| 410 | + // w = config.K_P * err; |
411 | 411 |
|
412 | 412 | } else { |
413 | 413 | // Rear clear — full reverse; steer slightly away from the |
|
0 commit comments