首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

带你实现一个简单的多边形编辑

开头 多边形编辑器少数见于一些图片标注需求,常见于地图应用,用来绘制区域,比如高德地图: 示例地址:https://lbs.amap.com/api/jsapi-v2/example/overlay-editor...this.render() } // ... } 效果如下: 拖动整体 高德的示例并没有拖动整体的功能,但是不影响我们支持,整体拖动的逻辑和拖动单个顶点差不多,先判断鼠标按下时是否在多边形内...result = [nearestPoint.x, nearestPoint.y] } } // 吸附到顶点 // ... } 效果如下: 删除及新增顶点 高德的多边形编辑器在没有拖动的时候会在每条线段的中心都显示一个实心的小圆点...首先在非拖动的情况下插入虚拟顶点并渲染,然后拖动前再把它去掉,因为加入了虚拟顶点,所以在计算dragPointIndex时需要转换成没有虚拟顶点的真实索引,当检测到拖动的是虚拟节点时把它转换成真实顶点就可以了...支持多个多边形并存 以上只是完成了一个多边形的创建和编辑,如果需要同时存在多个多边形,每个都可以选中进行编辑,那么上面的代码是无法实现的,需要调整代码组织方式,每个多边形都要维护各自的状态,那么可以创建一个多边形的类

1.1K40

CRDT 协同编辑:修改树的节点层级 Mutable Tree Hierarchy

Hierarchy》 https://madebyevan.com/algos/crdt-mutable-tree-hierarchy/ 应用场景有:网盘嵌套的文件夹以及目录,在线文档工具的目录树协同,图形编辑器的图形树协同等...比如修改父节点 A 为 B(这种操作我们称为 reparent),就实现了将一个节点从父节点 A,移动到另一个父节点 B 下的操作。...核心思路是 记录每个节点的历史父节点,在进行修改父节点操作后,找到脱离树的节点,对其做一个回滚操作,使其指回历史父节点中,最近的一个还在树上的节点。 下面进行具体展开讲解。...到根节点的所有节点也要做同样处理。...我是前端西瓜哥,欢迎关注我,学习更多协同编辑知识。

8810
领券