feat(opticsbench): конструктор Фаза 3 — изображение на экране + экспорт PNG

- _drawScreenHits: светящиеся пятна (additive) в точках попадания лучей на
  экран, по длине волны — видно формирование изображения и спектр
- benchExportPng + кнопка «Снимок PNG»; подсказка про λ/белый свет
- bump opticsbench.js?v=4

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-30 12:40:37 +03:00
parent 353a6cb8a9
commit 1c7d8e9d95
3 changed files with 48 additions and 8 deletions
+6 -3
View File
@@ -3205,8 +3205,11 @@
<button class="preset-btn" style="font-size:.68rem" onclick="benchPreset('projector')">Проектор</button>
<button class="preset-btn" style="font-size:.68rem" onclick="benchPreset('folded')">Зеркальная</button>
</div>
<button class="preset-btn" style="width:100%;margin-bottom:6px" onclick="benchClear()">Очистить</button>
<div class="pp-hint">Тащи элементы и источник по оси. Клик — выбрать и настроить.</div>
<div style="display:flex;gap:4px;margin-bottom:6px">
<button class="preset-btn" style="flex:1" onclick="benchClear()">Очистить</button>
<button class="preset-btn" style="flex:1" onclick="benchExportPng()">Снимок PNG</button>
</div>
<div class="pp-hint">Тащи элементы и источник по оси. Клик — выбрать и настроить. λ и «Белый свет» — сверху.</div>
</div>
<!-- ── Interference control panel (Agent C) ── -->
<div id="ob-ctrl-interf" class="proj-panel" style="width:240px;gap:0;flex-shrink:0;display:none">
@@ -4841,7 +4844,7 @@
<script src="/js/labs/graphtransform.js"></script>
<script src="/js/labs/pendulum.js"></script>
<script src="/js/labs/equilibrium.js"></script>
<script src="/js/labs/opticsbench.js?v=3"></script>
<script src="/js/labs/opticsbench.js?v=4"></script>
<script src="/js/labs/isoprocess.js"></script>
<script src="/js/labs/titration.js"></script>
<script src="/js/labs/probability.js"></script>