feat(stereo): A2 — пересечения построений + интерактивное дерево объектов
Фаза A2 раунда «Конструктор». Пересечения как list-based операция: - прямая ∩ плоскость → точка (_cpoints, имена M,N,K…); - плоскость ∩ плоскость → прямая; - прямая ∩ прямая → точка либо «скрещиваются»/«параллельны». Точки-пересечения пикабельны — по ним строятся новые прямые/плоскости. - StereoSim: setIntersectMode/pickConstructObject (выбор 2 объектов), _computeIntersection + _intersectLinePlane/_intersectPlanePlane/ _intersectLineLine, _createCPoint/_drawCPointObject/_cpointLabel, removeConstruction(id)/toggleConstructionVis(id), getConstructions переписан в дерево (id/type/hidden/selected/info), _pickConstructPoint теперь учитывает точки-пересечения. Сброс в setFigure, очистка/clear. - Панель: кнопка «Пересечение»; список — интерактивные строки (выбор для пересечения, глаз=видимость, ×=удаление) через glue stereoIntersectMode/ ConstructSelect/ConstructVis/ConstructDelete; интеграция в _stereoDeactivateTools. Верификация: node --check OK; headless-смоук 34/34 (точная геометрия line∩plane / plane∩plane / line∩line, параллельные/скрещ. без объекта, list-pick поток, гард точки, дерево, видимость/удаление/remove-last, setFigure-сброс, dispose); эмодзи/eval/new Function — 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -76,13 +76,15 @@
|
||||
Прямые и плоскости как объекты первого класса + пересечения + параллели/перпендикуляры +
|
||||
общий undo/redo + дерево именованных объектов.
|
||||
|
||||
- [~] A1 — **Объектная модель + базовые построения.** `_lines[]` (имена a,b,c…), `_planes[]`
|
||||
- [x] A1 — **Объектная модель + базовые построения.** `_lines[]` (имена a,b,c…), `_planes[]`
|
||||
(имена α,β,γ…), группа `_constructGroup`, сериализуемое хранение `{x,y,z}`. Инструменты
|
||||
«Прямая по 2 точкам» и «Плоскость по 3 точкам» (пикинг вершин/точек). Плоскость рисует
|
||||
полупрозрачный квад + пунктирную рамку + **сечение тела этой плоскостью** (через `_sliceByPlane`,
|
||||
делает плоскость осмысленной сразу). Панель «Построения», список объектов с уравнением плоскости.
|
||||
- [ ] A2 — **Пересечения** (прямая∩плоскость → точка; плоскость∩плоскость → прямая; прямая∩прямая
|
||||
→ точка) + **именованное дерево** с удалением/цветом/видимостью отдельных объектов.
|
||||
- [x] A2 — **Пересечения** (прямая∩плоскость → точка `_cpoints` имена M,N,K…; плоскость∩плоскость
|
||||
→ прямая; прямая∩прямая → точка или «скрещиваются») — выбор 2 объектов в дереве (`setIntersectMode`/
|
||||
`pickConstructObject`). **Интерактивное дерево**: видимость (глаз)/удаление (×) по объекту, выбор
|
||||
для пересечения. Точки-пересечения пикабельны → по ним строятся новые прямые/плоскости.
|
||||
- [ ] A3 — **Параллели/перпендикуляры** (прямая ∥ прямой через точку; прямая ⟂ плоскости;
|
||||
плоскость ∥ плоскости; плоскость ⟂ прямой = «плоскость по точке и нормали» — мост к Фазе C) +
|
||||
**общий undo/redo** (снапшот всех пользовательских массивов построения, Ctrl+Z/Ctrl+Shift+Z).
|
||||
|
||||
Reference in New Issue
Block a user