feat: 添加 AI 助手预设问题面板,优化园区概览信息展示
This commit is contained in:
@@ -644,6 +644,38 @@ function Building() {
|
||||
walls.push(<Wall key="railW" x={gx0} z={(gz0 + gz1) / 2} w={gz1 - gz0} h={railH} axis="x" y={FLOOR2} />);
|
||||
walls.push(<Wall key="railE" x={gx1} z={(gz0 + gz1) / 2} w={gz1 - gz0} h={railH} axis="x" y={FLOOR2} />);
|
||||
|
||||
/* ===== 过道/大厅绿植(靠墙摆放 · 严禁穿墙 · 排列整齐) =====
|
||||
每盆绿植按【墙线 wall(x 或 z)+ 内侧方向 side(+1 向过道内侧 / -1)+ 沿墙间距】确定:
|
||||
中心离墙 = 冠半径 + 固定余量 0.15,保证完全落在过道地面内、不越墙、不挡门 */
|
||||
const plant = (s, wall, side, offset) => ({
|
||||
s,
|
||||
x: wall.kind === 'x' ? wall.v + side * (0.28 * s + 0.18) : offset,
|
||||
z: wall.kind === 'z' ? wall.v + side * (0.28 * s + 0.18) : offset,
|
||||
});
|
||||
// wall: 沿墙线;offset: 沿该墙线的间距(x 或 z 坐标)
|
||||
const corridorPlants = [
|
||||
// —— H04 竖向过道西墙(x=50,过道 x50-58,内侧 = +x 方向)——
|
||||
plant(0.9, { kind: 'x', v: 50 }, 1, 30),
|
||||
plant(0.8, { kind: 'x', v: 50 }, 1, 29.2),
|
||||
// —— H02 竖向过道(x50-53)绿植靠东内侧 x≈50.6,沿 z 等距 ——
|
||||
plant(0.85, { kind: 'x', v: 50.5 }, 1, 20),
|
||||
plant(0.85, { kind: 'x', v: 50.5 }, 1, 14),
|
||||
plant(0.85, { kind: 'x', v: 50.5 }, 1, 8),
|
||||
// —— H03 横向过道北墙(z=28,过道在 z<28,内侧 = -z)——
|
||||
// plant(0.9, { kind: 'z', v: 28 }, -1, 48),
|
||||
// plant(0.9, { kind: 'z', v: 28 }, -1, 54),
|
||||
// plant(0.9, { kind: 'z', v: 28 }, -1, 56),
|
||||
// —— 中庭围栏(z=1 北外墙内侧 +z / z=27 南缘内侧 -z)——
|
||||
// plant(0.85, { kind: 'z', v: 1 }, 1, 40),
|
||||
// plant(0.85, { kind: 'z', v: 27 }, -1, 40),
|
||||
// plant(0.85, { kind: 'z', v: 27 }, -1, 2),
|
||||
// —— W02 共享工位区南缘(z=32,内侧 = +z 回工位区)——
|
||||
plant(0.8, { kind: 'z', v: 32 }, 1, 36),
|
||||
plant(0.8, { kind: 'z', v: 32 }, 1, 40),
|
||||
];
|
||||
corridorPlants.forEach((p, i) => {
|
||||
furniture.push(<Plant key={`cp${i}`} x={cx(p.x)} z={cz(p.z)} y={FLOOR2} s={p.s} />);
|
||||
});
|
||||
|
||||
return (
|
||||
<group>
|
||||
|
||||
Reference in New Issue
Block a user