几何图形既是“绘图”也是“数据”。在 NOTE(笔记)与 DOC(文档)应用里,几何元素可用于标注、构图或搭配笔记内容呈现结构化信息。下面从插入、读取套索、修改三个维度讲解常用能力。
插入几何图形
调用 insertGeometry 可插入一个几何元素:
- 在 NOTE 应用中:插入到“当前打开笔记的当前页当前图层”
- 在 DOC 应用中:插入到“当前打开文档的当前页”
import { PluginCommAPI } from 'sn-plugin-lib';
/**
* 插入一个圆形几何图形到当前页面。
*/
async function insertCircle() {
const geometry = {
penColor: 0x9d, // 绘制几何图形的笔颜色
penType: 10, // 绘制几何图形的笔类型
penWidth: 200, // 几何图形的线条粗细(最小值 100)
type: 'GEO_circle', // 几何图形类型
ellipseCenterPoint: { x: 300, y: 400 }, // 椭圆的中心点位置,使用屏幕坐标系
ellipseMajorAxisRadius: 120, // 椭圆长轴半径
ellipseMinorAxisRadius: 120, // 椭圆短轴半径
ellipseAngle: 0, // 椭圆的旋转弧度
};
const res = await PluginCommAPI.insertGeometry(geometry);
console.log('insertGeometry:', res);
}
几何类型字段 type 的取值与结构见 Geometry。点坐标为屏幕像素坐标系。
获取套索几何图形
当你用“套索工具”框选了页面上的几何元素,可以调用 getLassoGeometries
读取被选中的几何图形列表。
import { PluginCommAPI } from 'sn-plugin-lib';
/**
* 读取当前套索区域中的几何图形。
*/
async function readLassoGeos() {
const res = await PluginCommAPI.getLassoGeometries();
if (!res?.success) {
console.error('getLassoGeometries error:', res?.error);
return;
}
const list = res.result ?? [];
console.log('lasso geometries:', list);
}
返回的result是 Geometry列表。
必须先进行“套索”选择后再调用。若套索中没有几何元素,返回的数组为空。
修改套索几何图形
你可以对已套索选中的几何图形进行修改,例如调整圆的半径或变更直线点集。
调用 modifyLassoGeometry 完成修改:
import { PluginCommAPI } from 'sn-plugin-lib';
/**
* 修改当前套索选中的单个圆形几何的半径。
*/
async function updateLassoCircle() {
const res = await PluginCommAPI.getLassoGeometries();
if (!res?.success || !res.result || res.result.length !== 1) {
console.error('必须套索单个几何图形才能修改');
return;
}
const geo = res.result[0];
if (geo.type === 'GEO_circle' || geo.type === 'GEO_ellipse') {
geo.ellipseMajorAxisRadius = (geo.ellipseMajorAxisRadius ?? 100) + 20;
geo.ellipseMinorAxisRadius = (geo.ellipseMinorAxisRadius ?? 100) + 20;
}
const mod = await PluginCommAPI.modifyLassoGeometry(geo);
console.log('modifyLassoGeometry:', mod);
}
修改操作要求当前套索中仅包含“一个几何元素”。未套索或套索多个几何时调用会失败。
相关类型