Просмотр исходного кода

Обновить 'docs/issues.md'

u23-27burdyko 1 неделя назад
Родитель
Сommit
f3cebd8da5
1 измененных файлов с 128 добавлено и 0 удалено
  1. 128 0
      docs/issues.md

+ 128 - 0
docs/issues.md

@@ -440,6 +440,134 @@ const coilCx = coilX + coilMotion;
 по каждой линии бежит стрелка, показывающая направление от N к S.
 
 
+---
+
+## Запись 14. Возврат сцены «Звук» и движение диффузора
+
+**Задача.** Вернуть первую сцену к исходному виду — без мембраны.
+Показать ход диффузора динамика, чтобы была видна механическая
+передача толчка в воздух. Молекулы окрасить в один цвет, чтобы
+не менялся, и было видно колебание каждой отдельной молекулы.
+Добавить нулевое значение громкости, при котором молекулы
+замирают на месте.
+
+**Решение.** Сцена 01 переработана:
+- убрана мембрана, остались только динамик и молекулы;
+- у динамика появился колеблющийся диффузор — конус, который
+  выдвигается вправо-влево в такт волне и толкает молекулы;
+- все молекулы окрашены в один цвет khaki без градиента по фазе;
+- амплитуда волны вычисляется как amp = vol × 42 — при нуле
+  амплитуда равна нулю, молекулы стоят, диффузор замирает;
+- ползунок громкости получил min="0";
+- при нулевой громкости внизу появляется надпись «тишина».
+
+```javascript
+const speakerVal = waveValue(speakerX, speakerX, endX, freq, t, waveSpeed);
+const diaphragmOffset = speakerVal * vol * 12;
+
+// Конус диффузора — колеблется вправо-влево
+ctx.fillStyle = 'rgba(212,168,96,.18)';
+ctx.beginPath();
+ctx.moveTo(65, cy - 50);
+ctx.lineTo(speakerX + diaphragmOffset, cy - 78);
+ctx.lineTo(speakerX + diaphragmOffset, cy + 78);
+ctx.lineTo(65, cy + 50);
+ctx.closePath();
+ctx.fill();
+ctx.stroke();
+```
+
+Молекулы — одного цвета без градиента:
+
+```javascript
+ctx.fillStyle = C.khaki;
+ctx.shadowColor = C.khaki;
+ctx.shadowBlur = 6;
+ctx.beginPath();
+ctx.arc(x, y, 3.2, 0, Math.PI*2);
+ctx.fill();
+```
+
+---
+
+## Запись 15. Отдельная глава про мембрану
+
+**Задача.** Добавить страницу про мембрану, на которой была бы
+видна вся цепочка: динамик с движущимся диффузором, передача
+толчка через молекулы и реакция мембраны. Требуется сохранить
+единый стиль: молекулы одного цвета, замирание при нулевой
+громкости.
+
+**Решение.** Добавлена глава 02 «Мембрана ловит волну».
+Структура проекта расширена до семи содержательных сцен:
+Звук → Мембрана → Катушка → Фарадей → Сигнал → Сборка →
+Лаборатория.
+
+В главе 02:
+- слева динамик с колеблющимся диффузором;
+- в центре — молекулы воздуха одного цвета;
+- справа — мембрана, отклоняющаяся ровно на ту волну,
+  которая до неё дошла;
+- ползунки частоты и громкости аналогичны сцене 01;
+- при нулевой громкости молекулы стоят, диффузор замер,
+  мембрана плоская, внизу надпись «тишина».
+
+```javascript
+const memVal = waveValue(membraneX, speakerX, membraneX, freq, t, waveSpeed);
+const bow = memVal * vol * 42;
+
+ctx.beginPath();
+const SEG = 44;
+for(let i = 0; i <= SEG; i++){
+  const p = i / SEG;
+  const y = memTop + (memBot - memTop) * p;
+  const shape = Math.sin(Math.PI * p);
+  const x = membraneX + bow * shape;
+  if(i === 0) ctx.moveTo(x, y); else ctx.lineTo(x, y);
+}
+ctx.stroke();
+```
+
+---
+
+## Запись 16. Унификация поведения молекул во всех сценах
+
+**Задача.** Привести поведение молекул во всём проекте к единому
+виду: один цвет без градиента по фазе, замирание при нулевой
+громкости. Обеспечить те же требования в главе полной сборки
+и в лаборатории.
+
+**Решение.** В сценах 06 «Полная сборка» и 07 «Лаборатория»
+молекулы перекрашены в единый цвет khaki, убрана зависимость
+яркости от текущей фазы волны. Формулы амплитуды приведены
+к виду amp = vol × N без базового смещения — при нулевой
+громкости движение полностью прекращается.
+
+В сцену сборки также добавлен колеблющийся диффузор динамика
+и затухание графиков при нуле:
+
+```javascript
+// График слабого ЭДС — амплитуда зависит от громкости
+const y = botCy - Math.cos((t*2.2 + u*3.6*Math.PI)) * (vol * 12);
+```
+
+Ползунок «Амплитуда» в генераторе лаборатории получил min="0".
+При нуле волна, молекулы и графики замирают.
+
+---
+
+## Запись 17. Обновление структуры и итогов
+
+**Задача.** Привести документацию и навигацию в соответствие
+с новой структурой проекта.
+
+**Решение.** В вводном экране список глав обновлён до семи
+позиций: Звук, Мембрана, Катушка, ЭДС, Сигнал, Сборка,
+Лаборатория. В блоке итогов уточнена формулировка про мембрану:
+
+> Мембрана микрофона механически повторяет эти колебания
+> без искажений.
+
 ---
 
 ## Как запустить