Repository navigation
Commit 54884fa
committed
fix: 修复 Canvas 在高分屏(DPI>1)上的错位与模糊
问题根因:fitCanvas/fitSquare 把 canvas 内部尺寸乘了 devicePixelRatio,
但绘制代码仍用 CSS 像素坐标、且未对 context 做 setTransform,
导致在 Retina / Windows 缩放 / 手机屏上画面缩在左上角、其余错乱。
修复:
1. lab.js / arcade.js 的 canvas 尺寸统一改为「直接等于 CSS 像素」,
不再乘 devicePixelRatio,绘制坐标与画布像素严格一致
2. 清理 lab.js 生命游戏 draw() 中残留的无用 dpr 变量
3. lab.js 切到「双摆 / 傅里叶 / 曼德博」tab 时重新测量画布尺寸,
避免面板从 display:none 变为可见后仍用旧的 0 宽度
影响范围:实验室(4 个实验)、游戏厅(贪吃蛇/俄罗斯方块)全部适配高分屏。1 parent f90d262 commit 54884fa
2 files changed
Lines changed: 16 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | 36 | | |
38 | | - | |
39 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
| |||
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
40 | | - | |
41 | | - | |
42 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
43 | 46 | | |
44 | 47 | | |
45 | | - | |
| 48 | + | |
46 | 49 | | |
47 | 50 | | |
48 | 51 | | |
| |||
98 | 101 | | |
99 | 102 | | |
100 | 103 | | |
101 | | - | |
102 | 104 | | |
103 | 105 | | |
104 | 106 | | |
| |||
199 | 201 | | |
200 | 202 | | |
201 | 203 | | |
202 | | - | |
| 204 | + | |
203 | 205 | | |
204 | 206 | | |
205 | 207 | | |
| |||
389 | 391 | | |
390 | 392 | | |
391 | 393 | | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
392 | 398 | | |
393 | 399 | | |
394 | 400 | | |
| |||
0 commit comments