视图操作
大约 2 分钟
视图操作
视图的缩放、平移、重绘、坐标系转换等操作。
在线示例
| 示例 | 描述 | 链接 |
|---|---|---|
| 缩放全图 | zoomExtents 用法 | 在线演示{target="_blank"} |
| 缩放到实体 | zoomToEntities 用法 | 在线演示{target="_blank"} |
| 刷新显示 | render、redraw 和 regen 用法 | 在线演示{target="_blank"} |
| 预览绘制 | drawPreviewEntity 用法 | 在线演示{target="_blank"} |
| 设置视图中心 | setCenter 用法 | 在线演示{target="_blank"} |
| 背景色设置 | setBgc 用法 | 在线演示{target="_blank"} |
| 屏幕范围 | getScreenBoundsWcs 和 getScreenEntities 用法 | 在线演示{target="_blank"} |
| 坐标系转换 | canvasToWcs、wcsToUcs、wcsToDcs 用法 | 在线演示{target="_blank"} |
| 缩放因子 | ZOOMFACTOR 和 currentSpace.zoom 用法 | 在线演示{target="_blank"} |
| UCS 用户坐标系 | UCS 坐标系设置示例 | 在线演示{target="_blank"} |
| 平面视图 | 旋转显示图纸 60 度(用 UCS 设置,再切换为平面视图) | 在线演示{target="_blank"} |
核心 API
缩放操作
// 缩放到全图范围
Engine.zoomExtents();
// 缩放到指定实体
Engine.zoomToEntities([entity1, entity2]);
// 缩放到指定范围
Engine.zoomToBounds(new BoundingBox(0, 0, 1000, 1000));
// 设置缩放因子
Engine.setZoom(2.0); // 放大 2 倍视图中心
// 设置视图中心
Engine.setCenter(new Point2D(500, 500));
// 获取当前视图中心
const center = Engine.getCenter();重绘操作
// 轻量刷新(仅重绘)
Engine.render();
// 标准刷新(重新计算显示)
Engine.redraw();
// 完整重生成(重新计算所有实体)
Engine.regen();坐标系转换
// Canvas 坐标 → WCS 世界坐标
const wcsPoint = Engine.canvasToWcs(canvasX, canvasY);
// WCS → UCS 用户坐标
const ucsPoint = Engine.wcsToUcs(wcsPoint);
// WCS → DCS 显示坐标
const dcsPoint = Engine.wcsToDcs(wcsPoint);屏幕范围
// 获取当前屏幕可见的 WCS 范围
const bounds = Engine.getScreenBoundsWcs();
// 获取当前屏幕可见的实体
const visibleEntities = Engine.getScreenEntities();背景色
// 设置背景色
Engine.setBgc('#1a1a2e'); // 深色背景
Engine.setBgc('#ffffff'); // 白色背景