多环节图片导出尺寸一致性
同一个几何工程可能先由 AI 生成,再由人工修改,最后通过 SDK、MCP 或大角 API 导出图片。要让这些环节保持相同的范围、视角和图片尺寸,应当把构图参数保存到工程中,并让后续环节复用。
平面几何(2D)使用“有限画布”,立体几何(3D)使用“固定视图”。 无论通过 MCP 生成还是人工编辑,都建议设置这项功能。通过大角智能生图 API 生成的工程会自动带有 AI 推荐的有限画布或固定视图;接手工程后,应检查推荐范围,确认主体、标注和留白,再将其作为后续处理的依据。

在生成和编辑时确定范围
| 工程来源 | 建议操作 |
|---|---|
| 人工编辑,包括 SDK 内嵌画板 | 调整好构图后,还需为 2D 设置有限画布,或为 3D 保存并启用固定视图,再保存工程,才能让后续导出沿用这套构图。 |
| 大角智能生图 API | 保留生成结果中 AI 推荐的有限画布或固定视图,检查并按实际需求调整,连同完整工程一起保存。 |
| 自建 Agent 生成 | 请 AI 在完成图形后,根据主体、文字和标注的位置,推荐适合最佳浏览效果的裁剪参数:2D 给出画布边界与比例尺,设置有限画布;3D 给出观察视角、缩放、完整视口尺寸与裁剪框,设置并启用固定视图。要求主体和标注完整、几何关系清晰、留白适量,并通过导出预览检查和调整,最终给出实际采用的参数。 |
交接前预览,确认主体和标注完整、留白适量,3D 视角能清楚表达几何关系。
后续编辑时沿用这组参数;需要调整构图时,更新有限画布或固定视图,并保存工程供后续环节复用。
2D 与 3D 的字段含义不同
| 项目 | 平面几何(2D):有限画布 | 立体几何(3D):固定视图 |
|---|---|---|
| 工程字段 | slides[].viewBounds | slides[].viewCamera3d,并设置 viewCamera3dEnabled: true |
| 范围如何确定 | 世界坐标中的矩形边界 minX、maxX、minY、maxY | 相机中心、观察角度、投影方式、缩放、完整视口宽高,以及可选裁剪框 |
scale | 每个世界坐标单位对应的逻辑像素数;边界不变时,改变它会改变逻辑输出尺寸 | 相机缩放;增大会拉近视图、缩小可见世界范围,改变构图,不能套用 2D 的尺寸公式 |
| 矩形坐标 | 导出参数的 left/right/bottom/top 是世界坐标,Y 向上,bottom < top | crop.left/top/right/bottom 是完整视口内的逻辑像素坐标,左上为原点,Y 向下,top < bottom |
| 图片尺寸 | 由世界坐标边界、scale 和 pixelRatio 计算 | 由完整逻辑视口 width/height 或启用的裁剪框,以及 pixelRatio 计算 |
pixelRatio 控制导出的物理像素尺寸。构图相同时,使用相同倍率才能保持像素宽高一致。
只需提高分辨率时,调整 pixelRatio,保留视图参数。
平面几何:设置有限画布
有限画布确定输出的世界坐标范围和排版比例,可通过以下三种方式设置。
SDK 调用 REPL
在 SDK 编辑模式下,通过 editor.repl() 为当前 2D 画板设置范围:
await editor.repl('view_bounds (-6, 6, -4, 4, 50)');参数依次为 minX、maxX、minY、maxY、scale。
view_bounds:查询当前设置。view_bounds infinite:恢复无限画布。
通过 MCP 告知 AI 修改
可直接向已接入 MCP 的 AI 提出要求:
请为当前 2D 画板设置有限画布,根据主体和标注推荐最佳浏览范围与比例尺。检查导出预览,确保内容完整、留白适量,并给出最终采用的参数。
AI 通过 MCP 的 repl 执行 view_bounds,将范围保存到画板。
在内嵌画板中调整
在内嵌画板的编辑界面中设置有限画布,调整边界和比例尺,确认预览后保存完整工程。

立体几何:设置并启用固定视图
3D 固定视图需保存观察方向、投影方式、画面中心、视口尺寸与裁剪范围,同样支持三种设置方式。
SDK 调用 REPL
在 SDK 编辑模式下,通过 editor.repl() 为当前 3D 画板设置并启用固定视图:
await editor.repl(`view_camera3d {
offset: (0, 0, 0);
projection: "orthographic";
yawDeg: 45;
pitchDeg: 30;
scale: 0.1;
width: 1200;
height: 800;
crop: (100, 50, 1100, 750);
}`);该命令设置参数并启用固定视图。
view_camera3d:只查询,不启用。view_camera3d off:停用,保留参数。view_camera3d on:重新启用。
通过 MCP 告知 AI 修改
可直接向已接入 MCP 的 AI 提出要求:
请为当前 3D 画板设置并启用固定视图,推荐能清楚表达几何关系的视角、缩放、视口尺寸和裁剪范围。检查导出预览,确保主体和标注完整、留白适量,并给出最终采用的参数。
AI 通过 MCP 的 repl 执行 view_camera3d,将配置保存到画板并启用。
在内嵌画板中调整
在内嵌画板的编辑界面中设置固定视图,调整观察视角、缩放、视口尺寸和裁剪范围。
确认预览后,启用固定视图并保存完整工程。

后续环节如何复用
首次生成时设置好有限画布或固定视图,保存完整工程,后续即可沿用,无需反复调整构图。
MCP
直接请 AI 按工程中保存的范围和视角导出图片即可。2D 使用 export_image,3D 使用 export_image_3d,无需重新指定视图参数。
接入与使用方式见 MCP 文档。
大角 PNG API
调用 POST /api/render/v2,传入完整工程 content 和目标画板 slideIndex,省略 view2D / view3D,即可复用已保存的配置。
请求示例与可选参数见 PNG 导出接口。
SDK 内嵌画板
读取已保存的配置,传给 exportImage,使用 mode: 'view' 导出:
- 2D:用
getViewBounds()读取,作为viewBound传入。 - 3D:用
getViewCamera3d()读取,作为viewCamera3d传入。
完整示例见 SDK 导出图片。
需要改变构图时,更新工程中的有限画布或固定视图并保存,后续继续复用新配置。
出现差异时检查什么
| 现象 | 检查项 |
|---|---|
| 编辑器预览与后端导出不同 | 是否保存了有限画布 / 固定视图;3D 固定视图是否已启用;是否误用了编辑相机 |
| 添加标注后图片边缘或尺寸改变 | 是否改用内容包围盒导出,或重新自动计算了范围 |
| 3D 视角、缩放或裁剪不对 | 是否混用了度和弧度、2D 和 3D 的 scale,或世界坐标与视口像素坐标 |
| 构图一致但像素尺寸不同 | pixelRatio、2D 排版比例、3D 完整视口与裁剪开关是否一致 |
| 临时导出正确,下一环节又改变 | 是否只覆盖了单次导出参数,没有将新配置保存回完整工程 |