mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-06 14:39:22 +00:00
Одна и та же стена 15 см выглядела на планах с разным `cell_cm` по-разному: шаг паттерна был константой в юнитах, а толщина стены переводится в юниты через `cell_cm`, — значит число полос было пропорционально `1/cell_cm`. Разброс между крайними масштабами достигал 25 раз, а при `cell_cm ≥ 10` в стену не попадало и одной полосы: штриховка вырождалась в случайные штрихи или исчезала. Шаг стал физической величиной: `wallHatchStepUnits(cellCm)` возвращает `8 × (5 / cell_cm)` — это 9.6 см плана при любом масштабе сетки и ровно исторические 8 юнитов при эталонном `cell_cm: 5`, так что старые планы не двигаются. Толщина штриха следует за шагом, поэтому соотношение «штрих к просвету» тоже перестало зависеть от масштаба. Формула из описания issue (`cell_cm / 5`) не годилась: она увеличивает шаг там, где стена и без того тонкая в юнитах, и разброс не исчезает, а растёт — 39 полос против 0.06 на краях диапазона. Множитель обратный; на эту ошибку поставлен отдельный мутант `hatch-step-inverted`. Зумовая компенсация `1/zoom` убрана по решению владельца (§4.2 ТЗ): стена, которая меняет штриховку при зуме, — это тот же дефект, только по другой оси. От каши на дальнем конце зума защищает второй порог `wallHatchNeedsSolid` рядом с существующим `wallBodyNeedsSolid`; шаг клампится в [0.5, 80] юнитов, чтобы патологический `cell_cm` не выродил паттерн. Статический рендерер (`space-render.ts`) нёс собственную константу 8 и вообще не знал про зум — то есть уже сегодня расходился с картой при любом зуме, кроме единицы. Теперь оба читают шаг из одной функции; смок проверяет, что они согласны между собой, а не только каждый сам с собой. Два golden-эталона переснято осознанно (`golden:accept -- --reviewed`): `large-house-zoom-040-dark` (шаг был 20 юнитов, стал 8) и `large-house-zoom-250-dark` (был 3.2, стал 8). Расхождение осмотрено: меняется только плотность штриховки тел стен, колонн и перегородок, геометрия и цвета идентичны. Остальные 80 сцен не тронуты — `accept` переснимает весь набор, и пять сцен, разошедшихся на шуме рендера, возвращены к прежним байтам вместе с их хэшами в индексе. Issue: #230 User-Visible: yes
Документация House Plan
Этот каталог — точка входа в русскоязычную документацию House Plan.
Сверено с версией v1.60.0. Продукт с тех пор ушёл вперёд (линия 1.64); при расхождении этого каталога с
docs/USER-GUIDE.ru.mdи changelog верить им. Пересверка каталога — отдельная документационная задача.
| Документ | Для кого | Что внутри |
|---|---|---|
| Полное руководство пользователя | Пользователи и администраторы Home Assistant | Установка, первая настройка, пространства, комнаты, стены, проёмы, устройства, визуальные состояния, заливки, подложка, солнце, пылесосы, киоск, обслуживание и диагностика |
| Редактор подложки и декора | Пользователи, тестировщики и разработчики | Инструменты, единое выделение и трансформации, физические размеры, магнит, Undo/Redo, поведение картинки-подложки и совместимость старых полей |
| GitHub Issues и Project v2 | Владелец, разработчики и контрибьюторы | Единственный актуальный backlog: задачи, приоритеты, решения и статусы выполнения |
Старые тематические документы в этом каталоге остаются инженерными спецификациями и историей решений. При расхождении пользовательского описания с интерфейсом текущей версии приоритет имеет новое руководство, а при расхождении с фактическим поведением — код текущей версии.
Неактуальные снимки аудитов, отклонённые проекты и одноразовые диагностические материалы собраны в архиве legacy.